ラングチェーンとは何ですか?
LangChain は、LLM を利用したチャット、取得、ワークフロー、エージェント エクスペリエンスを構築するためのアプリケーション フレームワークです。
この LangChain ガイドでは、維持される langchain-openai 統合と TokenHub 互換 API ベースを構成します。まず基本的な呼び出しパスをテストし、次にストリーミング、構造化出力、またはアプリに必要な機能のツールを検証します。最小限の ChatOpenAI 呼び出しでは基本的な接続が検証されますが、運用アプリケーションで使用されるすべての機能は検証されません。ストリーミング、構造化出力、ツール バインディング、再試行、タイムアウトを個別にテストし、選択した TokenHub モデルがワークフローに必要な機能を満たした後でのみ、取得、チェーン、またはエージェントを追加します。
LangChain の OpenAI 用の公式 Python 統合は、別の langchain-openai パッケージに含まれています。カスタム base_url を ChatOpenAI に渡して、TokenHub を接続します。これはコードの統合です。アプリの設定画面はありません。
ステップ 1: 公式統合パッケージをインストールする
pip install -U langchain-openaiuv によって管理されるプロジェクトの場合は、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 つの機能を確認する
- 最初に最小限の
invoke呼び出しを実行して、通常のチャットの完了を確認します。 - 基本的な呼び出しが機能する場合にのみ、
streamを追加します。OPENAI_BASE_URLがサードパーティのエンドポイントを指している場合、LangChain はstream_usageを自動的に有効にしません。 TokenHub モデルとエンドポイントがストリーミングの使用をサポートしている場合にのみ、stream_usage=Trueを設定します。 - エージェントの場合、1 つの最小限のツールを
bind_toolsにバインドし、返されたオブジェクトのtool_callsを検査します。単に呼び出しを説明するテキストをツール呼び出しとして扱わないでください。 - 構造化された出力、画像、推論は、これらのレイヤーが機能した後でのみテストしてください。
ChatOpenAI は、OpenAI API 仕様のフィールドを明示的にターゲットにします。 reasoning_content、reasoning、reasoning_details などのプロバイダー固有の拡張子は抽出または保存できない場合があります。テキスト応答が成功しても、それらの拡張機能が機能することは証明されません。
失敗した LangChain レイヤーでのトラブルシューティング
- インポートが失敗します:
langchain-openaiがインストールされていることを確認してください。 - 404:
/v1を含む有効なbase_urlを検査し、環境変数のオーバーライドを確認します。 - モデル エラー:
modelには完全な TokenHub モデル ID を使用してください。 - ストリーミング テキストは機能しますが、使用法がありません。
stream_usageとエンドポイントがstream_options.include_usageをサポートしているかどうかを検査してください。 - エージェント ツールが失敗します:
bind_toolsを使用して隔離します。基本的なinvokeの成功はツール テストではありません。 - 非標準の推論フィールドがありません。プロバイダー固有の LangChain 統合を使用するか、生の応答を直接処理します。
公式リファレンス
モデルの選び方
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。