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
OpenAI SDKPython, Node.jsOpenAI示例
Anthropic SDKPython, Node.jsAnthropic示例
Google GenAI SDKPython, JavaScriptGemini示例
OpenAI-compatible third partiesPython, Node.jsOpenAI-compatible示例
DashScope 原生
DashScope SDKPythonDashScope示例
统一 SDK / 网关层
Vercel AI SDKTypeScriptOpenAI / Anthropic示例
LiteLLMPythonOpenAI-compatible示例
PortkeyNode.js, PythonOpenAI-compatible示例
Braintrust / LangbaseTypeScript, PythonOpenAI-compatible示例
Semantic KernelPython, .NETOpenAI-compatible示例
Spring AIJavaOpenAI-compatible示例
编排框架
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。

常见问题