OpenAI 兼容接口

智脑实现了 OpenAI Chat Completions 协议的主要能力。原有代码只需替换两处:base_url 与 api_key。

基础地址与鉴权

  • Base URL:https://zhinao.75zs.com/v1
  • 鉴权头:Authorization: Bearer sk-zn-xxx
  • 请求体:Content-Type: application/json

若你的 SDK 要求填写「完整接口地址」,则为 https://zhinao.75zs.com/v1/chat/completions;若 SDK 会自动拼接 /chat/completions,则只填到 https://zhinao.75zs.com/v1。

对话补全 POST /v1/chat/completions

bash
curl https://zhinao.75zs.com/v1/chat/completions \
  -H "Authorization: Bearer sk-zn-xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-chat",
    "messages": [{ "role": "user", "content": "用一句话介绍你自己" }],
    "stream": false
  }'

常用请求参数

参数类型说明
modelstring必填。智脑模型 slug,例如 deepseek-chat、gpt-4o-mini。
messagesarray必填。消息数组,角色为 system / user / assistant / tool,格式与 OpenAI 一致。
streamboolean为 true 时以 SSE 流式返回增量内容。
max_tokensinteger限制本次输出长度,也会影响预检时的余额判断。
temperature / top_pnumber采样参数,按上游模型能力透传。
tools / tool_choicearray / string函数调用(工具调用),按 OpenAI 格式传入。
stopstring / array停止词,按上游支持情况透传。

响应结构

响应为标准的 Chat Completions 对象:id、model、choices[]、usage。usage.prompt_tokens 与 usage.completion_tokens 是计费依据,平台按实际 tokens 结算并写入用量日志。

流式输出(SSE)

开启 stream: true 后,响应为 text/event-stream, 每行以 data: 开头,最后以 data: [DONE] 结束。

bash
curl -N https://zhinao.75zs.com/v1/chat/completions \
  -H "Authorization: Bearer sk-zn-xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-chat",
    "stream": true,
    "messages": [{ "role": "user", "content": "分三点说明什么是流式输出" }]
  }'

大多数 SDK 已封装流式解析(如 Python 的 stream=True、Node 的 stream: true),一般无需手动处理 SSE。首字延迟与总耗时都会记录在用量日志中。

工具调用(Function Calling)

python
from openai import OpenAI

client = OpenAI(api_key="sk-zn-xxxx", base_url="https://zhinao.75zs.com/v1")

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "查询指定城市的天气",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

resp = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
    tools=tools,
    tool_choice="auto",
)

print(resp.choices[0].message.tool_calls)

返回的 tool_calls 由你的程序执行本地函数后,再以 role: "tool" 的消息回传即可继续对话。是否支持取决于所选上游模型能力。

模型列表 GET /v1/models

bash
curl https://zhinao.75zs.com/v1/models \
  -H "Authorization: Bearer sk-zn-xxxx"

返回 OpenAI 格式的 { object: "list", data: [...] },其中 id 即请求时可用的模型 slug,另附 display_name、context_window 等辅助字段。

向量化 POST /v1/embeddings

bash
curl https://zhinao.75zs.com/v1/embeddings \
  -H "Authorization: Bearer sk-zn-xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-small",
    "input": ["智脑 API 支持 OpenAI 兼容协议"]
  }'

仅向量类模型(例如 text-embedding-3-small)支持该端点,返回结构与 OpenAI 一致。

兼容性说明

  • 协议层只做必要转换,请求与响应字段名与 OpenAI 保持一致,便于复用现有解析代码。
  • 不同上游模型对 response_format、视觉输入、音频等高级字段支持程度不同, 不支持时上游会返回 400,平台原样透出错误信息。
  • 单次请求的输入长度不能超过模型上下文窗口,超出会被上游拒绝并记录为失败请求(不计费)。
  • 请求频率受套餐限制,超限返回 429,详见错误码与排查。