GenAIのためのPythonエッセンシャル

JavaScriptやTypeScriptの知識があるなら、LangChain、LangGraph、そしてGenAIツールを使って開発したいと考えているでしょう。そのために必要なのがPythonです。

新しい考え方を学ぶ必要はありません。Pythonの概念を、すでに知っている知識に紐付けるだけでいいのです。

以下に、クイック・トランスレーション・ガイドを用意しました。

Core Syntax

  • Variables: letconstはありません。name = "Ajmal"のように記述します。定数にはUPPERCASE(大文字)を使用します。
  • Booleans: true/falseTrue/Falseになります。
  • Null/Undefined: Noneを使用します。
  • Strings: テンプレートリテラル${name}は、f-strings f"{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/catchtry/exceptになります。throwraiseになります。

Environment Management

  • Package Manager: npmpipになります。
  • Dependency File: package.jsonrequirements.txtになります。
  • Local Modules: node_modules/.venv/になります。パッケージをインストールする前に、必ず仮想環境をアクティベートしてください。

これらの対応関係をマスターすれば、すぐにAIエージェントの開発を開始できます。

Source: https://dev.to/ajmal_hasan/python-essentials-for-genai-lji