SDK 與框架整合

所有 SDK 都按同樣的三步接入 GateLLM。找到你用的 SDK,看清它的 base_url 約定與坑,照著抄即可。

閘道器以協議為導向:不管你用哪個 SDK,只要它說 OpenAI / Anthropic / Gemini / DashScope / Realtime / MCP 其中一種協議,把它的 base_url 指向閘道器、換上 access key,就能呼叫任意已設定的模型 —— 包括跨協議呼叫其他廠商的模型。

1

base_url 指向閘道器

預設 https://your-gateway.gatellm.io —— 是否含 /v1 因 SDK 而異(每個示例給出確切值)。

2

換成閘道器 access key

不是上游的 sk-… 金鑰 —— 同一把 access key 裝進你 SDK 期望的任意 header。

3

模型名用閘道器設定名

是你在控制台設定的名字 —— 不是廠商官方名。

Authorization: Bearer <key>
OpenAI · DashScope · 通用
Bearer 字首大小寫不敏感
x-api-key: <key>
Anthropic SDK
也接受 Authorization
x-goog-api-key: <key>
Gemini SDK
也接受 Authorization

SDK 選型矩陣

SDK / 框架語言協議文件
官方廠商 SDKGitHub 範例 ↗
OpenAI SDKPython, Node.jsOpenAI示例
Anthropic SDKPython, Node.jsAnthropic示例
Google GenAI SDKPython, JavaScriptGemini示例
OpenAI-compatible third partiesPython, Node.jsOpenAI-compatible示例
DashScope 原生
DashScope SDKPythonDashScope示例
統一 SDK / 閘道器層GitHub 範例 ↗
Vercel AI SDKTypeScriptOpenAI / Anthropic示例
LiteLLMPythonOpenAI-compatible示例
PortkeyNode.js, PythonOpenAI-compatible示例
Braintrust / LangbaseTypeScript, PythonOpenAI-compatible示例
Semantic KernelPython, .NETOpenAI-compatible示例
Spring AIJavaOpenAI-compatible示例
編排框架GitHub 範例 ↗
LangChainPython, TypeScriptOpenAI / Anthropic示例
LangGraphPython, TypeScriptOpenAI / Anthropic示例
LlamaIndexPython, TypeScriptOpenAI-compatible示例
CrewAIPythonOpenAI-compatible (LiteLLM)示例
AutoGen / AG2PythonOpenAI-compatible示例
DSPyPythonOpenAI-compatible示例
HaystackPythonOpenAI-compatible示例
Llama StackPythonOpenAI-compatible示例
Agent SDK
OpenAI Agents SDKPython, TypeScriptOpenAI Responses示例
Claude Agent SDKPython, TypeScriptAnthropic示例
Pydantic AIPythonOpenAI-compatible示例
Google ADKPythonOpenAI-compatible (LiteLLM)示例
MastraTypeScriptOpenAI-compatible示例
Microsoft Agent Framework.NET, PythonOpenAI-compatible示例
MCP SDKPython, TypeScriptMCP示例
即時語音
Realtime WebSocketAny WS clientOpenAI Realtime示例
openai_audio (ASR / TTS)Python, Node.jsOpenAI audio示例
本地 / 自託管
OllamaRESTOpenAI-compatible (upstream)示例
vLLMRESTOpenAI-compatible (upstream)示例
llama.cpp serverRESTOpenAI-compatible (upstream)示例
SGLangRESTOpenAI-compatible (upstream)示例
Text Generation Inference (TGI)RESTOpenAI-compatible (upstream)示例
LM StudioRESTOpenAI-compatible (upstream)示例

接入坑

模型名必須等於閘道器設定名

不是廠商官方名,也不是上游真實模型 ID —— 是你在控制台起的名字。名字不對 → 404 model_not_found。

base_url 是否帶 /v1 因 SDK 而異

OpenAI SDK 帶 /v1;Anthropic SDK 指閘道器根(它自己拼 /v1/messages);Vercel AI SDK 的 createAnthropic 要帶 /v1(它自己拼 /messages)。拼錯會多一段或少一段路徑。

跨協議欄位會被翻譯並受約束

當上遊是 Responses 協議模型時,max_tokens 會被翻譯成 max_output_tokens,且上游可能設下界(如 ≥16)—— 太小 → 400。

思考塊被閘道器包裹

Claude / Gemini 的思考內容與簽章會被透通或剝除 —— 取 content 陣列裡 type == "text" 的元素,別假設 content[0] 是文字。

OpenAI Agents SDK 預設打 /v1/responses

它調的是 Responses API,不是 Chat Completions。上游是 openai(Chat)協議時,用 OpenAIChatCompletionsModel 顯式切到 Chat;上游本身是 openai_response 時,字串模型名直接用。

LlamaIndex 按白名單驗證模型名

OpenAI 類只認它認識的一系列名稱,會拒絕自訂閘道器名 —— 用 OpenAILike(Python)或顯式宣告模型資訊繞過。

CrewAI 底層是 LiteLLM

base_url 不是框架引數 —— 是 OPENAI_API_BASE 環境變數,而且 model 要帶 openai/ 字首。

AutoGen 對未知模型名要顯式 model_info

不在預設清單的模型名會報錯 —— 顯式宣告 model_info 繞過驗證。

Google GenAI SDK 指向閘道器根

base_url 經 http_options.base_url 傳入(不帶 /v1),key 裝在 x-goog-api-key header。

常見問題