Biaoli · 开发者文档

API 参考

完全兼容 OpenAI 协议,只需替换 base_url 即可使用熟悉的 SDK 调用全球顶尖模型。

全栈
模型矩阵
40ms
国内直连延迟
99.9%
可用性 SLA
50%+
相同模型省钱

快速开始

Biaoli 的接口路径、参数结构与 OpenAI 一致。如果你已有基于 OpenAI SDK 的代码,迁移只需修改一行配置。

基础信息

Base URL:
https://ai.biaoli.cn/v1
认证方式:
Bearer Token
请求格式:
application/json
协议兼容:
OpenAI Chat Completions v1

三步接入

  1. 在控制台注册并获取 API Key
  2. 安装官方 OpenAI SDK(或任意兼容客户端)
  3. 修改 base_url 为 https://ai.biaoli.cn/v1

第一个请求

curl
curl https://ai.biaoli.cn/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "input": "Hello"
  }'

身份认证

所有 API 请求需在请求头中携带 API Key,使用标准的 Bearer Token 方式:

HTTP Header
Authorization: Bearer YOUR_API_KEY

安全提醒

  • 请将 API Key 视同密码,切勿在浏览器、移动端或公开仓库中暴露
  • 生产环境应在服务端中转 API 调用,前端不直接访问
  • 建议为不同业务创建独立 Key,便于权限和额度管理

创建响应

与 OpenAI /v1/responses 接口完全兼容,支持纯文本输入、消息数组、多模态、函数调用、内置工具(web_search / file_search / code_interpreter)和流式响应。

POSThttps://ai.biaoli.cn/v1/responses

请求参数

代码示例

curl https://ai.biaoli.cn/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "instructions": "You are a concise assistant.",
    "input": "Explain what an LLM is in 50 words.",
    "temperature": 0.7,
    "max_output_tokens": 1024
  }'

响应示例

JSON
{
  "id": "resp_abc123",
  "object": "response",
  "created_at": 1747641234,
  "status": "completed",
  "model": "MODEL_ID",
  "output": [
    {
      "id": "msg_abc",
      "type": "message",
      "role": "assistant",
      "status": "completed",
      "content": [
        {
          "type": "output_text",
          "text": "An LLM is a large neural network trained on massive text data...",
          "annotations": []
        }
      ]
    }
  ],
  "output_text": "An LLM is a large neural network trained on massive text data...",
  "usage": {
    "input_tokens": 42,
    "output_tokens": 38,
    "total_tokens": 80
  }
}

流式响应

在请求体中加入 "stream": true,接口将以 SSE(Server-Sent Events)按 OpenAI 类型化事件依次返回,包括 response.created、response.output_text.delta、response.completed 等。

代码示例

from openai import OpenAI

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

stream = client.responses.create(
    model="MODEL_ID",
    input="Tell a short joke",
    stream=True,
)

for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)
    elif event.type == "response.completed":
        print()  # newline at end

事件流片段

SSE
event: response.created
data: {"type":"response.created","sequence_number":0,"response":{"id":"resp_...","object":"response","status":"in_progress","model":"MODEL_ID"}}

event: response.in_progress
data: {"type":"response.in_progress","sequence_number":1,"response":{"id":"resp_...","status":"in_progress"}}

event: response.output_item.added
data: {"type":"response.output_item.added","sequence_number":2,"output_index":0,"item":{"id":"msg_...","type":"message","role":"assistant","status":"in_progress","content":[]}}

event: response.content_part.added
data: {"type":"response.content_part.added","sequence_number":3,"item_id":"msg_...","output_index":0,"content_index":0,"part":{"type":"output_text","text":"","annotations":[]}}

event: response.output_text.delta
data: {"type":"response.output_text.delta","sequence_number":4,"item_id":"msg_...","output_index":0,"content_index":0,"delta":"Why"}

event: response.output_text.delta
data: {"type":"response.output_text.delta","sequence_number":5,"item_id":"msg_...","output_index":0,"content_index":0,"delta":" do"}

... (more output_text.delta events)

event: response.output_text.done
data: {"type":"response.output_text.done","sequence_number":N,"item_id":"msg_...","output_index":0,"content_index":0,"text":"Why do programmers..."}

event: response.content_part.done
data: {"type":"response.content_part.done","sequence_number":N+1,"item_id":"msg_...","output_index":0,"content_index":0,"part":{"type":"output_text","text":"Why do programmers...","annotations":[]}}

event: response.output_item.done
data: {"type":"response.output_item.done","sequence_number":N+2,"output_index":0,"item":{"id":"msg_...","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"Why do programmers..."}]}}

event: response.completed
data: {"type":"response.completed","sequence_number":N+3,"response":{"id":"resp_...","status":"completed","output":[...],"output_text":"Why do programmers...","usage":{"input_tokens":12,"output_tokens":18,"total_tokens":30}}}

data: [DONE]

支持的模型

Biaoli 覆盖各厂商的对话、推理、多模态、视频与语音模型。因上游型号更新频繁,可调用的型号 ID 与实时价格请通过 GET https://ai.biaoli.cn/v1/models 接口获取,或在控制台查看完整列表。

OpenAI

  • 对话补全
  • 深度推理
  • 多模态
  • 视频生成
  • 语音转写

Anthropic

  • 对话补全
  • 长上下文
  • 代码与 Agent

Google

  • 对话补全
  • 多模态
  • 高性价比

DeepSeek & 其他

  • 对话补全
  • 深度推理
  • 高性价比

查询全部模型

curl
curl https://ai.biaoli.cn/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

用量查询

查询当前 API Key 对应账户的额度、用量与有效期。

GEThttps://ai.biaoli.cn/v1/key

请求示例

curl
curl https://ai.biaoli.cn/v1/key \
  -H "Authorization: Bearer YOUR_API_KEY"

响应示例

JSON
{
  "id": "key_8a3f...",
  "label": "production",
  "limit": 500000,
  "usage": 12850,
  "remaining": 487150,
  "currency": "CNY",
  "expires_at": "2026-12-31T23:59:59Z",
  "is_active": true,
  "created_at": "2026-01-01T00:00:00Z"
}

错误码与速率限制

接口失败时返回与 OpenAI 一致的错误结构,便于现有客户端代码直接复用错误处理逻辑。

错误响应格式

JSON
{
  "error": {
    "message": "Invalid API key provided.",
    "type": "invalid_request_error",
    "code": "invalid_api_key",
    "param": null
  }
}

HTTP 状态码

状态码含义处理建议
400请求参数错误检查 JSON 结构、必填字段与字段类型
401认证失败确认 API Key 正确,未被撤销或过期
403禁止访问账户额度不足或权限受限,请前往控制台查看
404资源不存在检查模型 ID 或接口路径是否拼写正确
413请求体过大减少 messages 长度或拆分多次请求
429请求频率超限按 Retry-After 退避后重试
500服务端错误稍后重试,持续异常请联系支持
503上游模型暂不可用切换备用模型或稍后重试

速率限制

平台按 API Key 维度限速,触发限流时响应头返回额外字段,便于客户端做退避:

响应头说明
X-RateLimit-Limit-Requests当前 Key 每分钟允许请求数
X-RateLimit-Remaining-Requests本分钟内剩余可用请求数
X-RateLimit-Reset-Requests请求数额度重置剩余秒数
Retry-After触发限流时建议等待秒数

使用建议

  • 对 5xx 错误启用指数退避重试,建议初始间隔 1s,最多重试 3 次
  • 遇到 429 时优先读取 Retry-After 响应头作为等待时长
  • 合理设置请求超时(建议非流式 60s、流式 300s)
  • 生产环境通过日志追踪 id 字段以便排查问题