LangChain
LangChain(Python・TypeScript)から Echo Token Station のモデルを使うための設定です。
LangChain は、AI モデルを組み込んだアプリを作るためのライブラリです。LangChain の OpenAI 用・Anthropic 用のクラスで、接続先を Echo に差し替えます。
動作確認:LangChain の Python 版(1.x)と TypeScript 版で、ChatOpenAI と ChatAnthropic の呼び出し、ツール呼び出し、ストリーミング(2026-09-27、Echo の検証環境)
| 使うクラス | 形式 | 接続先 |
|---|---|---|
ChatOpenAI | OpenAI 形式 | https://token.echohub.io/v1 |
ChatAnthropic | Anthropic 形式 | https://token.echohub.io(/v1 は付けません) |
Claude のモデルは ChatAnthropic、それ以外は ChatOpenAI で使うと、各社の形式のまま呼び出せます。提供元と違う形式で呼び出す場合の注意は API リファレンスの「形式とモデルの組み合わせ」にあります。
API キーは環境変数 ECHO_API_KEY に入れておきます(クイックスタートを参照)。
ChatOpenAI(OpenAI 形式)
bash
# 仮想環境を作って有効にする
python3 -m venv .venv && source .venv/bin/activate
pip install -U langchain-openaiPython
import os
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="deepseek-flash",
base_url="https://token.echohub.io/v1",
api_key=os.environ["ECHO_API_KEY"],
)
print(llm.invoke("日本の首都はどこですか?").content)bash
npm install @langchain/openai @langchain/coreTypeScript
import { ChatOpenAI } from "@langchain/openai";
const llm = new ChatOpenAI({
model: "deepseek-flash",
apiKey: process.env.ECHO_API_KEY,
configuration: {
baseURL: "https://token.echohub.io/v1",
},
});
const res = await llm.invoke("日本の首都はどこですか?");
console.log(res.content);ChatAnthropic(Anthropic 形式)
bash
# 仮想環境を作って有効にする
python3 -m venv .venv && source .venv/bin/activate
pip install -U langchain-anthropicPython
import os
from langchain_anthropic import ChatAnthropic
llm = ChatAnthropic(
model="claude-sonnet-5",
base_url="https://token.echohub.io",
api_key=os.environ["ECHO_API_KEY"],
max_tokens=1024,
)
print(llm.invoke("日本の首都はどこですか?").content)bash
npm install @langchain/anthropic @langchain/coreTypeScript
import { ChatAnthropic } from "@langchain/anthropic";
const llm = new ChatAnthropic({
model: "claude-sonnet-5",
apiKey: process.env.ECHO_API_KEY,
maxTokens: 1024,
clientOptions: {
baseURL: "https://token.echohub.io",
},
});
const res = await llm.invoke("日本の首都はどこですか?");
console.log(res.content);注意すること
- LangChain の公式ドキュメントによると、
ChatOpenAIは OpenAI 公式の仕様だけを対象にしています。OpenAI の仕様にない応答の項目は取り出されません - TypeScript 版の
ChatOpenAIは、ストリーミング(回答を少しずつ受け取る方法)のときにstream_optionsというパラメータを送ります。LangChain のドキュメントには、このパラメータに対応しない接続先ではstreamUsage: falseを設定するよう書かれています。Echo はこのパラメータを受け付けるので、この設定は不要です
うまくいかないとき
| 症状 | 原因 | 対処 |
|---|---|---|
| 404 で、JSON ではなく HTML のページが返る | ChatOpenAI の接続先に /v1 がない | https://token.echohub.io/v1 にする |
404 と Invalid URL (POST /v1/v1/messages) | ChatAnthropic の接続先に /v1 を付けている | https://token.echohub.io にする |
401 と Invalid API key | キーが違う、停止している、有効期限切れ、または利用上限を使い切った | コンソールでキーの状態を確認する |
403 と Insufficient balance | 残高が足りない | チャージする |
503 と The model … does not exist or is not available | モデル ID が違う、または Echo が提供していないモデル | モデル ID を確認する |
エラー本文の一覧はエラーと対処にあります。
確認した情報源
| 内容 | 情報源 | 確認日 |
|---|---|---|
ChatOpenAI の base_url・api_key、OpenAI 公式の仕様だけを対象とする注意 | https://docs.langchain.com/oss/python/integrations/chat/openai | 2026-09-26 |
ChatAnthropic の base_url・api_key | https://docs.langchain.com/oss/python/integrations/chat/anthropic | 2026-09-26 |
TypeScript の configuration.baseURL、stream_options の注意 | https://docs.langchain.com/oss/javascript/integrations/chat/openai | 2026-09-26 |
TypeScript の clientOptions.baseURL | https://docs.langchain.com/oss/javascript/integrations/chat/anthropic | 2026-09-26 |
Anthropic SDK が接続先に /v1/messages を付けること | https://github.com/anthropics/anthropic-sdk-python | 2026-09-26 |
ChatOpenAI・ChatAnthropic での呼び出し、ツール呼び出し、ストリーミング、stream_options の受け付け、Echo 側の HTTP ステータスとエラー本文 | Echo の検証環境での実測。本番と同じ中継設定で、経由先の API の代わりに試験用の応答を返すサーバーを使いました | 2026-09-27 |