Appearance
Chat Completions
Chat Completions 使用 messages 数组组织对话,适合只支持 OpenAI Chat Completions 格式的客户端和现有项目。
模型占位符
把下面的 YOUR_MODEL_ID 替换为 DuckMans 后台中当前 Key 和分组实际可用的模型 ID。建议先调用 GET /models,不要照搬其他用户或其他分组的模型名。
示意图:客户端发送必要历史,正文代码展示可复制的完整请求;可复制的地址、命令和代码仍以正文为准。
最小请求
- 方法:
POST - Endpoint 路径:
/chat/completions - 完整请求地址:
https://duckmans.com/v1/chat/completions
bash
old_stty=$(stty -g)
trap 'stty "$old_stty"' EXIT INT TERM
printf "DuckMans API Key: "
stty -echo
IFS= read -r DUCKMANS_API_KEY
stty "$old_stty"
trap - EXIT INT TERM
printf '\n'
export DUCKMANS_API_KEY
curl -sS https://duckmans.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DUCKMANS_API_KEY" \
-d '{
"model": "YOUR_MODEL_ID",
"messages": [
{"role": "user", "content": "只回复 ok"}
],
"stream": false
}'这里使用的是完整请求地址。SDK 或客户端的 Base URL 应填写 https://duckmans.com/v1,而不是完整请求地址。
示意图:角色决定内容用途,多轮请求只携带必要历史;可复制的地址、命令和代码仍以正文为准。
messages 基本结构
messages 按对话顺序排列。最小测试只发送一条 user 消息即可:
json
[
{"role": "user", "content": "你好"}
]需要给模型补充任务规则时,可以在客户端和模型支持的前提下加入 system 消息。不要在未验证前一次性增加大量参数;先确保最小请求成功,再逐项加入温度、工具或输出限制等设置。
读取文本结果
非流式兼容响应的助手文本通常位于:
text
choices[0].message.content实际响应可能还包含用量、完成原因等字段。应用应先检查 HTTP 状态码和 choices 是否存在,再读取内容,不要假定错误响应也有相同结构。
多轮对话
Chat Completions 通常不会替你保存完整会话。继续对话时,客户端需要把仍然必要的历史消息再次放入 messages。历史过长会增加输入量和延迟,可定期总结旧内容、删除无关日志,或开启新会话。
与 Responses 的选择
- 客户端明确要求 Chat Completions:使用本页面格式。
- 客户端明确要求 Responses:先确认当前 Key 分组支持,再使用 Responses API。
- 客户端两者都支持:先选择与你的分组及模型实测匹配的协议,不要假设 Responses 对所有路线默认可用。
流式返回见流式输出。
