API 接入与多协议支持
统一说明 OpenAI Responses、Chat Completions、Anthropic 和 Embeddings 调用方式。
接口概览
| 能力 | 接口 |
|---|---|
| 模型列表 | GET /v1/models |
| OpenAI Responses | POST /v1/responses |
| Responses 输入 Token 计数 | POST /v1/responses/input_tokens |
| OpenAI 对话 | POST /v1/chat/completions |
| Anthropic 对话 | POST /v1/messages |
| 向量嵌入 | POST /v1/embeddings |
统一基础地址:https://tokenrhythm.studio/v1。
鉴权与安全
所有请求均通过 HTTPS 发送,并在请求头携带 Authorization: Bearer sk_xxx。API Key 仅在创建成功时完整展示一次,不要写入公开代码、浏览器脚本或日志。
OpenAI Responses
Responses 使用平台 resp_* 标识,默认保存 30 天状态,可用 previous_response_id 延续上下文;模型页仅标明已经实机认证的原生支持。功能按灰度开关开放,请以 /v1/models 当前返回的 Responses 能力为准。
curl https://tokenrhythm.studio/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_xxx" \
-d '{"model":"deepseek-v4-flash","input":"你好","store":true}'OpenAI Chat Completions
cURL
curl https://tokenrhythm.studio/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_xxx" \
-d '{
"model": "deepseek-v4-flash",
"messages": [{ "role": "user", "content": "你好" }],
"stream": false
}'Python
from openai import OpenAI
client = OpenAI(
api_key="sk_xxx",
base_url="https://tokenrhythm.studio/v1",
)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "你好"}],
)
print(response.choices[0].message.content)Node.js
const response = await fetch("https://tokenrhythm.studio/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer sk_xxx"
},
body: JSON.stringify({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "你好" }]
})
});
console.log(await response.json());Anthropic Messages
Anthropic 原生协议需要 anthropic-version: 2023-06-01,并且必须传入 max_tokens。
cURL
curl https://tokenrhythm.studio/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_xxx" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"deepseek-v4-flash","max_tokens":512,"messages":[{"role":"user","content":"你好"}]}'Python
import requests
response = requests.post(
"https://tokenrhythm.studio/v1/messages",
headers={
"Authorization": "Bearer sk_xxx",
"anthropic-version": "2023-06-01",
},
json={
"model": "deepseek-v4-flash",
"max_tokens": 512,
"messages": [{"role": "user", "content": "你好"}],
},
)
print(response.json())Node.js
const response = await fetch("https://tokenrhythm.studio/v1/messages", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer sk_xxx",
"anthropic-version": "2023-06-01"
},
body: JSON.stringify({
model: "deepseek-v4-flash",
max_tokens: 512,
messages: [{ role: "user", content: "你好" }]
})
});
console.log(await response.json());Embeddings
向量模型以模型接口返回的当前可用模型为准。
cURL
curl https://tokenrhythm.studio/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_xxx" \
-d '{"model":"embedding-model-id","input":"需要向量化的文本"}'Python
from openai import OpenAI
client = OpenAI(api_key="sk_xxx", base_url="https://tokenrhythm.studio/v1")
response = client.embeddings.create(
model="embedding-model-id",
input="需要向量化的文本",
)
print(response.data[0].embedding)Node.js
const response = await fetch("https://tokenrhythm.studio/v1/embeddings", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer sk_xxx"
},
body: JSON.stringify({
model: "embedding-model-id",
input: "需要向量化的文本"
})
});
console.log(await response.json());流式响应
Chat Completions 传入 stream: true 后按 SSE 返回,正文增量位于 choices[0].delta.content;Responses 使用 response.output_text.delta 等 Responses 事件并携带递增 sequence_number;Anthropic 使用原生 Messages 流式事件。三种协议不要混用解析器。
工具调用
Chat Completions 继续支持既有 OpenAI 工具字段;Responses 当前仅透传自定义 type=function,托管搜索、代码执行、MCP、图片生成和文件检索会明确返回能力未开放。
排查错误
请求失败时先记录响应中的 traceId,再对照错误码检查鉴权、余额、模型能力、输出长度和限流状态。