创建聊天补全 (流式)
POST/v1/chat/completions 创建聊天补全(流式)
POST https://www.vortapapi.com/v1/chat/completions
使用聊天消息作为输入,让模型生成回复。启用流式输出时,Vortap 会通过 Server-Sent Events(SSE)逐步返回生成内容,适合需要边生成边展示的场景。
请求头
| 名称 | 必填 | 说明 |
|---|---|---|
Content-Type | 是 | 请求体格式,通常为 application/json |
Accept | 是 | 流式请求建议使用 text/event-stream |
Authorization | 否 | API Key 鉴权,例如:Bearer sk-*** |
请求示例
curl https://www.vortapapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-H "Authorization: Bearer sk-***" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "你好,请介绍一下你自己。"
}
],
"stream": true
}'
请求体参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 要调用的模型名称 |
messages | array | 是 | 对话消息列表 |
stream | boolean | 是 | 设置为 true 时启用流式响应 |
messages 字段
每条消息通常包含以下字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
role | string | 是 | 消息角色,例如 system、user、assistant |
content | string | 是 | 消息内容 |
流式响应说明
当 stream 为 true 时,接口会持续返回多个事件片段。每个片段通常包含当前增量内容,客户端需要按顺序读取并拼接这些内容,直到收到结束标记。
流式响应示例:
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"choices":[{"index":0,"delta":{"content":"你好"},"finish_reason":null}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"choices":[{"index":0,"delta":{"content":",有什么可以帮你?"},"finish_reason":null}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]
非流式响应示例
如果未启用流式输出,接口会在生成完成后一次性返回完整结果:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\nHello there, how may I assist you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}