目录

1. 认证方式

所有 API 请求需要在 HTTP 头中携带用户的 API Key(格式为 tk_ 开头)。API Key 可在用户个人中心获取,每个用户拥有唯一的 API Key。

HTTP Header 示例
Authorization: Bearer tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
X-API-Key: tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  // 兼容格式

2. 获取可用模型列表

获取系统当前支持的、已启用且配置了上游 API Key 的所有模型。

请求
GET /api/v1/models
Authorization: Bearer tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
响应
{
  "object": "list",
  "data": [
    {
      "id": "deepseek-v4-flash",
      "name": "DeepSeek V4 Flash",
      "provider": "DeepSeek",
      "model_type": "text",
      "capabilities": ["text-to-text"],
      "available": true,
      "pricing": { "currency": "CNY", "type": "token_based" }
    }
  ],
  "summary": { "total": 8, "available": 6 }
}
字段类型说明
data[].idstring模型 ID,用于后续调用
data[].model_typestring模型类型:text / image / video
data[].capabilitiesarray能力标签:text-to-text / text-to-image / image-to-image / text-to-video / image-to-video / vision / chat-compatible
data[].availablebool是否有有效上游 API Key,true 表示可调用
data[].pricing.typestring计费类型:token_based 按 Token / fixed 按次
summary.availableint当前可调用的模型数量

3. 聊天补全 (Chat Completions)

兼容 OpenAI Chat Completions 接口格式,支持流式和非流式响应。

请求示例
POST /api/v1/chat/completions
Authorization: Bearer tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

{
  "model": "deepseek-v4-flash",
  "messages": [
    {"role": "system", "content": "你是一个有用的助手。"},
    {"role": "user", "content": "你好,请介绍一下你自己。"}
  ],
  "temperature": 0.7,
  "max_tokens": 2000,
  "stream": false
}
参数类型必填说明
modelstring模型 ID,从 /api/v1/models 获取
messagesarray消息列表
messages[].rolestringsystem / user / assistant
temperaturefloat采样温度 (0-2),默认 1.0
max_tokensint最大输出 Token 数
streambool是否流式输出,默认 false

多模态(图片理解):支持视觉能力的模型可以接收图片输入,图片以 image_url 类型传入消息内容。

多模态请求
{
  "model": "gemini-3-flash",
  "messages": [
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "这张图片里有什么?"},
        {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
      ]
    }
  ]
}
流式响应:当 stream: true 时返回 SSE 格式,每个数据块以 data: 开头,结束标记为 data: [DONE]

4. 图片生成 (Image Generations)

请求示例
POST /api/v1/images/generations
Authorization: Bearer tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

{
  "model": "gpt-image-2",
  "prompt": "一只可爱的橘猫坐在沙发上,写实风格",
  "n": 1,
  "size": "1024x1024"
}
参数类型必填说明
modelstring图片模型 ID
promptstring图片描述提示词
nint生成数量,默认 1
sizestring图片尺寸,如 1024x1024
响应
{
  "created": 1717000000,
  "data": [
    { "url": "https://api.zhiling.wang/api/serve_image.php?file=abc123.png" }
  ]
}

5. 视频生成 (Video Generations)

请求示例
POST /api/v1/videos/generations
Authorization: Bearer tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

{
  "model": "cogvideo",
  "prompt": "一只蝴蝶在花丛中飞舞",
  "duration": 5
}
响应
{
  "created": 1717000000,
  "data": [
    { "url": "https://api.zhiling.wang/video/abc123.mp4" }
  ]
}

6. 错误码说明

HTTP 状态码错误类型说明
400invalid_request_error请求参数错误,如缺少必填字段
401invalid_request_errorAPI Key 无效或缺失
402insufficient_balance余额不足
403invalid_request_error账户已禁用
404invalid_request_error模型不存在或已禁用
429rate_limit_error请求频率超限(每分钟 60 次)
502upstream_error上游 AI 模型服务异常
错误响应格式
{
  "error": {
    "message": "余额不足,当前余额: ¥0.50,预估费用: ¥1.00",
    "type": "insufficient_balance"
  }
}

7. 计费说明

按 Token 计费:费用(¥) = (输入Token数/1000) × 输入单价 + (输出Token数/1000) × 输出单价。Token 数由上游 AI 模型 API 返回的实际值计算,不自行估算。

项目数量单价费用
输入 Token1000¥0.0008/1K¥0.0008
输出 Token500¥0.0024/1K¥0.0012
合计¥0.0020
部分模型(如图片生成)按次收取固定费用,与生成内容长度无关。系统会在每次调用前做余额预检(预留 10% 费用作为缓冲),调用完成后按实际消耗扣费。各模型具体价格请通过 /api/v1/models 接口获取。