跳到主要内容
文档导航
本页目录

调用 API

程序通过 console 的 /v1 接口调用模型,接口与 OpenAI 兼容,凭 API 密钥访问。

创建 API 密钥​

打开「路由 → API 密钥」,点 新建 API 密钥:

字段说明
名称、描述便于识别用途,例如调用方系统的名字
有效期7 天 / 1 个月 / 6 个月 / 永不过期
可用模型全部模型,或只允许指定的模型

密钥只在创建时显示一次。 关闭对话框后无法再次查看,请立即复制保存。遗失后只能删除重建。

删除密钥后,使用它的程序会立即无法访问。

接口地址​

  • Base URL:http://<console 地址>/v1(创建密钥后的对话框里会显示当前地址)
  • 请求头:Authorization: Bearer <API 密钥>

示例​

先设置环境变量:

export MODELSPHERE_API_KEY=<你的 API 密钥>
export MODELSPHERE_BASE_URL=http://<console 地址>/v1

列出可用模型:

curl $MODELSPHERE_BASE_URL/models \
-H "Authorization: Bearer $MODELSPHERE_API_KEY"

对话补全:

curl $MODELSPHERE_BASE_URL/chat/completions \
-H "Authorization: Bearer $MODELSPHERE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "<模型名>", "messages": [{"role": "user", "content": "你好"}], "max_tokens": 64}'

Python(OpenAI SDK):

import os
from openai import OpenAI

client = OpenAI(base_url=os.environ["MODELSPHERE_BASE_URL"], api_key=os.environ["MODELSPHERE_API_KEY"])
stream = client.chat.completions.create(
model="<模型名>",
messages=[{"role": "user", "content": "你好"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")

Node.js(OpenAI SDK):

import OpenAI from "openai";

const client = new OpenAI({ baseURL: process.env.MODELSPHERE_BASE_URL, apiKey: process.env.MODELSPHERE_API_KEY });
const res = await client.chat.completions.create({
model: "<模型名>",
messages: [{ role: "user", content: "你好" }],
});
console.log(res.choices[0].message.content);

模型名就是 /v1/models 返回的 id,也就是 Playground 模型下拉框里「·」后面的部分。在 Playground 里调好参数后,用 查看代码 可以直接得到对应的请求。

多轮对话保持缓存​

同一段对话的多次请求带上相同的 X-Session-Id 请求头,网关会把它们路由到同一个推理实例,前缀缓存保持命中,首字延迟更低。

常见错误​

状态码原因
401密钥缺失、错误、已过期或已删除
403密钥没有被授权访问这个模型
404模型名不存在,先用 /v1/models 确认