LangChain カスタム API のセットアップ

LangChain ChatOpenAI を TokenHub に接続し、チェーンまたはエージェントを構築する前に最小限のモデル呼び出しを検証します。

ラングチェーンとは何ですか?

LangChain は、LLM を利用したチャット、取得、ワークフロー、エージェント エクスペリエンスを構築するためのアプリケーション フレームワークです。

この LangChain ガイドでは、維持される langchain-openai 統合と TokenHub 互換 API ベースを構成します。まず基本的な呼び出しパスをテストし、次にストリーミング、構造化出力、またはアプリに必要な機能のツールを検証します。最小限の ChatOpenAI 呼び出しでは基本的な接続が検証されますが、運用アプリケーションで使用されるすべての機能は検証されません。ストリーミング、構造化出力、ツール バインディング、再試行、タイムアウトを個別にテストし、選択した TokenHub モデルがワークフローに必要な機能を満たした後でのみ、取得、チェーン、またはエージェントを追加します。

LangChain の OpenAI 用の公式 Python 統合は、別の langchain-openai パッケージに含まれています。カスタム base_urlChatOpenAI に渡して、TokenHub を接続します。これはコードの統合です。アプリの設定画面はありません。

ステップ 1: 公式統合パッケージをインストールする

pip install -U langchain-openai

uv によって管理されるプロジェクトの場合は、uv add langchain-openai を使用します。基本 langchain パッケージを単独でインストールしても、ChatOpenAI は提供されません。

ステップ 2: TokenHub に対して ChatOpenAI を明示的にインスタンス化する

export TOKENHUB_API_KEY="sk-..."
import os
from langchain_openai import ChatOpenAI

model = ChatOpenAI(
    base_url="__API_BASE_URL__/v1",
    api_key=os.environ["TOKENHUB_API_KEY"],
    model="YOUR_TOKENHUB_MODEL_ID",
    timeout=60,
    max_retries=2,
)

response = model.invoke("Reply with one sentence to confirm the connection.")
print(response.content)

基本の URL 解決では、コンストラクターの base_url / openai_api_base、次に OPENAI_API_BASE、その後に基礎となる SDK の OPENAI_BASE_URL が優先されます。これを明示的に渡すと、プロジェクト環境内の古い OpenAI URL が TokenHub をオーバーライドできなくなります。

ステップ 3: 一度に 1 つの機能を確認する

  1. 最初に最小限の invoke 呼び出しを実行して、通常のチャットの完了を確認します。
  2. 基本的な呼び出しが機能する場合にのみ、stream を追加します。 OPENAI_BASE_URL がサードパーティのエンドポイントを指している場合、LangChain は stream_usage を自動的に有効にしません。 TokenHub モデルとエンドポイントがストリーミングの使用をサポートしている場合にのみ、stream_usage=True を設定します。
  3. エージェントの場合、1 つの最小限のツールを bind_tools にバインドし、返されたオブジェクトの tool_calls を検査します。単に呼び出しを説明するテキストをツール呼び出しとして扱わないでください。
  4. 構造化された出力、画像、推論は、これらのレイヤーが機能した後でのみテストしてください。

ChatOpenAI は、OpenAI API 仕様のフィールドを明示的にターゲットにします。 reasoning_contentreasoningreasoning_details などのプロバイダー固有の拡張子は抽出または保存できない場合があります。テキスト応答が成功しても、それらの拡張機能が機能することは証明されません。

失敗した LangChain レイヤーでのトラブルシューティング

  • インポートが失敗します: langchain-openai がインストールされていることを確認してください。
  • 404: /v1 を含む有効な base_url を検査し、環境変数のオーバーライドを確認します。
  • モデル エラー: model には完全な TokenHub モデル ID を使用してください。
  • ストリーミング テキストは機能しますが、使用法がありません。stream_usage とエンドポイントが stream_options.include_usage をサポートしているかどうかを検査してください。
  • エージェント ツールが失敗します: bind_tools を使用して隔離します。基本的な invoke の成功はツール テストではありません。
  • 非標準の推論フィールドがありません。プロバイダー固有の LangChain 統合を使用するか、生の応答を直接処理します。

公式リファレンス

モデルの選び方

用途モデルの方向性理由
複雑なタスクツール対応の推論モデル計画、複数手順、長いコンテキストに向いています。
日常的な利用バランス型モデル品質、速度、コストのバランスを取れます。
要約と軽い作業高速・低コストモデル要約や簡単な反復のコストを抑えます。
TokenHub のモデルを見る

LangChain ChatOpenAI FAQ

ChatOpenAI を TokenHub に向けるにはどうすればよいですか?

Base_url を /v1 で終わる TokenHub API ルートに設定し、TokenHub キーを api_key として渡し、model を正確な TokenHub ID に設定します。

Base_url の代わりに OPENAI_API_BASE を使用できますか?

LangChain は文書化された OpenAI ベース URL 環境変数を読み取ることができますが、単一の統合では明示的なbase_url が最も明確です。

呼び出し呼び出しが成功すると、エージェントが機能することが証明されますか?

いいえ。これは基本的なチャット接続を証明します。これらの機能を使用する前に、ツールの呼び出し、ストリーミング、構造化された出力を検証してください。

langchain-openai パッケージは必要ですか?

はい。 ChatOpenAI は、langchain-openai 統合パッケージで維持されます。 LangChain プロジェクトの残りの部分と互換性のあるバージョンをインストールします。

LangChain 404 のトラブルシューティングを行うにはどうすればよいですか?

TokenHub リクエスト ログを確認する前に、base_url が /v1 で終わることを確認し、重複したリクエスト パスを削除し、正確なモデル ID を確認してください。

参考資料

この設定は TokenHub と公式ドキュメントに基づいており、最終確認日は 2026-09-08。