Skip to content

API 调用指南 ​

将 gahorouter 接入各家模型 SDK,只需改两个参数:api_key 和 base_url。

要求:Python ≥ 3.8

目录 ​

  • 拿 API Key 并绑定分组
  • 安装 SDK
  • 模型列表与倍率说明
  • API 调用示例
  • 请求与响应格式
  • 支持的参数说明
  • 常见报错

拿 API Key 并绑定分组 ​

登录 https://console.gahorouter.com →「API Keys」→ 创建密钥,得到 cr-xxx...

在 API 密钥的「分组」列点一下,选一个匹配你要调用的模型的分组:

调用这家必须绑这类分组
Claude名字含「Claude」「旗舰」「尊享」
GPT名字含「GPT」
Gemini名字含「Gemini」
国内模型名字含「DeepSeek / Qwen / GLM / Kimi / MiniMax」等

绑错了会报 401/503,回控制台重新点一下分组就行。

安装 SDK ​

按需装,不用全装:

bash
pip install openai anthropic google-generativeai
  • openai —— 调用 GPT、国内模型
  • anthropic —— 调用 Claude
  • google-generativeai —— 调用 Gemini

模型列表与倍率说明 ​

倍率越高,单次调用消耗的额度越多,对应能力越强。

换模型只需修改各示例中的 model 字段。

Claude 系列 ​

分组模型 ID
智能优选通道claude-haiku-4-5
官方尊享通道claude-sonnet-4-6
官方旗舰通道claude-opus-4-6

GPT 系列 ​

分组模型 ID
GPT-体验通道gpt-5.4

Gemini 系列 ​

分组模型 ID
Gemini-官方通道gemini-2.5-flash

国内模型系列 ​

分组模型 ID
Qwen 体验通道qwen-plus
GLM 官方通道(OpenAI 接口)glm-5.1
Kimi 官方通道kimi-k2.5
MiniMax 体验通道(OpenAI 接口)MiniMax-M2.5
DeepSeek 体验通道(OpenAI 接口)deepseek-v3.2

API 调用示例 ​

Claude ​

前提:Key 绑到 Claude 分组。

Python:

python
import anthropic

client = anthropic.Anthropic(
    api_key="cr-xxxxxxxx",
    base_url="https://console.gahorouter.com",
)

msg = client.messages.create(
    model="claude-sonnet-4-6",  # 换模型:claude-opus-4-6 / claude-haiku-4-5-20251001
    max_tokens=1024,
    messages=[{"role": "user", "content": "你好"}],
)
print(msg.content[0].text)

curl:

bash
curl https://console.gahorouter.com/v1/messages \
  -H "x-api-key: cr-xxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "messages": [{"role": "user", "content": "你好"}]
}'

GPT ​

前提:Key 绑到 GPT 分组。⚠️ 使用 responses 接口必须加 stream=True。

Python:

python
from openai import OpenAI

client = OpenAI(
    api_key="cr-xxxxxxxx",
    base_url="https://console.gahorouter.com/v1",
)

stream = client.responses.create(
    model="gpt-5.4",  # 换模型:gpt-4o / gpt-4o-mini / o3 / gpt-5.1-codex-max
    input="你好",
    stream=True,
)
for ev in stream:
    if ev.type == "response.output_text.delta":
        print(ev.delta, end="", flush=True)

curl:

bash
curl -N https://console.gahorouter.com/v1/responses \
  -H "Authorization: Bearer cr-xxx" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "gpt-5.4",
  "input": "你好",
  "stream": true
}'

Gemini ​

前提:Key 绑到 Gemini 分组。

Python:

python
import google.generativeai as genai

genai.configure(
    api_key="cr-xxxxxxxx",
    client_options={"api_endpoint": "console.gahorouter.com"},
    transport="rest",
)

model = genai.GenerativeModel("gemini-2.5-pro")  # 换模型:gemini-2.5-flash
print(model.generate_content("你好").text)

curl:

bash
curl "https://console.gahorouter.com/v1beta/models/gemini-2.5-pro:generateContent" \
  -H "x-goog-api-key: cr-xxx" \
  -H "Content-Type: application/json" \
  -d '{
  "contents": [{"parts": [{"text": "你好"}]}]
}'

国内模型 ​

前提:Key 绑到对应的国内模型分组。

Python:

python
from openai import OpenAI

client = OpenAI(
    api_key="cr-xxxxxxxx",
    base_url="https://console.gahorouter.com/v1",
)

resp = client.chat.completions.create(
    model="deepseek-v3.2",  # 换模型:qwen-plus / glm-5.1 / kimi-k2.5 / MiniMax-M2.5
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

curl:

bash
curl https://console.gahorouter.com/v1/chat/completions \
  -H "Authorization: Bearer cr-xxx" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "deepseek-v3.2",
  "messages": [{"role": "user", "content": "你好"}]
}'

请求与响应格式 ​

Claude 格式 ​

请求体:

json
{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "system": "你是一个有帮助的助手。",
  "messages": [
    {"role": "user", "content": "你好"}
  ]
}

响应体:

json
{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
  "content": [
    {"type": "text", "text": "你好!有什么我可以帮你的吗?"}
  ],
  "model": "claude-sonnet-4-6",
  "stop_reason": "end_turn",
  "usage": {"input_tokens": 10, "output_tokens": 25}
}

GPT / 国内模型格式 ​

请求体(chat.completions):

json
{
  "model": "deepseek-v3.2",
  "messages": [
    {"role": "system", "content": "你是一个有帮助的助手。"},
    {"role": "user", "content": "你好"}
  ],
  "temperature": 0.7,
  "max_tokens": 1024,
  "stream": false
}

响应体:

json
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1700000000,
  "model": "deepseek-v3.2",
  "choices": [
    {
      "index": 0,
      "message": {"role": "assistant", "content": "你好!有什么我可以帮你的吗?"},
      "finish_reason": "stop"
    }
  ],
  "usage": {"prompt_tokens": 20, "completion_tokens": 15, "total_tokens": 35}
}

Gemini 格式 ​

请求体:

json
{
  "contents": [
    {"parts": [{"text": "你好"}]}
  ],
  "generationConfig": {
    "maxOutputTokens": 1024,
    "temperature": 0.7
  }
}

响应体:

json
{
  "candidates": [
    {
      "content": {"parts": [{"text": "你好!有什么我可以帮你的吗?"}], "role": "model"},
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {"promptTokenCount": 3, "candidatesTokenCount": 15}
}

支持的参数说明 ​

Claude 接口 ​

参数类型必填说明
modelstring是模型 ID,见上方列表
max_tokensinteger是最大输出 token 数,建议 512–8192
messagesarray是对话历史,[{"role":"user","content":"..."}]
systemstring否系统提示词
temperaturefloat否随机性,0–1,默认 1
top_pfloat否核采样,0–1
top_kinteger否Top-K 采样
streambool否是否流式返回,默认 false
stop_sequencesarray否遇到这些字符串时停止生成

GPT / 国内模型 接口 ​

chat.completions

参数类型必填说明
modelstring是模型 ID
messagesarray是对话历史,含 role(system/user/assistant)和 content
temperaturefloat否随机性,0–2,默认 1
max_tokensinteger否最大输出 token 数
top_pfloat否核采样
streambool否是否流式返回,默认 false
stopstring/array否停止词
presence_penaltyfloat否话题多样性,-2–2
frequency_penaltyfloat否重复惩罚,-2–2
ninteger否生成候选数,默认 1

responses(GPT 专用)

参数类型必填说明
modelstring是模型 ID
inputstring是用户输入文本
streambool必须为 true不加会返回空内容但扣费
instructionsstring否系统提示词(相当于 system)
max_output_tokensinteger否最大输出 token 数
temperaturefloat否随机性

Gemini 接口 ​

参数类型必填说明
contentsarray是对话内容,[{"parts":[{"text":"..."}]}]
generationConfig.maxOutputTokensinteger否最大输出 token 数
generationConfig.temperaturefloat否随机性,0–2
generationConfig.topPfloat否核采样
generationConfig.topKinteger否Top-K 采样
systemInstructionobject否系统提示,{"parts":[{"text":"..."}]}

常见报错 ​

报错原因怎么办
401 UnauthorizedKey 不对回控制台确认 Key 拷贝完整、没过期
403 no group boundKey 没绑分组控制台给 Key 选一个分组
503 / 404分组和 SDK 不匹配Claude SDK 要 Claude 分组;OpenAI responses 要 GPT 分组;chat.completions 要国内模型或兼容分组
429 Too Many Requests上游瞬时满载等几秒重试;持续报找管理员扩容
返回空内容但扣费了GPT 没加 stream=True加上就好