Yomi APIYomi API帮助文档 返回控制台

English

Yomi API / 帮助文档 / 对话补全

API 参考

对话补全

Chat Completions 是平台最常用的接口,用于多轮对话与文本生成,与 OpenAI 接口格式完全兼容,可直接使用官方 SDK 调用。

接口地址

POST https://api.yomiapi.com/v1/chat/completions

请求头:

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

请求参数

参数类型必填说明
modelstring是模型 id,如 deepseek-v4-flash、claude-sonnet-5
messagesarray是消息数组,包含对话历史
temperaturenumber否采样温度,0 到 2 之间,默认 1
max_tokensnumber否最大生成 token 数
streamboolean否是否流式输出,默认 false
top_pnumber否核采样参数,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 概述与认证」。