Skip to content

API 调用指南

将 gahorouter 接入各家模型 SDK,只需改两个参数:api_keybase_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_kintegerTop-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.topKintegerTop-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加上就好