Apollo Gateway Logo

Apollo Gateway

✨ Cursor · Cline · Continue · Codex · OpenCode · OpenAI SDK · Anthropic SDK

Claude API 反向代理 · 完整使用文档

💬点击加入: QQ群
📱扫码加群
QQ群二维码
扫码加入 QQ 群
⚠️
需要魔法(代理)才能使用。建议在 Cursor 中开启内置 HTTP 代理。请更新至最新版 Cursor,旧版不支持。
配置步骤
1
打开 Cursor 设置
点击右上角齿轮图标,或按 Ctrl+Shift+J(Windows)/ Cmd+Shift+J(macOS)打开 Cursor Settings。
2
进入 Models 选项卡
在设置页面左侧选择 Models,展开底部 "自定义 API Keys" 区域。
3
填写 API Key 和接口地址
OpenAI API KeyOverride OpenAI Base URL 中分别填写:
API Key
ap-xxxxxxxxxxxx(你的 API Key)
Base URL
https://api.apolloinn.site/v1
4
在模型列表中添加自定义模型
在 Models 列表中点击 + Add Model,输入模型名称,例如 Kiro-Sonnet-4-6,点击 ADD 按钮确认。
5
切换账号并刷新
切换账号后按照上述步骤重新配置,配置完成后刷新页面即可使用功能会话。
有无 Cursor Pro 账户的配置方式
情况 配置方式
✅ 自有 Cursor Pro 账户 按上方步骤填写 API Key、添加模型即可,无需额外操作
❌ 无 Cursor Pro 账户 下载 Apollo Agent,双击运行,按提示一键完成配置
🍎 macOS 下载 (.dmg) 🪟 Windows 下载 (.exe)
💡
Apollo Agent 配置完成后刷新页面,即可使用 Agent 等全部功能。
Cursor 中使用的模型(Kiro- 开头,共 8 个)
在 Cursor 中必须使用 Kiro- 开头的模型名称,复制填入 Models 列表即可:
Kiro-Opus-4-6
claude-opus-4.6
Kiro-Opus-4-5
claude-opus-4.5
Kiro-Sonnet-4-6
claude-sonnet-4.6
Kiro-Sonnet-4-5
claude-sonnet-4.5
Kiro-Sonnet-4
claude-sonnet-4
Kiro-Haiku-4-5
claude-haiku-4.5
Kiro-Haiku
claude-haiku-4.5
Kiro-Auto
自动选择
⚠️
Cursor 中请使用 Kiro- 开头的模型,不要使用 Cursor 自带账号的模型,否则会与付费账号冲突。
⚠️
需要魔法(代理)才能正常访问。建议开启系统代理。
配置步骤(VS Code 插件)
1
安装 Cline 插件
在 VS Code 扩展市场搜索 Cline 并安装。
2
打开 Cline 设置
点击侧边栏 Cline 图标,点击右上角齿轮 ⚙️ 进入设置。
3
选择 API Provider
API Provider 下拉框中选择 OpenAI Compatible
4
填写配置信息
依次填写以下内容:
Base URL
https://api.apolloinn.site/v1
API Key
ap-xxxxxxxxxxxx(你的 API Key)
Model
claude-sonnet-4.6
5
保存并开始使用
点击 Save,回到 Cline 对话框即可开始使用。
配置参数速查
配置项
API Provider OpenAI Compatible
Base URL https://api.apolloinn.site/v1
API Key ap-xxx(你的 Key)
推荐模型 claude-sonnet-4.6
⚠️
需要魔法(代理)才能正常访问。建议开启系统代理。
配置步骤(VS Code / JetBrains 插件)
1
安装 Continue 插件
在 VS Code 或 JetBrains 扩展市场搜索 Continue 并安装。
2
打开配置文件
点击 Continue 侧边栏底部的 ⚙️ 设置,或直接编辑配置文件:~/.continue/config.yaml
3
写入配置
将以下内容粘贴到配置文件中(替换 API Key):
~/.continue/config.yaml
name: Apollo Gateway
version: 1.0.0
schema: v1
models:
  - name: Claude Sonnet 4.6
    provider: openai
    model: claude-sonnet-4.6
    apiKey: ap-你的apikey
    apiBase: https://api.apolloinn.site/standard/v1

  - name: Claude Opus 4.6
    provider: openai
    model: claude-opus-4.6
    apiKey: ap-你的apikey
    apiBase: https://api.apolloinn.site/standard/v1

  - name: Claude Haiku 4.5
    provider: openai
    model: claude-haiku-4.5
    apiKey: ap-你的apikey
    apiBase: https://api.apolloinn.site/standard/v1
4
保存并重载
保存文件后,Continue 会自动重载配置。在模型选择器中选择对应模型即可使用。
💡
Continue 使用 /standard/v1 端点(标准 OpenAI 兼容),而非 Cursor 专用的 /v1 端点。
⚠️
需要魔法(代理)才能正常访问。建议开启系统代理。
配置步骤(OpenAI Codex CLI)
1
安装 Codex CLI
npm
npm install -g @openai/codex
2
创建配置文件
~/.codex/config.yaml 中写入以下配置:
~/.codex/config.yaml
model: claude-sonnet-4.6
provider: openai
apiKey: ap-你的apikey
apiBase: https://api.apolloinn.site/standard/v1
3
或使用环境变量
bash / zsh
export OPENAI_API_KEY="ap-你的apikey"
export OPENAI_BASE_URL="https://api.apolloinn.site/standard/v1"
Windows PowerShell
$env:OPENAI_API_KEY="ap-你的apikey"
$env:OPENAI_BASE_URL="https://api.apolloinn.site/standard/v1"
4
启动 Codex
命令行
# 指定模型启动
codex --model claude-sonnet-4.6

# 或直接启动(使用配置文件中的默认模型)
codex
配置参数速查
配置项
apiBase / OPENAI_BASE_URL https://api.apolloinn.site/standard/v1
apiKey / OPENAI_API_KEY ap-xxx(你的 Key)
推荐模型 claude-sonnet-4.6
⚠️
需要魔法(代理)才能正常访问。建议开启系统代理。
配置步骤(OpenCode CLI)
1
安装 OpenCode
npm
npm install -g opencode-ai
2
创建配置文件
在项目根目录或 ~/.config/opencode/config.json 中写入:
opencode.json / config.json
{
  "provider": {
    "openai": {
      "apiKey": "ap-你的apikey",
      "baseURL": "https://api.apolloinn.site/standard/v1"
    }
  },
  "model": "openai/claude-sonnet-4.6"
}
3
或使用环境变量
bash / zsh
export OPENAI_API_KEY="ap-你的apikey"
export OPENAI_BASE_URL="https://api.apolloinn.site/standard/v1"
4
启动 OpenCode
命令行
opencode
配置参数速查
配置项
baseURL / OPENAI_BASE_URL https://api.apolloinn.site/standard/v1
apiKey / OPENAI_API_KEY ap-xxx(你的 Key)
推荐模型 openai/claude-sonnet-4.6
GET/v1/models

返回当前所有可用模型列表。

cURL
curl https://api.apolloinn.site/v1/models \
  -H "Authorization: Bearer your-api-key"
Python · OpenAI SDK
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.apolloinn.site/v1")
for m in client.models.list().data:
    print(m.id)
POST/v1/chat/completions
💡
专为 Cursor IDE 优化,自动将 reasoning_content 转为 <think> 标签格式。
Python · 流式
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.apolloinn.site/v1")
response = client.chat.completions.create(
    model="claude-sonnet-4.6",
    messages=[{"role": "user", "content": "你好!"}],
    stream=True
)
for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
Python · Function Calling
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.apolloinn.site/v1")
tools = [{"type":"function","function":{"name":"get_weather",
    "description":"获取城市天气",
    "parameters":{"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}}}]
resp = client.chat.completions.create(
    model="claude-sonnet-4.6",
    messages=[{"role":"user","content":"北京天气怎么样?"}],
    tools=tools
)
if resp.choices[0].message.tool_calls:
    tc = resp.choices[0].message.tool_calls[0]
    print(tc.function.name, tc.function.arguments)
POST/standard/v1/chat/completions
推荐接口。完全兼容 OpenAI 格式,支持 reasoning_mode 参数控制思考内容。
reasoning_mode 行为
"drop" 默认,丢弃思考过程,只返回最终回答
"reasoning_content" 思考内容放在 reasoning_content 字段,与 OpenAI o1 格式一致
"content" 思考内容用 <think>...</think> 包裹,拼接到 content
cURL
curl -X POST https://api.apolloinn.site/standard/v1/chat/completions \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-sonnet-4.6","messages":[{"role":"user","content":"你好!"}],"stream":false}'
Python · 获取思考过程
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.apolloinn.site/standard/v1")
response = client.chat.completions.create(
    model="claude-sonnet-4.6",
    messages=[{"role":"user","content":"25 * 37 等于多少?"}],
    stream=False,
    extra_body={"reasoning_mode": "reasoning_content"}
)
msg = response.choices[0].message
print("思考过程:", getattr(msg, "reasoning_content", ""))
print("最终答案:", msg.content)
Python · 流式 + 思考内容
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.apolloinn.site/standard/v1")
response = client.chat.completions.create(
    model="claude-sonnet-4.6",
    messages=[{"role":"user","content":"解释量子纠缠"}],
    stream=True,
    extra_body={"reasoning_mode": "reasoning_content"}
)
for chunk in response:
    delta = chunk.choices[0].delta
    if hasattr(delta,"reasoning_content") and delta.reasoning_content:
        print(delta.reasoning_content, end="", flush=True)
    if delta.content:
        print(delta.content, end="", flush=True)
JavaScript · Node.js
import OpenAI from "openai";
const client = new OpenAI({ apiKey:"your-api-key", baseURL:"https://api.apolloinn.site/standard/v1" });
const response = await client.chat.completions.create({
  model: "claude-sonnet-4.6",
  messages: [{ role:"user", content:"Hello!" }],
  stream: true,
});
for await (const chunk of response) {
  const c = chunk.choices[0]?.delta?.content;
  if (c) process.stdout.write(c);
}
POST/standard/v1/chat/completions
💡
使用 OpenAI 官方 SDK 直接调用,适合已有 OpenAI SDK 项目快速迁移。
Python · OpenAI SDK
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.apolloinn.site/standard/v1")
response = client.chat.completions.create(
    model="claude-sonnet-4.6",
    messages=[{"role":"user","content":"你好!"}]
)
print(response.choices[0].message.content)
Python · 流式输出
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.apolloinn.site/standard/v1")
response = client.chat.completions.create(
    model="claude-sonnet-4.6",
    messages=[{"role":"user","content":"写一首关于春天的诗"}],
    stream=True
)
for chunk in response:
    c = chunk.choices[0].delta.content
    if c: print(c, end="", flush=True)
JavaScript · Node.js
import OpenAI from "openai";
const client = new OpenAI({ apiKey:"your-api-key", baseURL:"https://api.apolloinn.site/standard/v1" });
const response = await client.chat.completions.create({
  model: "claude-sonnet-4.6",
  messages: [{ role:"user", content:"Hello!" }]
});
console.log(response.choices[0].message.content);
POST/v1/messages
💡
原生 Anthropic Messages API 格式,适合已使用 Anthropic SDK 的项目直接迁移。
cURL
curl -X POST https://api.apolloinn.site/v1/messages \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-sonnet-4.6","max_tokens":1024,"messages":[{"role":"user","content":"你好!"}]}'
Python · Anthropic SDK
import anthropic
client = anthropic.Anthropic(api_key="your-api-key", base_url="https://api.apolloinn.site")
msg = client.messages.create(
    model="claude-sonnet-4.6", max_tokens=1024,
    system="你是一个有帮助的助手。",
    messages=[{"role":"user","content":"你好!"}]
)
print(msg.content[0].text)
Python · 流式
import anthropic
client = anthropic.Anthropic(api_key="your-api-key", base_url="https://api.apolloinn.site")
with client.messages.stream(
    model="claude-sonnet-4.6", max_tokens=1024,
    messages=[{"role":"user","content":"写一首关于春天的诗"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
JavaScript · Anthropic SDK
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ apiKey:"your-api-key", baseURL:"https://api.apolloinn.site" });
const msg = await client.messages.create({
  model:"claude-sonnet-4.6", max_tokens:1024,
  messages:[{ role:"user", content:"Hello!" }]
});
console.log(msg.content[0].text);
价格标准(每 1M tokens)
旗舰级 Opus
Opus 4.6 / 4.5
输入$5.00
输出$25.00
均衡级 Sonnet
Sonnet 4.6 / 4.5 / 4
输入$3.00
输出$15.00
快速级 Haiku
Haiku 4.5
输入$1.00
输出$5.00
📊
计费公式:费用 = 输入Token × 输入权重 + 输出Token × 输出权重,权重 = 模型价格 ÷ $25
完整模型列表(共 14 个)
💡
模型名称不区分大小写。Cursor 中填写 Kiro- 开头的别名;Cline / Continue / Codex / OpenCode 等工具两种名称均可使用。
标准名称(其他工具可选) Kiro 别名(Cursor 必用) 级别
Claude-Opus-4.6 Kiro-Opus-4-6 旗舰
Claude-Opus-4.5 Kiro-Opus-4-5 旗舰
Claude-Sonnet-4.6 Kiro-Sonnet-4-6 均衡
Claude-Sonnet-4.5 Kiro-Sonnet-4-5 均衡
Claude-Sonnet-4 Kiro-Sonnet-4 均衡
Claude-Haiku-4.5 Kiro-Haiku-4-5 快速
Kiro-Haiku 快速
Kiro-Auto 自动
📋
复制模型名填入 Cursor / Cline / ChatBox 等客户端即可使用。标准模型名和别名均可。
接口选择建议
使用场景 推荐接口
Cursor IDE 接入 POST /v1/chat/completions
自建应用(OpenAI SDK) POST /standard/v1/chat/completions
需要获取思考过程 标准接口 + reasoning_mode: "reasoning_content"
已有 Anthropic SDK 项目 POST /v1/messages
查询可用模型 GET /v1/models
HTTP 错误码
状态码 说明 处理建议
401 API Key 无效或缺失 检查 Authorization Header 是否正确
403 账户已禁用或无权限 联系管理员
422 请求参数格式错误 检查请求体格式是否符合规范
429 请求频率超限 降低请求频率,加入重试逻辑
503 服务暂时不可用(无可用 token) 稍后重试
Python 错误处理 + 自动重试
Python
import httpx, time

def chat_with_retry(messages, max_retries=3):
    for attempt in range(max_retries):
        try:
            resp = httpx.post(
                "https://api.apolloinn.site/standard/v1/chat/completions",
                headers={"Authorization": "Bearer your-api-key"},
                json={"model":"claude-sonnet-4.6","messages":messages,"stream":False},
                timeout=60
            )
            if resp.status_code == 429:
                wait = 2 ** attempt  # 指数退避
                print(f"频率限制,{wait}s 后重试...")
                time.sleep(wait)
                continue
            if resp.status_code == 503:
                print("服务暂时不可用,5s 后重试...")
                time.sleep(5)
                continue
            resp.raise_for_status()
            return resp.json()
        except httpx.HTTPStatusError as e:
            print(f"HTTP 错误: {e.response.status_code}")
            raise
    raise Exception("超过最大重试次数")