POST/v1/chat/completions

Chat Completions

为给定对话创建模型响应。接收消息列表并返回模型的下一条回复。可用于聊天界面、AI 助手、内容生成和各类文本工作流。

本页说明 OpenAI 兼容的 Chat Completions 端点。请使用 openai Python 包或任意 OpenAI 兼容 SDK,并设置 OPENAI_BASE_URL=https://api.linkharbor.ai/v1。Anthropic Messages API 请使用 /anthropic/v1/messages。

curl https://api.linkharbor.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "your-model-name",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"}
],
"temperature": 0.7
}'

请求体

modelstring必填

要使用的模型 ID。可通过 GET /v1/models 获取可用模型,并将 your-model-name 替换为实时模型目录中的真实 ID。

messagesarray必填

组成对话的消息列表。模型会根据这段历史生成下一条回复。

messages[].rolestring必填

消息作者角色。可选值:system(设置助手行为)、user(用户输入)或 assistant(先前模型回复)。

messages[].contentstring必填

消息的文本内容。

streamboolean可选默认:false

如果为 true,响应会以 Server-Sent Events (SSE) 流式返回,而不是单个 JSON 对象。每个 chunk 都包含增量内容 delta,流以 data: [DONE] 结束。

temperaturenumber可选默认:1 · 范围:0–2

采样温度。较高值(如 0.9)会产生更有创意、更多样的输出;较低值(如 0.2)会让响应更聚焦、更确定。建议只调整 temperature 或 top_p 其中之一。

max_tokensinteger可选

生成的最大 token 数。输入 token 与该值之和不能超过模型上下文窗口。不传则使用模型默认最大值。

请求体
{
"model": "your-model-name",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain async/await in Python."}
],
"temperature": 0.7,
"max_tokens": 512
}

响应

返回 chat completion 对象。成功时 HTTP 状态码为 200;出错时返回包含错误类型和消息的 JSON 对象。

idstring

本次 completion 的唯一标识符,以 chatcmpl- 开头。

modelstring

生成本次 completion 的模型。

choicesarray

生成结果数组。每项都包含带 role 和 content 的 message,以及 finish_reason(例如 stop 表示自然结束,length 表示达到 max_tokens)。

usageobject

本次请求的 token 用量统计。

usage.prompt_tokensinteger

输入消息中的 token 数。

usage.completion_tokensinteger

生成响应中的 token 数。

usage.total_tokensinteger

总 token 数(prompt + completion)。

响应对象
{
"id": "chatcmpl-A9f3k2mX8y",
"object": "chat.completion",
"created": 1715284800,
"model": "your-model-name",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "async/await lets you write asynchronous code..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 94,
"total_tokens": 122
}
}