Skip to content

OpenAI 兼容格式

AI通道对外提供与 OpenAI 官方 SDK 完全兼容的接口,路径、参数、响应结构都保持一致。你只需要替换 base_urlapi_key

接口地址

https://ai.aitongdao.com/v1

所有 OpenAI 风格的 endpoint(/chat/completions/responses/models 等)都拼接在这个前缀后面。

认证方式

使用 Bearer Token:

Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx

sk- 开头的字符串就是你在后台"令牌"页创建得到的 API Key。

Chat Completions

接口说明

OpenAI 最常用的对话接口。

请求地址

POST https://ai.aitongdao.com/v1/chat/completions

GPT 系列必须流式

GPT 系列强制流式

调用 gpt-5gpt-5-codex 等 GPT 系列模型时,stream 参数必须设为 true。非流式请求会被拒绝。Claude 和 Gemini 系列可以自由选择是否流式。

请求示例

bash
curl https://ai.aitongdao.com/v1/chat/completions \
  -H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5",
    "stream": true,
    "messages": [
      {"role": "system", "content": "你是一个简洁的助手。"},
      {"role": "user", "content": "解释一下什么是 token。"}
    ]
  }'

请求参数

参数类型必填说明
modelstring模型名,如 gpt-5claude-sonnet-4-6
messagesarray对话消息数组,每项含 rolecontent
streambooleanGPT 必填是否流式输出,GPT 系列必须为 true
max_tokensinteger限制输出的最大 token 数
temperaturenumber采样温度,0-2 之间
top_pnumber核采样阈值,0-1 之间
ninteger生成几条候选结果
stopstring/array触发终止的字符串
userstring用户标识,便于追踪

Messages 格式

json
[
  {"role": "system", "content": "系统提示"},
  {"role": "user", "content": "用户消息"},
  {"role": "assistant", "content": "模型回复"}
]

多轮对话时把历史消息全部按顺序放进 messages 数组。

响应格式

非流式响应(Claude、Gemini 可用):

json
{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "created": 1712345678,
  "model": "claude-sonnet-4-6",
  "choices": [
    {
      "index": 0,
      "message": {"role": "assistant", "content": "回复内容"},
      "finish_reason": "stop"
    }
  ],
  "usage": {"prompt_tokens": 12, "completion_tokens": 30, "total_tokens": 42}
}

流式输出

流式响应是一串以 data: 前缀的 SSE 事件:

  1. 客户端发送 stream: true 的请求。
  2. 服务端先返回首个 chunk(含元数据)。
  3. 后续每个 chunk 带一段增量文本(delta.content)。
  4. 最后一个事件是 data: [DONE]

支持的模型

GPT 系列(必须流式)

模型说明上下文流式要求
gpt-5GPT-5 主力必须
gpt-5-codexGPT-5 代码优化版必须
gpt-5.2-codex更新的代码版本必须

Claude 系列(OpenAI 格式、流式可选)

模型说明上下文流式
claude-opus-4-6旗舰 Opus超长可选
claude-sonnet-4-6平衡型 Sonnet超长可选

Gemini 系列(OpenAI 格式、流式可选)

模型说明上下文流式
gemini-2.5-proGemini 2.5 Pro可选

完整模型列表以后台"可用模型"页面为准。

代码示例

Python(GPT 流式)

python
from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://ai.aitongdao.com/v1")

stream = client.chat.completions.create(
    model="gpt-5",
    messages=[{"role": "user", "content": "写一段快排的 Python 实现"}],
    stream=True,
)

for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

Python(Claude 非流式)

python
from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://ai.aitongdao.com/v1")

resp = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "解释 TCP 三次握手"}],
)

print(resp.choices[0].message.content)

Node.js(GPT 流式)

javascript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "YOUR_API_KEY",
  baseURL: "https://ai.aitongdao.com/v1",
});

const stream = await client.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "写一段快排" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content || "");
}

cURL(非 GPT)

bash
curl https://ai.aitongdao.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [{"role": "user", "content": "你好"}]
  }'

错误处理

错误响应格式

json
{
  "error": {
    "message": "具体错误描述",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}

常见错误码

状态码类型说明
401authentication_errorAPI Key 无效、禁用或过期
403permission_error当前分组没有该模型的权限
429rate_limit_error触发限流
400invalid_request_error请求参数错误(比如 GPT 没开流式)
500server_error上游或网关内部错误

带重试的调用

python
import time
from openai import OpenAI, APIError

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://ai.aitongdao.com/v1")

def call_with_retry(messages, retries=3):
    for i in range(retries):
        try:
            return client.chat.completions.create(
                model="claude-sonnet-4-6", messages=messages
            )
        except APIError as e:
            if i == retries - 1:
                raise
            time.sleep(2 ** i)

最佳实践

  • 给每个请求设超时(30-120 秒,视模型而定),避免客户端卡死。
  • 重试用指数退避:429/5xx 等瞬时错误适合重试。
  • GPT 系列用流式:既是硬性要求,也能更早拿到第一字节。
  • 压住 max_tokens:给输出一个合理上限,避免预算浪费。

速率限制

维度默认值
每分钟请求数受分组和账户等级限制
每小时请求数受分组和账户等级限制
并发请求数受分组和账户等级限制

触发限流会返回 429,请在客户端做好退避重试。高并发需求可联系客服调整。

下一步

AI通道 · 让国内开发者直连全球 AI 模型