GenAIのためのPythonエッセンシャル
JavaScriptやTypeScriptの知識があるなら、LangChain、LangGraph、そしてGenAIツールを使って開発したいと考えているでしょう。そのために必要なのがPythonです。
新しい考え方を学ぶ必要はありません。Pythonの概念を、すでに知っている知識に紐付けるだけでいいのです。
以下に、クイック・トランスレーション・ガイドを用意しました。
Core Syntax
- Variables:
letやconstはありません。name = "Ajmal"のように記述します。定数にはUPPERCASE(大文字)を使用します。 - Booleans:
true/falseはTrue/Falseになります。 - Null/Undefined:
Noneを使用します。 - Strings: テンプレートリテラル
${name}は、f-stringsf"{name}"になります。 - Print:
console.log()はprint()になります。 - Indentation: Pythonは波括弧
{}の代わりにスペースを使用します。これが最も重要な変更点です。
Data Structures
- Lists: JSのArrayに似ています。
fruits.push("date")の代わりにfruits.append("date")を使用します。 - Dicts: JSのObjectに似ています。値へのアクセスには
person["name"]を使用します。 - Slicing: Pythonの強力な機能です。
fruits[1:3]のようにして特定の範囲を取得できます。 - Sets: JSのSetに似ています。重複の削除に非常に便利です。
- Tuples: 不変(frozen)な配列のようなものです。作成後に変更することはできません。
Functional Patterns
- Map:
.map()の代わりに、リスト内包表記を使用します:[n * 2 for n in numbers]。 - Filter:
.filter()の代わりに、以下を使用します:[n for n in numbers if n > 5]。 - Spread: 位置引数には
*argsを、キーワード引数には**kwargsを使用します。
Classes and Validation
- Classes:
thisの代わりにselfを使用します。 - Pydantic: これはGenAIにおいて極めて重要です。データのバリデーションを処理します。LangChainは、ツールのスキーマからLLMの出力に至るまで、あらゆる場面でこれを使用しています。
- Decorators: ReactのHigher Order Componentsに似ています。関数をラップして動作を追加します。
Async and File I/O
- Async: PythonもJSと同様に
async/awaitを使用します。Promise.all()の代わりにasyncio.gather()を使用します。 - Context Managers: ファイルを開くには
with文を使用します。これにより、ファイルのクローズ忘れを防ぐためのクリーンアップが自動的に行われます。 - Exceptions:
try/catchはtry/exceptになります。throwはraiseになります。
Environment Management
- Package Manager:
npmはpipになります。 - Dependency File:
package.jsonはrequirements.txtになります。 - Local Modules:
node_modules/は.venv/になります。パッケージをインストールする前に、必ず仮想環境をアクティベートしてください。
これらの対応関係をマスターすれば、すぐにAIエージェントの開発を開始できます。
Source: https://dev.to/ajmal_hasan/python-essentials-for-genai-lji