API 参考
对话补全
Chat Completions 是平台最常用的接口,用于多轮对话与文本生成,与 OpenAI 接口格式完全兼容,可直接使用官方 SDK 调用。
接口地址
POST https://api.yomiapi.com/v1/chat/completions
请求头:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型 id,如 deepseek-v4-flash、claude-sonnet-5 |
messages | array | 是 | 消息数组,包含对话历史 |
temperature | number | 否 | 采样温度,0 到 2 之间,默认 1 |
max_tokens | number | 否 | 最大生成 token 数 |
stream | boolean | 否 | 是否流式输出,默认 false |
top_p | number | 否 | 核采样参数,0 到 1 之间 |
接口同时兼容 OpenAI Chat Completions 的其余标准参数(如 stop、frequency_penalty),按需传入即可。
messages 格式
每条消息包含 role 与 content。system 定义 AI 的角色与行为,user 是用户输入,assistant 是模型的历史回复:
[
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好!有什么可以帮助你的吗?"},
{"role": "user", "content": "请介绍一下你自己"}
]
代码示例
Python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.yomiapi.com/v1"
)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "你好,请介绍一下你自己"}
],
temperature=0.7,
max_tokens=1000
)
print(response.choices[0].message.content)
Node.js
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.yomiapi.com/v1'
});
async function main() {
const response = await client.chat.completions.create({
model: 'deepseek-v4-flash',
messages: [
{ role: 'system', content: '你是一个有帮助的助手' },
{ role: 'user', content: '你好,请介绍一下你自己' }
],
temperature: 0.7,
max_tokens: 1000
});
console.log(response.choices[0].message.content);
}
main();
cURL
curl https://api.yomiapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "deepseek-v4-flash",
"messages": [
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "你好,请介绍一下你自己"}
],
"temperature": 0.7,
"max_tokens": 1000
}'
响应格式
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1234567890,
"model": "deepseek-v4-flash",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!我是一个 AI 助手..."
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 100,
"total_tokens": 125
}
}
回复内容在 choices[0].message.content;finish_reason 为 stop 表示正常结束,为 length 表示达到 max_tokens 上限被截断。
usage 中的 token 数是计费依据:消费按输入 token 与输出 token 分别计算,不同模型价格不同。建议在业务侧记录 usage,便于核对用量。流式输出
设置 stream: true 后,响应以 Server-Sent Events(SSE)格式逐段返回:
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","choices":[{"delta":{"content":"Hello"}}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","choices":[{"delta":{"content":" world"}}]}
data: [DONE]
使用 SDK 时按增量读取即可:
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "写一首诗"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
多模态输入
支持多模态的模型(如 claude-sonnet-5、gpt-5.6-sol)可在 content 中混合传入文本与图片等内容部件,接口仍是本篇的 /v1/chat/completions。具体写法见「图像理解(识图)」与「视频理解」两篇。
使用建议
- 系统提示词: 用
system角色固定 AI 的身份、语气与输出格式,比在每轮user消息里重复要求更稳定。 - 上下文管理: 多轮对话需要把历史消息一并传入;对话过长时适时裁剪或摘要旧内容,以节省 token。
- 流式输出: 面向终端用户的长文本生成建议开启
stream,首字延迟明显更低。 - 错误处理: 错误码含义与重试策略见「API 概述与认证」。
