LLM Gateway 提供兼容 OpenAI、Anthropic 和 Google Gemini 格式的 API 接口,支持所有主流 AI 编码工具无缝接入。
参考视频:平台配置 vibe coding 工具教程(B 站)Gateway 提供四种 LLM API 格式,兼容不同工具和 SDK 的调用需求。
| 端点 | 格式 | 适用工具 |
|---|---|---|
| POST /v1/chat/completions | OpenAI Chat Completions | Cursor, Trae, OpenCode, Windsurf, Aider |
| POST /v1/messages | Anthropic Messages | Claude Code, Copilot CLI(BYOK), Aider |
| POST /v1/responses | OpenAI Responses | Codex CLI |
| POST /v1/images/tasks | 异步图像任务(生成 / 编辑 / 查询 / 删除) | SDK / REST |
| GET /v1/models | OpenAI 兼容 | 所有工具 |
| GET /v1/balance | 查询余额 / 配额 | SDK / REST |
| POST /v1/messages/count_tokens | Anthropic Token 计数 | SDK / REST |
| POST /gemini/v1/models/* | Google Gemini 原生 | Gemini SDK, REST |
| POST /gemini/v1beta/models/* | Google Gemini 原生(含图像生成) | Gemini SDK, REST |
所有端点支持 Authorization: Bearer 认证,Messages API 额外支持 x-api-key。详见章节。
OpenAI 格式(Chat Completions / Responses / Models)— Base URL 需要以 /v1 结尾:https://www.llmgateway.cn/v1
Anthropic 格式(Messages API)— Base URL 不要以 /v1 结尾:https://www.llmgateway.cn
Gemini 格式 — SDK 使用 https://www.llmgateway.cn/gemini(SDK 自动拼接版本路径);REST 调用使用 https://www.llmgateway.cn/gemini/v1 或 https://www.llmgateway.cn/gemini/v1beta
网关已做兼容:display name(如 claude-sonnet-4-6)和带 gw/ 前缀(如 gw/claude-sonnet-4-6)两种形式都支持,效果等价,任选其一即可。
例外:在 Cursor 中必须使用带 gw/ 前缀的写法,否则 Cursor 会按官方 OpenAI 模型名拦截/改写请求。
三步接入 LLM Gateway,开始使用所有已配置的 AI 模型。
将 Base URL 和 API Key 填入你的 AI 工具(Claude Code、Cursor、Codex 等),即可开始使用。
# 示例:用 curl 发送第一个请求
curl -X POST https://www.llmgateway.cn/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "claude-sonnet-4-6", "messages": [{"role": "user", "content": "Hello!"}]}'Gateway 支持两种认证方式,所有端点均可使用 Bearer Token。Messages API 额外支持 Anthropic 风格的 x-api-key。
| 方式 | Header | 适用端点 | 状态 |
|---|---|---|---|
| Bearer Token | Authorization: Bearer sk-xxx | 所有端点 | 推荐 |
| x-api-key | x-api-key: sk-xxx | 仅 /v1/messages | 兼容 |
两种方式使用同一个 API Key(在控制台「API 密钥」页面创建)。Bearer Token 是通用方式,适用于所有端点;x-api-key 仅为兼容 Anthropic SDK 的默认行为而保留。新项目建议统一使用 Bearer Token。
| 工具 | 认证方式 | 配置变量 |
|---|---|---|
| Claude Code | x-api-key(自动) | ANTHROPIC_AUTH_TOKEN |
| Codex CLI | Bearer Token(自动) | OPENAI_API_KEY |
| Cursor | Bearer Token(自动) | Settings → Models → API Key |
| REST / SDK | Bearer Token | Authorization header |
Gateway 同时支持多种 API 协议,并在协议间自动转换。以下矩阵展示各端点支持的功能。
| 功能 | Chat Completions | Messages API | Responses API | Gemini API |
|---|---|---|---|---|
| 文本生成 | ✓ | ✓ | ✓ | ✓ |
| 流式响应 (SSE) | ✓ | ✓ | ✓ | ✓ |
| Tool Use / 函数调用 | ✓ | ✓ | ✓ | ✓ |
| 多模态(图片输入) | ✓ | ✓ | ✕ | ✓ |
| 图像生成 | ✕ | ✕ | ✕ | v1beta |
| Token 计数 | ✕ | ✓ | ✕ | ✕ |
| Extended Thinking | ✕ | Claude only | ✕ | ✕ |
| Prompt Caching | ✕ | Claude only | ✕ | ✕ |
| 缓存内容 (cachedContents) | ✕ | ✕ | ✕ | ✓ |
| 跨模型路由 | ✓ | ✓ | ✓ | Gemini only |
| 自动格式转换 | — | → OpenAI | → Chat | — |
同一个模型可通过不同协议调用,Gateway 自动转换。以下对照两种主要格式的字段映射:
| 概念 | OpenAI (Chat Completions) | Anthropic (Messages) |
|---|---|---|
| 认证 | Authorization: Bearer | x-api-key / Authorization: Bearer |
| 模型字段 | model | model |
| 消息列表 | messages[] | messages[] |
| 系统提示 | messages[0].role="system" | system (顶层字段) |
| 最大输出 | max_tokens (可选) | max_tokens (必填) |
| 流式 | stream: true | stream: true |
| 工具调用 | tools[] + tool_choice | tools[] + tool_choice |
| 停止原因 | finish_reason: "stop" | stop_reason: "end_turn" |
| 用量统计 | usage.prompt_tokens / completion_tokens | usage.input_tokens / output_tokens |
使用 Gateway 时无需关心格式差异 — 选择你的工具原生支持的端点即可。例如 Claude Code 使用 Messages API,Cursor 使用 Chat Completions,Gateway 在后端自动处理格式转换和路由。
/v1/chat/completions兼容 OpenAI Chat Completions 格式。支持所有已配置的模型(OpenAI、Claude、Gemini、Grok 等),Gateway 会自动路由到对应的上游。同时兼容 Responses API 格式的请求体,会自动转换。
curl -X POST https://www.llmgateway.cn/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
"stream": false
}'{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1713000000,
"model": "claude-sonnet-4-6",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 20,
"completion_tokens": 10,
"total_tokens": 30
}
}设置 stream: true 即可获得 SSE 流式响应:
curl -X POST https://www.llmgateway.cn/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'/v1/messages兼容 Anthropic Messages API 格式。支持 x-api-key 和 Authorization: Bearer 两种认证方式。支持 extended thinking、tool use、流式响应等特性。
curl -X POST https://www.llmgateway.cn/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello!"}
]
}'{
"id": "msg_abc123",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! How can I help you today?"
}
],
"model": "claude-sonnet-4-6",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 10,
"output_tokens": 12
}
}Messages API 也支持将请求路由到 OpenAI 上游 — Gateway 会自动在 Anthropic 和 OpenAI 格式之间转换。
/v1/responses兼容 OpenAI Responses API 格式。Gateway 内部将请求转换为 Chat Completions 格式发送到上游,再将响应转换回 Responses 格式返回。
curl -X POST https://www.llmgateway.cn/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4",
"input": [
{"role": "user", "content": "Hello!"}
]
}'{
"id": "resp_abc123",
"object": "response",
"status": "completed",
"model": "gpt-5.4",
"output": [
{
"type": "message",
"id": "msg_abc123",
"role": "assistant",
"content": [
{"type": "output_text", "text": "Hello! How can I help you?"}
],
"status": "completed"
}
],
"usage": {
"input_tokens": 10,
"output_tokens": 12,
"total_tokens": 22
}
}图像生成 / 编辑(如 gpt-image-2、gemini-3-pro-image-preview)耗时较长,直接调用同步接口容易触发 HTTP 超时。异步任务接口让你提交任务后立即拿到任务 ID,再通过轮询查询结果,单个任务可返回多张图片。支持普通用户 Key、租户 Key、租户子用户 Key 三类 API Key,出图后按对应账户计费。
使用流程:提交任务(202 返回 id)→ 轮询任务直到 status 变为 completed → 从 result_urls 取图片直链。
状态取值:pending(排队)/ processing(处理中)/ completed(完成)/ failed(失败,见 error_message)。
/v1/images/tasks— 提交生成任务请求体字段:model(必填)、prompt(必填,≤ 2000 字)、size(默认 1024x1024)、n(出图张数,1-4,默认 1)、params(可选,透传上游参数)。
# 提交生成任务(立即返回任务 ID,不阻塞)
curl -X POST https://www.llmgateway.cn/v1/images/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "a red apple on a wooden table, studio lighting",
"size": "1024x1024",
"n": 2
}'{
"id": 123,
"status": "pending"
}/v1/images/tasks/edits— 提交编辑任务在生成字段基础上,通过 image_urls(图片链接数组)和 / 或 image_base64s(base64 数组)提供输入图,二者可任选其一或混用;可选 mask_base64 提供蒙版。输入图最多 4 张、单张 ≤ 25MB。
# 提交编辑任务(输入图用 URL 或 base64,可混用,最多 4 张、单张 ≤ 25MB)
curl -X POST https://www.llmgateway.cn/v1/images/tasks/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "make the background pure white",
"size": "1024x1024",
"n": 1,
"image_urls": ["https://example.com/cat.png"],
"image_base64s": [],
"mask_base64": ""
}'/v1/images/tasks/{id}— 查询任务状态 / 结果# 轮询任务状态(建议 2-5 秒一次,直到 completed / failed)
curl https://www.llmgateway.cn/v1/images/tasks/123 \
-H "Authorization: Bearer YOUR_API_KEY"{
"id": 123,
"type": "generate",
"status": "completed",
"model": "gpt-image-2",
"prompt": "a red apple on a wooden table, studio lighting",
"size": "1024x1024",
"image_count": 2,
"result_urls": [
"https://llm-gateway-images.tos-cn-beijing.volces.com/xxx-1.png",
"https://llm-gateway-images.tos-cn-beijing.volces.com/xxx-2.png"
],
"cost": 0.16,
"created_at": "2026-06-21T12:00:00Z",
"completed_at": "2026-06-21T12:01:30Z"
}/v1/images/tasks/{id}— 删除任务用于删除自己的任务(例如长时间排队未处理的任务)。仅可删除 pending / completed / failed 状态;processing(处理中)的任务会返回 409,请稍后重试。成功返回 204 No Content。
# 删除任务(仅 pending / completed / failed 可删;处理中返回 409)
curl -X DELETE https://www.llmgateway.cn/v1/images/tasks/123 \
-H "Authorization: Bearer YOUR_API_KEY"
# 成功返回 204 No Content/v1/models返回当前可用的模型列表(OpenAI 兼容格式)。需要 API Key 认证。
curl https://www.llmgateway.cn/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"{
"object": "list",
"data": [
{"id": "claude-sonnet-4-6", "object": "model", "created": 1712973600, "owned_by": "llm-gateway"},
{"id": "gpt-5.4", "object": "model", "created": 1712973600, "owned_by": "llm-gateway"},
...
]
}| 模型名称 | 类型 |
|---|---|
| claude-sonnet-4-6 | chat |
| claude-opus-4-6 | chat |
| claude-haiku-4-5-20251001 | chat |
| 模型名称 | 类型 |
|---|---|
| gpt-5.4 | chat |
| gpt-5.4-codex | chat |
| gpt-5.4-codex-high | chat |
| 模型名称 | 类型 |
|---|---|
| gemini-3.1-pro-preview | chat |
| 模型名称 | 类型 |
|---|---|
| glm-5.1 | chat |
以上为常用模型,完整列表请调用 GET /v1/models 获取。模型列表会随网关配置动态更新。
/v1/balance查询当前 API Key 对应账户的余额或配额。需要 API Key 认证。响应中的 type 字段标识账户类型,不同类型返回字段不同。
curl https://www.llmgateway.cn/v1/balance \
-H "Authorization: Bearer YOUR_API_KEY"{
"type": "user",
"balance": 100.50,
"frozen": 5.00,
"available": 95.50,
"currency": "CNY"
}| type | 字段 |
|---|---|
| user | balance, frozen, available, currency |
| tenant | balance, frozen, available, total_recharged, total_consumed, currency |
| sub_user | quota_limit(null 为无限制), quota_used, quota_remaining, currency |
Claude Code 是 Anthropic 推出的 AI 编程助手 CLI,原生使用 Anthropic Messages 协议。通过本网关,不仅能用 Claude,还能用 GPT、Gemini、GLM —— 网关会自动转协议。
需要 Node.js ≥ 18。使用 npm 全局安装:
npm install -g @anthropic-ai/claude-code将 ANTHROPIC_BASE_URL 指向本网关地址,并设置 API Key、默认模型与三个档位映射变量:
# 设置环境变量(macOS / Linux 写入 ~/.zshrc 或 ~/.bashrc 永久生效)
export ANTHROPIC_BASE_URL="https://www.llmgateway.cn"
export ANTHROPIC_AUTH_TOKEN="YOUR_API_KEY"
# ANTHROPIC_MODEL 可设置为网关中任意聊天模型
# 例如:claude-sonnet-4-6, gpt-5.4, gemini-3.1-pro-preview, glm-5.1 等
export ANTHROPIC_MODEL="claude-sonnet-4-6"
# 让 Claude Code 内置档位(Sonnet / Opus / Haiku)映射到网关模型
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-4-6"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-4-6"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-4-5-20251001"| 变量 | 说明 | 必填 |
|---|---|---|
| ANTHROPIC_BASE_URL | https://www.llmgateway.cn,不带 /v1 | ✅ |
| ANTHROPIC_AUTH_TOKEN | 网关 API Key(控制台 → API 密钥页创建) | ✅ |
| ANTHROPIC_MODEL | 默认模型,可填网关任意聊天模型 | 可选 |
| ANTHROPIC_DEFAULT_SONNET_MODEL | Sonnet 档位映射,建议 claude-sonnet-4-6 | 可选 |
| ANTHROPIC_DEFAULT_OPUS_MODEL | Opus 档位映射,建议 claude-opus-4-6 | 可选 |
| ANTHROPIC_DEFAULT_HAIKU_MODEL | Haiku 档位映射,建议 claude-haiku-4-5-20251001 | 可选 |
关于三个档位变量 — Claude Code 在 /model 菜单中把模型分成 Sonnet / Opus / Haiku 三档,这三个变量决定每档实际请求哪个网关模型。建议显式设置,避免 Claude Code 内置默认值与网关模型名不一致。

# 可用模型(根据网关实际配置,完整列表请调用 GET /v1/models)
# Claude 系列
claude-sonnet-4-6 # Sonnet 4.6
claude-opus-4-6 # Opus 4.6
claude-haiku-4-5-20251001 # Haiku 4.5
# OpenAI 系列
gpt-5.4 # GPT-5.4
gpt-5.4-codex # GPT-5.4 Codex
gpt-5.4-codex-high # GPT-5.4 Codex High
# Gemini 系列
gemini-3.1-pro-preview # Gemini 3.1 Pro Preview
# 智谱 GLM 系列
glm-5.1 # GLM 5.1格式自动转换 — 对 Claude 模型,请求直接透传到 Anthropic 上游;对非 Claude 模型(GPT、Gemini、GLM 等),网关自动在 Anthropic Messages 和 OpenAI Chat Completions 格式之间转换。
功能差异 — Extended Thinking 和 Prompt Caching 仅在原生 Claude 模型上可用。Tool Use(函数调用)跨所有模型均可用。
模型名写法 — display name(如 claude-sonnet-4-6)和带 gw/ 前缀(如 gw/claude-sonnet-4-6)两种形式都支持,效果等价。
# 启动 Claude Code
claude
# 或直接在项目目录中启动
cd your-project && claude进入交互界面后,输入 /model 即可切换网关支持的任意模型:

将环境变量写入 shell 配置文件,避免每次手动设置:
# 方式一:写入 shell 配置文件(推荐,永久生效)
echo 'export ANTHROPIC_BASE_URL="https://www.llmgateway.cn"' >> ~/.bashrc
echo 'export ANTHROPIC_AUTH_TOKEN="YOUR_API_KEY"' >> ~/.bashrc
echo 'export ANTHROPIC_MODEL="claude-sonnet-4-6"' >> ~/.bashrc # 可替换为任意聊天模型
# 让 Claude Code 内置档位(Sonnet / Opus / Haiku)映射到网关模型
echo 'export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-4-6"' >> ~/.bashrc
echo 'export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-4-6"' >> ~/.bashrc
echo 'export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-4-5-20251001"' >> ~/.bashrc
source ~/.bashrc
# 方式二:在 Claude Code 内切换模型
# 启动后输入 /model 命令即可交互选择模型
# 支持所有网关中的聊天模型,如 gpt-5.4、gemini-3.1-pro-preview 等| 现象 | 原因 / 解决 |
|---|---|
| 启动报「Connection refused」 | 检查 ANTHROPIC_BASE_URL,不要在末尾加 /v1 |
| 401 Unauthorized | ANTHROPIC_AUTH_TOKEN 是否填写网关 Key(sk- 开头) |
| 报「model not found」 | 检查模型名称是否输入正确,与网关「模型管理」页保持一致即可(带不带 gw/ 前缀都行) |
| 切换模型不生效 | /model 命令是会话级;想永久切换请改 ANTHROPIC_MODEL |
使用 Claude 模型时,通过合理的策略可以显著降低成本。
Prompt Cache 可以缓存重复的上下文,大幅降低输入 token 成本:
不同模型适合不同场景,合理搭配可以节省 50% 以上成本:
| 场景 | 推荐模型 | 原因 |
|---|---|---|
| 简单代码补全、注释生成 | Haiku 4.5 | 速度快、成本低 |
| 日常编码、代码审查 | Sonnet 4.6 | 性价比最高 |
| 架构设计、复杂重构 | Opus 4.6 | 推理能力最强 |
根据使用频率选择合适的付费方式:
避免发送不必要的上下文:
--context-window 参数限制上下文Claude 提供三个系列的模型,各有特点和适用场景。
轻量级模型,响应速度最快,适合高频次的简单任务。
平衡性能与成本的中端模型,是大多数开发者的首选。
旗舰模型,推理能力最强,适合复杂任务和架构设计。
💡 省钱建议
日常编码用 Sonnet 4.6,简单任务用 Haiku 4.5,复杂架构设计才用 Opus 4.6。合理搭配可以节省 50% 以上成本。
CC Switch 是一个跨平台的 AI 编程工具配置管理器,支持在多个 API Provider 之间一键切换。通过 CC Switch 可以快速将 Claude Code、Codex、Cursor 等工具连接到本网关,无需手动修改环境变量。
# 方式一:桌面版(推荐)
# 从 GitHub 下载对应平台的安装包:
# https://github.com/farion1231/cc-switch/releases
# 方式二:CLI 版
npm install -g cc-switch-cli打开 CC Switch,点击添加 Provider,填写以下信息:
# 在 cc-switch 中添加 Provider 时填写以下信息:
#
# Provider 名称: LLM Gateway(或自定义名称)
# Base URL: https://www.llmgateway.cn
# API Key: 在控制台「API 密钥」页面创建的 sk-xxx 密钥
# 模型列表: 点击「获取模型」自动拉取,或手动输入Base URL — 填写网关地址,不要以 /v1 结尾。
API Key — 在控制台 API 密钥 页面创建,格式为 sk-xxx。
模型列表 — CC Switch 会自动调用 GET /v1/models 获取可用模型。
本网关同时兼容多种 API 格式,CC Switch 管理的所有主流工具均可使用:
# 本网关支持以下工具,cc-switch 均可一键切换:
#
# 工具 API 格式 端点
# ───────────── ───────────────────── ──────────────────────
# Claude Code Anthropic Messages /v1/messages
# Codex CLI OpenAI Responses /v1/responses
# Cursor OpenAI Chat /v1/chat/completions
# Copilot CLI Anthropic Messages /v1/messages (BYOK type=anthropic)
# Trae OpenAI Chat /v1/chat/completions
# OpenCode OpenAI Chat /v1/chat/completions
# Windsurf OpenAI Chat /v1/chat/completions
# Gemini CLI Google Gemini /gemini/v1/如果不想安装 CC Switch,也可以直接设置环境变量:
# 如果不使用 cc-switch,也可以手动配置环境变量:
# Claude Code
export ANTHROPIC_BASE_URL="https://www.llmgateway.cn"
export ANTHROPIC_AUTH_TOKEN="sk-your-api-key"
export ANTHROPIC_MODEL="claude-sonnet-4-6"
# Codex CLI
export OPENAI_BASE_URL="https://www.llmgateway.cn/v1"
export OPENAI_API_KEY="sk-your-api-key"
# Cursor / Windsurf
# 在设置中将 Base URL 设为 https://www.llmgateway.cn/v1
# API Key 填写 sk-your-api-keyCodex CLI 是 OpenAI 推出的开源 AI 编程助手。默认走 Responses API,但接入网关时强烈建议改用 Chat Completions(wire_api = "chat"),兼容性最好。
需要 Node.js ≥ 22。使用 npm 全局安装:
npm install -g @openai/codexCodex CLI 需要同时配齐三处:环境变量 + ~/.codex/config.toml + ~/.codex/auth.json,缺一启动报错。
步骤 1:环境变量
# 设置环境变量
export OPENAI_BASE_URL="https://www.llmgateway.cn/v1"
export OPENAI_API_KEY="YOUR_API_KEY"步骤 2:~/.codex/config.toml
# ~/.codex/config.toml
[model_providers.gateway]
name = "LLM Gateway"
base_url = "https://www.llmgateway.cn/v1"
env_key = "OPENAI_API_KEY"
profile = "default"
[profiles.default]
model = "gpt-5.4"
model_provider = "gateway"
wire_api = "chat"🔑 关键:wire_api = "chat" 必须显式写。Codex 默认 responses,会发 GET 预检请求导致兼容性问题。
步骤 3:~/.codex/auth.json
// ~/.codex/auth.json — Codex 启动时需要此文件
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "YOUR_API_KEY"
}🔑 关键:OPENAI_API_KEY 这个字段名 Codex 写死了,不能改成别的名字,否则会报 API key auth is missing a key。
如果 config.toml 引用了其他自定义环境变量名,请同步设置:
# 设置配置文件中引用的环境变量
export OPENAI_API_KEY="YOUR_API_KEY"# OpenAI 系列(推荐用于 Codex)
gpt-5.4 # GPT-5.4
gpt-5.4-codex # GPT-5.4 Codex — 代码专用
gpt-5.4-codex-high # GPT-5.4 Codex High
# Claude 系列(同样支持)
claude-sonnet-4-6 # Sonnet 4.6
claude-opus-4-6 # Opus 4.6
# 其他模型
gemini-3.1-pro-preview # Gemini 3.1 Pro Preview
glm-5.1 # GLM 5.1# 使用默认模型启动
codex
# 指定模型启动
codex --model gpt-5.4
# 直接提问
codex --model gpt-5.4 "explain this codebase"将环境变量写入 shell 配置文件,避免每次手动设置:
# 写入 shell 配置文件(永久生效)
echo 'export OPENAI_BASE_URL="https://www.llmgateway.cn/v1"' >> ~/.bashrc
echo 'export OPENAI_API_KEY="YOUR_API_KEY"' >> ~/.bashrc
source ~/.bashrc| 现象 | 原因 / 解决 |
|---|---|
API key auth is missing a key | ~/.codex/auth.json 里字段名必须是 OPENAI_API_KEY,不能改名 |
| 启动后第一次请求 405 / 400 | config.toml 里 wire_api 没设为 "chat",默认走 responses 不通 |
| 401 Unauthorized | 三处的 Key 是否一致;环境变量是否 source 生效 |
| Base URL 报错 | Base URL 必须以 /v1 结尾 |
Cursor 通过覆盖 OpenAI Base URL 接入网关。网关内的 Claude / GPT / Gemini / GLM 全系模型都通过 OpenAI 协议提供,不需要也无法走 Anthropic 协议(Cursor 当前版本未开放 Anthropic Base URL 自定义入口)。
打开 Cursor → Settings → Models,找到 OpenAI API Key 区域:
// Cursor Settings → Models → OpenAI API Key
// 1. 填入你的网关 API Key
// 2. 勾选 "Override OpenAI Base URL"
// 3. 填入网关地址(带 /v1):
https://www.llmgateway.cn/v1
// 4. 点击 Verify,绿色勾即可Cursor 设置页里也能看到 Anthropic API Key 区域,但没有 Override Anthropic Base URL 选项,无法把 Anthropic 流量指到自定义端点,因此本指南不使用 Anthropic 方式。Claude 系列模型通过上面的 OpenAI Override 走网关即可,网关会自动做协议转换。
模型列表里点 + Add Model,输入模型名后保存。
⚠️ Cursor 必须给模型名加 gw/ 前缀
否则 Cursor 会把请求按官方 OpenAI 模型名拦截/改写,导致 Verify 失败或调不到对应模型。例如填 gw/claude-sonnet-4-6,不要填 claude-sonnet-4-6。
网关已兼容 gw/ 前缀,会自动剥离前缀后路由到对应模型。
// Cursor 添加自定义模型时,模型名【必须】带 gw/ 前缀
// 否则 Cursor 会按官方 OpenAI 模型名拦截/改写,导致 Verify 失败或调不到对应模型
// ✅ 正确
gw/claude-sonnet-4-6
gw/gpt-5.4-codex
// ❌ 错误(会被 Cursor 拦截)
claude-sonnet-4-6
gpt-5.4-codexCursor 中所有模型名都要带 gw/ 前缀:
# Cursor 中所有模型名都要带 gw/ 前缀
# OpenAI 系列
gw/gpt-5.4
gw/gpt-5.4-codex
gw/gpt-5.4-codex-high
# Claude 系列(通过 OpenAI 协议透传,由网关自动转换)
gw/claude-sonnet-4-6
gw/claude-opus-4-6
# 其他
gw/gemini-3.1-pro-preview
gw/glm-5.1配置完成后,在 Cursor 中打开任意文件,使用 Ctrl+L(Mac: Cmd+L)打开 AI 对话框,选择已配置的模型发送一条消息,确认能正常收到回复。
| 现象 | 原因 / 解决 |
|---|---|
| Verify 一直转圈 / 失败 | ① Base URL 是否带 /v1 且填在 OpenAI 区域;② 自定义模型名是否加了 gw/ 前缀 |
| 添加自定义模型后没响应 | 模型名忘了加 gw/ 前缀;Cursor 会按官方 OpenAI 模型名处理,导致请求被改写 |
| Cursor Agent 模式偶发 400 | Cursor Agent 会发 Anthropic 形状请求体到 OpenAI 端点,本网关已兼容;如仍失败请反馈日志 |
| 想直接配 Anthropic 端点 | Cursor 当前版本没有 Anthropic Base URL 覆盖入口,统一走 OpenAI Override 即可 |
GitHub Copilot CLI 通过 BYOK(Bring Your Own Key)模式,可将推理流量切换到自定义的 OpenAI 或 Anthropic 兼容端点。本网关推荐使用 type=anthropic 配置,覆盖网关内全部聊天模型。
参考 GitHub 官方文档安装。常见的安装方式是 npm install -g @github/copilot 或通过 gh extension install github/gh-copilot 启用 gh copilot 子命令。
# 推荐配置:BYOK 走 Anthropic 协议(兼容性最佳)
export COPILOT_PROVIDER_TYPE="anthropic"
export COPILOT_PROVIDER_BASE_URL="https://www.llmgateway.cn"
export COPILOT_PROVIDER_API_KEY="YOUR_API_KEY"
export COPILOT_MODEL="claude-sonnet-4-6"
# 上下文与输出长度上限(按所选模型实际能力调整)
export COPILOT_PROVIDER_MAX_PROMPT_TOKENS="200000"
export COPILOT_PROVIDER_MAX_OUTPUT_TOKENS="8192"COPILOT_PROVIDER_TYPE=anthropic — 推荐配置。Copilot CLI 将走 Anthropic Messages 协议(/v1/messages),网关内部按需在 Anthropic 与 OpenAI / Gemini 上游间转换,所有聊天模型均可使用。
COPILOT_PROVIDER_BASE_URL — 网关地址,不要以 /v1 结尾。
COPILOT_PROVIDER_API_KEY — 在控制台「API 密钥」页面创建。
COPILOT_PROVIDER_MAX_PROMPT_TOKENS — 系统提示与工具定义本身就会占用约 21k token,建议至少设为 32000,否则工具上下文会被截断。实际上限以所选模型为准。
# 与其他工具一致,可使用网关中所有聊天模型
# Claude 系列(推荐,配合 type=anthropic 体验最完整)
claude-sonnet-4-6 # Sonnet 4.6
claude-opus-4-6 # Opus 4.6
claude-haiku-4-5-20251001 # Haiku 4.5
# OpenAI 系列
gpt-5.4
gpt-5.4-codex
gpt-5.4-codex-high
# Gemini 系列
gemini-3.1-pro-preview # Gemini 3.1 Pro Preview
# 智谱 GLM 系列
glm-5.1# 启动 Copilot CLI(按账户偏好可能是 `copilot` 或 `gh copilot`)
copilot
# 直接提问
copilot "解释这个仓库的目录结构"
# 写入 shell 配置文件(永久生效)
{
echo 'export COPILOT_PROVIDER_TYPE="anthropic"'
echo 'export COPILOT_PROVIDER_BASE_URL="https://www.llmgateway.cn"'
echo 'export COPILOT_PROVIDER_API_KEY="YOUR_API_KEY"'
echo 'export COPILOT_MODEL="claude-sonnet-4-6"'
echo 'export COPILOT_PROVIDER_MAX_PROMPT_TOKENS="200000"'
echo 'export COPILOT_PROVIDER_MAX_OUTPUT_TOKENS="8192"'
} >> ~/.bashrc
source ~/.bashrc若上游确认走 OpenAI 兼容端点,也可使用 type=openai。注意 base URL 此时需带 /v1。
# 备选方案:BYOK 走 OpenAI 协议
# 注意:部分非 OpenAI 上游对 type=openai 的请求会返回 400,
# 因此推荐默认使用 type=anthropic。仅在确认所选模型走 OpenAI 兼容上游时再用此方式。
export COPILOT_PROVIDER_TYPE="openai"
export COPILOT_PROVIDER_BASE_URL="https://www.llmgateway.cn/v1"
export COPILOT_PROVIDER_API_KEY="YOUR_API_KEY"
export COPILOT_MODEL="gpt-5.4-codex"注意事项
Anthropic 原生特性(Extended Thinking、Prompt Caching)只在 Claude 上游模型 + type=anthropic 下完整生效;选择 OpenAI / Gemini 上游模型时这些字段会被网关安全降级,但基础对话与工具调用不受影响。
Trae(字节跳动)底层使用 OpenAI Chat Completions 协议。在 Trae 设置里添加自定义 Provider 即可接入网关,使用网关中所有聊天模型。
// Trae UI 配置步骤
// 步骤 1:打开 Trae 侧边栏聊天框右上角齿轮 → Settings → Models
// 步骤 2:点击 + Add Model
// 步骤 3:Provider 选择 OpenAI 或 OpenAI Compatible
// 步骤 4:填入下列字段并保存
// - API Key: YOUR_API_KEY(控制台 API 密钥页创建)
// - Base URL: https://www.llmgateway.cn/v1
// - Model: claude-sonnet-4-6(或网关中其他聊天模型)
// 步骤 5:保存后回到聊天框右上角,重新选择刚添加的模型

| 字段 | 值 |
|---|---|
| API Key | sk-your-gateway-key |
| Base URL | https://www.llmgateway.cn/v1(带 /v1) |
| Model | claude-sonnet-4-6 或网关中其他模型名 |
在 Trae 聊天框输入「介绍你自己」并发送,能正常返回即接入成功。
# Trae 可用网关中所有聊天模型
claude-sonnet-4-6
claude-opus-4-6
gpt-5.4
gpt-5.4-codex
gemini-3.1-pro-preview
glm-5.1| 现象 | 原因 / 解决 |
|---|---|
| 添加 Provider 时找不到 Base URL 输入框 | 选择 OpenAI Compatible(部分版本叫 Custom),内置的 OpenAI 项 Base URL 可能锁死 |
| 401 / 模型未找到 | Base URL 别忘记 /v1 后缀;模型名与网关「模型管理」页保持一致 |
| 改完配置不生效 | 保存后回到聊天框右上角重新选一次刚添加的模型 |
OpenCode 是 sst 推出的 AI 编程 CLI,支持 OpenAI 兼容 API。通过其内置的 TUI 设置界面添加 Provider 接入网关,无需编辑配置文件。
// OpenCode TUI 添加 Provider
// 步骤 1:启动 opencode(交互模式)
// 步骤 2:按 / 或对应快捷键打开命令面板,进入 Settings
// (部分版本叫 Providers / Models / Custom Endpoints)
// 步骤 3:选择 Add Provider → 选 OpenAI Compatible
// 步骤 4:依次填入下列字段并保存
// - Name: LLM Gateway(自定义)
// - Base URL: https://www.llmgateway.cn/v1
// - API Key: YOUR_API_KEY
// - Model: claude-sonnet-4-6(或其他网关模型名)
// 步骤 5:保存后 OpenCode 自动测试连接,重启 opencode 后
// 在模型选择面板中即可看到 LLM Gateway 分组

| 字段 | 值 |
|---|---|
| Name | LLM Gateway(自定义) |
| Base URL | https://www.llmgateway.cn/v1(带 /v1) |
| API Key | sk-your-gateway-key |
| Model | claude-sonnet-4-6 或网关中其他模型名 |
在 OpenCode 主界面按 /model(或对应快捷键)打开模型选择面板,挑选 LLM Gateway 下的模型即可:

# 启动 OpenCode,选择网关模型即可使用
opencode
# 直接执行任务
opencode run "解释这个仓库结构"| 现象 | 原因 / 解决 |
|---|---|
| 找不到 Add Provider 入口 | 不同版本菜单名不同,可能叫 Providers / Models / Custom Endpoints,关键词搜「OpenAI Compatible」 |
| 测试连接失败 | Base URL 是否带 /v1;API Key 是否填写正确 |
| 模型选择器里看不到刚加的 Provider | 重启 OpenCode;或在设置里把该 Provider 切到「启用」状态 |
Gateway 提供 Google Gemini 原生 API 的透传代理,支持 v1 和 v1beta 两个版本。可直接使用 Gemini SDK 或原生 REST 调用。
| Action | 端点 |
|---|---|
| 生成内容 | POST /gemini/v1/models/{model}:generateContent |
| 流式生成 | POST /gemini/v1/models/{model}:streamGenerateContent |
| 生成内容(v1beta) | POST /gemini/v1beta/models/{model}:generateContent |
| 流式生成(v1beta) | POST /gemini/v1beta/models/{model}:streamGenerateContent |
| 缓存内容 | POST /gemini/v1/models/{model}/cachedContents |
| 缓存内容(v1beta) | POST /gemini/v1beta/models/{model}/cachedContents |
图像生成模型(如 gemini-3.1-flash-image-preview)需要使用 v1beta 版本端点。
curl -X POST "https://www.llmgateway.cn/gemini/v1/models/gemini-2.5-flash:generateContent" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{"parts": [{"text": "Hello!"}]}
]
}'curl -X POST "https://www.llmgateway.cn/gemini/v1/models/gemini-2.5-flash:streamGenerateContent?alt=sse" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{"parts": [{"text": "Hello!"}]}
]
}'通过 responseModalities 指定返回 IMAGE,模型会在响应中返回 base64 编码的图片数据。按次计费。
curl -X POST "https://www.llmgateway.cn/gemini/v1beta/models/gemini-3.1-flash-image-preview:generateContent" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{"parts": [{"text": "画一只可爱的猫咪"}]}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"]
}
}'from google import genai
client = genai.Client(
api_key="YOUR_API_KEY",
http_options={"api_version": "v1beta",
"url": "https://www.llmgateway.cn/gemini"},
)
# 文本生成
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Hello!",
)
print(response.text)
# 图像生成(需要 v1beta)
from google.genai import types
response = client.models.generate_content(
model="gemini-3.1-flash-image-preview",
contents="画一只可爱的猫咪",
config=types.GenerateContentConfig(
response_modalities=["TEXT", "IMAGE"],
),
)
for part in response.candidates[0].content.parts:
if part.inline_data:
# part.inline_data.data 为图片的 base64 编码
print(f"图片 MIME: {part.inline_data.mime_type}")
elif part.text:
print(part.text)请求和响应格式与 Google Gemini API 完全一致,可参考 Gemini API 官方文档。
使用 Gemini SDK 时,将 API endpoint 设为 https://www.llmgateway.cn/gemini,API Key 使用网关 Key。SDK 会自动拼接 /v1beta/models/... 路径。
Gateway 所有 LLM 端点均支持 Server-Sent Events (SSE) 流式响应。以下是流式行为说明和推荐的超时配置。
stream: true,响应为 text/event-stream 格式,每个 chunk 以 data: 前缀发送,最后以 data: [DONE] 结束stream: true,响应为 Anthropic SSE 格式,包含 message_start、content_block_delta、message_stop 等事件response.created、response.output_text.delta、response.completed 等事件:streamGenerateContent?alt=sse 端点获取流式响应| 场景 | 推荐超时 | 说明 |
|---|---|---|
| 非流式请求 | 120-300s | 大模型生成可能较慢,建议至少 2 分钟 |
| 流式请求(首 token) | 30-60s | 首个 token 到达时间,超过可能是上游异常 |
| 流式请求(chunk 间隔) | 30s | 两个 chunk 之间的最大间隔 |
| 图像生成 | 120s | 图像生成耗时较长 |
Retry-After 头等待后重试,或使用指数退避(1s → 2s → 4s)每个错误响应包含 error.code 字段,可用于程序化错误处理。
| 错误码 | 说明 | 可重试 |
|---|---|---|
| bad_json | 请求体 JSON 格式错误 | 否 |
| missing_fields | 缺少必填字段 | 否 |
| missing_model | 未指定模型名称 | 否 |
| invalid_api_key | API Key 无效或已吊销 | 否 |
| no_user | 用户不存在 | 否 |
| insufficient_balance | 账户余额不足 | 否 |
| no_pricing | 模型未配置定价 | 否 |
| quota_exceeded | 托管 Key 配额已用完 | 否 |
| not_found | 请求的资源不存在 | 否 |
| request_too_large | 请求体超过大小限制 | 否 |
| too_frequent | 请求频率超限,请稍后重试 | 是 |
| db_error | 数据库操作失败 | 是 |
| upstream_read_error | 上游服务响应异常 | 是 |
| sms_error | 短信发送失败 | 是 |