OpenAI 兼容 API

TokenCode 完全兼容 OpenAI API 协议,你可以直接使用 OpenAI SDK 或任何兼容 OpenAI 协议的客户端连接。

Base URL

text
https://tokencode.dev/v1

认证

所有端点需要认证:

  • Bearer TokenAuthorization: Bearer <your-api-key>
  • API Key 头x-api-key: <your-api-key>

列出模型

返回当前可用的模型列表。

bash
curl https://tokencode.dev/v1/models \
  -H "Authorization: Bearer sk-your-api-key"

响应示例:

json
{
  "object": "list",
  "data": [
    { "id": "gpt-5.5", "object": "model", "owned_by": "openai" },
    { "id": "claude-sonnet-4-6", "object": "model", "owned_by": "anthropic" },
    { "id": "gemini-2.5-pro", "object": "model", "owned_by": "google" }
  ]
}

Chat Completions

OpenAI 兼容的对话补全端点。支持所有上游模型,不限于 OpenAI 模型。

bash
curl https://tokencode.dev/v1/chat/completions \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [
      {"role": "system", "content": "你是一个有帮助的助手。"},
      {"role": "user", "content": "解释一下量子计算"}
    ],
    "temperature": 0.7,
    "max_tokens": 1024
  }'

请求参数:

参数 类型 必填 说明
model string 模型 ID(如 gpt-5.5claude-sonnet-4-6
messages array 消息对象数组
stream boolean 是否启用流式响应
temperature number 采样温度(0-2)
max_tokens integer 最大生成 Token 数
top_p number 核采样概率
n integer 生成候选数量
stop string/array 停止序列
presence_penalty number 存在惩罚(-2 到 2)
frequency_penalty number 频率惩罚(-2 到 2)
tools array Function Calling 工具定义
tool_choice string/object 工具调用策略

响应示例:

json
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1700000000,
  "model": "gpt-5.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "量子计算是一种利用量子力学原理..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 128,
    "total_tokens": 153
  }
}

流式响应

设置 "stream": true 时,响应使用 SSE 格式:

text
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":"量"},"index":0}]}

data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":"子"},"index":0}]}

data: [DONE]

Embeddings

生成文本向量嵌入。

bash
curl https://tokencode.dev/v1/embeddings \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-small",
    "input": "Hello world"
  }'

请求参数:

参数 类型 必填 说明
model string 嵌入模型 ID
input string/array 要嵌入的文本
encoding_format string 编码格式(floatbase64

协议自动转换

TokenCode 的核心优势之一是协议自动转换。当你通过 OpenAI 兼容端点调用非 OpenAI 模型时(如 Claude、Gemini),平台会自动完成:

  1. 请求转换:将 OpenAI 格式的请求体转换为目标模型的原生格式
  2. 响应转换:将目标模型的原生响应转换为 OpenAI 格式返回
  3. 流式适配:流式响应同样自动转换格式

这意味着你可以用同一套 OpenAI SDK 代码调用所有模型,无需关心底层协议差异。

使用 OpenAI SDK

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://tokencode.dev/v1"
)

# 调用 OpenAI 模型
response = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "你好"}]
)

# 调用 Claude 模型 — 同样的代码,自动转换协议
response = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "你好"}]
)

# 调用 Gemini 模型 — 一样的方式
response = client.chat.completions.create(
    model="gemini-2.5-pro",
    messages=[{"role": "user", "content": "你好"}]
)

错误响应

所有错误遵循 OpenAI 错误格式:

json
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}
HTTP 状态码 含义
400 请求参数无效
401 认证失败 — API Key 无效
403 权限不足 — 模型不可用
429 速率限制或余额不足
500 服务器内部错误
502 上游服务异常