快速入门
TokenAPI 提供 OpenAI 兼容的 API 接口,您可以使用任何支持 OpenAI API 的客户端库或直接发送 HTTP 请求来调用。
三步开始
- 1. 在 控制台 创建 API Key
- 2. 充值余额(先充后扣,无最低消费)
- 3. 使用 OpenAI SDK 或 HTTP 调用接口
认证方式
所有请求需在 Header 中携带 API Key:
HTTP Header
Authorization: Bearer sk-your-api-key
API Key 以 sk- 开头,创建时仅显示一次,请妥善保存。
Base URL
所有 API 请求的基础地址为:
http://localhost:8000/v1/token-api
使用 OpenAI SDK 时设置 base_url 为上述地址即可。
获取模型列表
GET/v1/token-api/models
返回当前可用的模型列表(OpenAI 兼容格式)
curl
curl http://localhost:8000/v1/token-api/models \
-H "Authorization: Bearer sk-your-api-key"响应示例
{
"object": "list",
"data": [
{
"id": "deepseek-chat",
"object": "model",
"owned_by": "deepseek"
}
]
}对话补全
POST/v1/token-api/chat/completions
创建对话补全,支持流式和非流式两种模式
curl
curl http://localhost:8000/v1/token-api/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-your-api-key" \ -d '{ "model": "deepseek-chat", "messages": [ {"role": "user", "content": "你好"} ], "stream": false }'
响应格式
{
"id": "tok_xxx",
"choices": [{
"message": {
"role": "assistant",
"content": "你好!有什么可以帮你的?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 5,
"completion_tokens": 10,
"prompt_cache_hit_tokens": 0,
"prompt_cache_miss_tokens": 5
}
}流式响应
设置 stream: true 启用流式输出,响应以 SSE 格式返回:
data: {"choices":[{"delta":{"content":"你"}}]}
data: {"choices":[{"delta":{"content":"好"}}]}
data: {"choices":[],"usage":{"prompt_tokens":5,"completion_tokens":2}}
data: [DONE]请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型名称,如 deepseek-chat |
messages | array | 是 | 对话消息列表,含 role 和 content |
stream | boolean | 否 | 是否流式输出,默认 false |
temperature | float | 否 | 采样温度 0-2,默认 0.7 |
max_tokens | int | 否 | 最大生成 token 数 |
top_p | float | 否 | 核采样概率 |
stop | string/array | 否 | 停止词 |
response_format | object | 否 | 指定响应格式如 JSON |
计费规则
采用 DeepSeek 兼容的 Token 计费算法:
# 费用 = 缓存命中 × 命中价 + 缓存未命中 × 未命中价 + 输出 × 输出价
cost = cache_hit_tokens × hit_price / unit
+ cache_miss_tokens × miss_price / unit
+ completion_tokens × output_price / unit- 缓存命中 (cache_hit):与之前请求相同的 prompt 前缀部分,按更低的缓存价计费
- 缓存未命中 (cache_miss):新增的 prompt 部分,按标准输入价计费
- 输出 (completion):模型生成的回复 token,按输出价计费
具体价格因模型而异,可在控制台查看各模型的实际费率。
Token 用量
每次调用的响应中包含 usage 字段,可在控制台查看完整的调用明细、按日趋势和按模型聚合统计。
计费流程采用三层模式确保准确性:
- 预扣:请求前按预估 token 数预扣余额
- 结算:请求完成后按实际 token 数多退少补
- 退款:上游失败时全额退还预扣费用
错误码
| HTTP 状态码 | 含义 | 说明 |
|---|---|---|
400 | 参数错误 | messages 为空、model 缺失等 |
401 | 认证失败 | API Key 无效或已停用 |
402 | 余额不足 | 需充值后重试 |
404 | 模型不存在 | model 参数错误 |
429 | 请求过频 | 超过 RPM 限制 |
502 | 上游错误 | 模型服务异常 |
504 | 请求超时 | 上游响应超时 |
代码示例
Python (OpenAI SDK)
from openai import OpenAI client = OpenAI( api_key="sk-your-api-key", base_url="http://localhost:8000/v1/token-api" ) response = client.chat.completions.create( model="deepseek-chat", messages=[{"role": "user", "content": "Hello"}], ) print(response.choices[0].message.content)
Node.js
import OpenAI from "openai"; const client = new OpenAI({ apiKey: "sk-your-api-key", baseURL: "http://localhost:8000/v1/token-api", }); const response = await client.chat.completions.create({ model: "deepseek-chat", messages: [{ role: "user", content: "Hello" }], }); console.log(response.choices[0].message.content);
curl
curl http://localhost:8000/v1/token-api/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-your-api-key" \ -d '{"model":"deepseek-chat","messages":[{"role":"user","content":"Hello"}]}'