mcpField
L
langchain

langchain

github.com/alphaonedev開発41 回インストール
リポジトリ

langchain について

LangChainは、LLMをワークフローに組み込むアプリケーション向けのPythonフレームワークです。チェーン、ツールやベクトルストアとの連携、プロンプト管理、エージェント、非同期実行に対応します。

主な機能

  1. 01LLMチェーンの構築
  2. 02ツールとベクトルストアの連携
  3. 03動的なプロンプト管理
  4. 04ツールを使うエージェントの構築
  5. 05非同期チェーンの実行

活用シーン

  1. 01文書検索を使う質問応答アプリの構築
  2. 02検索ツールを使うエージェントの作成
  3. 03複数クエリの並行処理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill langchain

インストール後、Claude Code で/langchainを入力して読み込まれたか確認します。

詳細

langchain

目的

LangChainは、LLMをワークフローに統合するアプリケーションを開発するためのPythonフレームワークです。複数のLLMやツールを組み合わせたチェーンを作成でき、質問応答やデータ処理などのタスクに活用できます。

使用する場面

複雑なクエリに対応するために複数のモデルを統合するなど、LLMを連鎖させる必要があるAI搭載アプリを構築する場合や、LLMで外部データソースを扱う場合にLangChainを使用します。リアルタイムデータを取得するチャットボットなどのAIエージェントを迅速にプロトタイピングする場合や、スケーラブルなLLMワークフローが必要なaimlopsクラスターでのML運用にも適用できます。

主な機能

  • チェーンの構築:LLMChainなどのクラスを使ってLLMのシーケンスを作成します。たとえば、プロンプトテンプレートとLLM呼び出しを組み合わせます。
  • ツールの統合:OpenAIクラスを介したOpenAIなどのAPIとの統合をサポートします。意味検索にはFAISSでベクトルストアを扱います。
  • プロンプト管理:PromptTemplateを使ってプロンプトを定義し、動的にレンダリングします。たとえば、ユーザー入力用の変数を使用します。
  • エージェントフレームワーク:AgentType.ZERO_SHOT_REACTを使用してツールを備えたエージェントを構築し、LLMの出力に基づいてツールを動的に選択できます。
  • 非同期処理のサポート:スケーラブルなアプリケーションで複数のクエリを同時に処理するなど、非同期チェーンを活用できます。

使用パターン

LangChainを使用するには、pip install langchainでインストールし、コンポーネントをインポートして設定します。基本的なチェーンでは、LLMインスタンスを作成し、プロンプトまたはツールに接続します。パターン:APIキーを使ってLLMを初期化し、チェーンを構築して、反復タスク用のループ内で実行します。エージェントの場合は、ツールを定義し、入力に基づいてエージェントにアクションを決定させます。

主なコマンド/API

  • インストールとセットアップ:追加機能を含めるにはpip install langchain[all]を実行します。認証用にexport OPENAI_API_KEY=your_keyなどの環境変数を設定します。
  • 基本的なチェーンの例:
    from langchain.llms import OpenAI
    from langchain.chains import LLMChain
    llm = OpenAI(model_name="gpt-3.5-turbo")
    chain = LLMChain(llm=llm, prompt="What is {topic}?")
    result = chain.run(topic="LangChain")
    
  • APIエンドポイント:LangChainを外部サービスと使用する場合は、LangChainのラッパーを介してhttps://api.openai.com/v1/chat/completionsなどのエンドポイントを呼び出します。認証トークンを含むヘッダーを渡します。
  • 設定形式:たとえば、次のようなファイルでチェーンの設定にYAMLを使用します。
    chains:
      - name: simple_chain
        llm: OpenAI
        prompt: "Summarize {text}"
    
    from langchain.utilities import load_configで読み込みます。
  • CLIコマンド:LangChain CLIを拡張して使用する場合は、langchain serveでチェーンをサービスとして実行するか、langchain debug --chain my_chainで実行をトレースしてデバッグします。

統合に関する注意事項

他のツールを呼び出し可能な関数としてラップすることで、LangChainと統合できます。たとえば、データベースクエリツールを追加するには、Tool.from_functionを使用してエージェントに渡します。OpenAIモデル用の$OPENAI_API_KEYや検索統合用の$SERPAPI_API_KEYなど、キーの環境変数を設定します。aimlopsクラスターのツールと組み合わせる場合は、ログ記録にLangChainのコールバックシステムを使用して互換性を確保します。トークン使用量を追跡するには、from langchain.callbacks import get_openai_callbackをインポートします。ベクトルデータベースでは、from langchain.vectorstores import Pineconeを初期化し、環境変数を通じてAPIキーを指定してPineconeと統合します。

エラー処理

チェーンの実行をtry-exceptブロックで囲んでエラーを処理します。例:

try:
    result = chain.run(input_data)
except ValueError as e:
    print(f"Invalid input: {e}")
except Exception as e:
    print(f"General error: {e} - Check API key or network")

よくある問題には、APIのレート制限(if e.status_code == 429: retry()で確認)、無効なAPIキー($OPENAI_API_KEYが設定されていることを確認)、チェーンの設定ミス(利用可能な場合はchain.validate()を使用)があります。本番環境でのデバッグには、LangChainのハンドラーを使用してエラーを記録します。

具体的な使用例

  1. シンプルな質問応答チェーン:LLMとベクトルストアを使用して質問に回答するチェーンを構築します。まず、export OPENAI_API_KEY=your_keyを設定します。次に:

    from langchain.chains import RetrievalQA
    from langchain.llms import OpenAI
    qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(), chain_type="stuff")
    answer = qa_chain.run({"query": "What is LangChain?"})
    

    関連するドキュメントを取得し、回答を生成します。

  2. ウェブ検索エージェント:ウェブ検索用のツールを使うエージェントを作成します。export SERPAPI_API_KEY=your_keyを設定します。コード:

    from langchain.agents import AgentType, load_tools, initialize_agent
    from langchain.llms import OpenAI
    tools = load_tools(["serpapi"])
    agent = initialize_agent(tools, OpenAI(), agent=AgentType.ZERO_SHOT_REACT)
    response = agent.run("Search for latest AI news")
    

    エージェントはウェブを動的に検索し、結果を返します。

グラフの関係性

  • 関連するクラスター:aimlops(例:ML 運用向けのツールを共有します)。
  • タグによる接続:langchain(自身)、llm(他の LLM ツールへのリンク)、ai-framework(Hugging Face などのフレームワークに接続します)。
  • 依存関係:OpenAI または類似の API が必要です。FAISS や Pinecone などのベクトルストアと統合します。

コメント