直接回答
`langchain-openai` の標準パラメータで CodeNodex に接続し、依存関係の導入、キー管理、最小呼び出し、エラー時の再試行を一連の手順で検証します。
このガイドで解決できること
LangChain の `ChatOpenAI` にカスタム Base URL、API キー、モデルを設定する方法を示し、SDK 統合を CodeNodex CLI の自動設定と誤って案内しないようにします。
環境を分離して langchain-openai をインストールする
LangChain の OpenAI 統合は、独立した langchain-openai パッケージで提供されます。CodeNodex CLI は Python プロジェクトの依存関係を変更せず、langchain というクライアント ID もありません。
仮想環境でプロジェクトの範囲を分離し、依存関係のバージョンをプロジェクト自身のロックファイルに記録します。この手順では公式の統合パッケージだけをインストールし、CodeNodex サイト側の依存関係は変更しません。
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade langchain-openaiキー、Base URL、モデルを明示的に渡す
API キーはソースコードに書かず、プロセスの環境変数に保存します。base_url は https://token.codenodex.com/v1、model は現在のキーから参照できる実際のモデル ID にします。
本番の呼び出しにはタイムアウトと回数を制限した再試行を設定します。無制限の再試行は上流障害を増幅し、アプリのリクエストを滞留させます。
import os
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="YOUR_MODEL_ID",
api_key=os.environ["CODENODEX_API_KEY"],
base_url="https://token.codenodex.com/v1",
timeout=60,
max_retries=2,
)最小呼び出しを実行して返却構造を確認する
まず文字列入力で invoke を 1 回実行し、テキスト結果とレスポンスメタデータを表示します。最初から Agent、Memory、Retriever、出力パーサーを重ねないでください。
最小呼び出しが成功したら、PromptTemplate とチェーンの構成要素を段階的に追加します。各層について、単独で実行できる回帰テスト用サンプルを残します。
response = llm.invoke("用一句话说明可重复构建的价值")
print(response.content)
print(response.response_metadata)本番用のタイムアウト、再試行、可観測性を整える
リクエスト時間、モデル ID、HTTP ステータス、アプリ側の request ID を記録します。ただし、完全な API キーや機密性の高いユーザー入力は絶対に記録しません。429 と一時的な 5xx には、ジッターを伴う回数制限付きバックオフを使用します。
LangChain の callback や tracing は、プロンプトを別のサービスへ送信する場合があります。有効化する前にデータ境界を確認してください。CodeNodex への接続検証には、どちらも必須ではありません。
- プロセス起動時は環境変数の有無だけを確認し、値を表示しない。
- リクエストに明確なタイムアウトを設定し、再試行の合計時間を制限する。
- ステータスコードから認証、レート制限、モデル、ネットワークのエラーを区別する。
- マスク済みのモデル情報と所要時間の指標でアラートを設定する。
SDK、モデル、チェーン構成要素のエラーを切り分ける
401 では環境変数のキー、404 では base_url とモデル ID、429 では残高と同時実行数を確認します。接続エラーではプロキシ、DNS、証明書を確認します。
OpenAI Python SDK を直接使うと成功するのに ChatOpenAI が失敗する場合は、最小再現を作成し、langchain-openai のバージョンとパラメータを確認します。複雑なチェーンでだけ失敗する場合は、プロンプトテンプレート、出力パーサー、ツール定義を調べます。
公式情報と検証範囲
本ガイドは公開されている公式ドキュメントを根拠にしています。コマンドや設定はクライアントのバージョンにより変わるため、実行前に参照元も確認してください。
技術検証方法を見る