创建聊天补全 (qwen-mt-turbo)
给定一个提示,该模型将返回一个或多个预测的补全(Completion),并且还可以返回每个位置的替代标记(Tokens)的概率。此接口主要用于与模型进行对话及处理机器翻译等自然语言任务。
官方参考文档: 阿里云百炼 - 机器翻译模型
接口信息
- 请求协议: HTTP/HTTPS
- 请求方式:
POST - 请求路径:
https://api.codingplanx.ai/v1/chat/completions
请求头 (Headers)
| 参数名称 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| Content-Type | 是 | string | application/json | 数据格式 |
| Accept | 是 | string | application/json | 期望的返回格式 |
| Authorization | 否 | string | Bearer {{YOUR_API_KEY}} | API 鉴权凭证 |
请求参数 (Request Body)
请求体格式为 application/json。
| 参数名称 | 必填 | 类型 | 描述 |
|---|---|---|---|
| model | 是 | string | 要使用的模型的 ID。例如:qwen-mt-turbo。 |
| messages | 是 | array | 至今为止对话所包含的消息列表。包含 role 和 content 字段。 |
| ? role | 否 | string | 消息发送者的角色,例如 user、assistant 或 system。 |
| ? content | 否 | string | 消息的内容。 |
| tools | 是 | array | 模型可以调用的一组工具列表。目前只支持作为工具的函数。用于提供模型可以为其生成 JSON 输入的函数列表。 |
| tool_choice | 是 | object | 控制模型调用哪个函数(如果有的话)。none 表示不调用,auto 表示模型自行选择。也可以通过 {"type": "function", "function": {"name": "my_function"}} 强制调用。 |
| temperature | 否 | integer | 采样温度,介于 0 和 2 之间。较高的值(如 0.8)使输出更随机,较低的值(如 0.2)使输出更集中和确定。建议改变此值或 top_p,但不要同时改变两者。 |
| top_p | 否 | integer | 核采样参数。0.1 意味着只考虑构成前 10% 概率质量的标记。建议改变此值或 temperature,但不要同时改变两者。 |
| n | 否 | integer | 为每个输入消息生成多少个聊天补全选择。默认为 1。 |
| stream | 否 | boolean | 是否启用流式输出。如果为 true,将以 Server-Sent Events (SSE) 形式发送部分消息增量,并在完成时发送 data: [DONE]。默认为 false。 |
| stop | 否 | string | API 将停止进一步生成标记的序列(最多 4 个)。 |
| max_tokens | 否 | integer | 在聊天补全中生成的最大标记数。输入和生成标记的总长度受模型上下文长度限制。 |
| presence_penalty | 否 | number | -2.0 到 2.0 之间的数字。正值会根据标记目前是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。 |
| frequency_penalty | 否 | number | -2.0 到 2.0 之间的数字。正值根据文本目前的存在频率惩罚新标记,降低模型重复相同行的可能性。 |
| logit_bias | 否 | object/null | 修改指定标记出现在补全中的可能性。接受一个将标记 ID 映射到偏差值(-100 到 100)的 JSON 对象。 |
| user | 否 | string | 代表您最终用户的唯一标识符,可以帮助监控和检测滥用行为。 |
| response_format | 否 | object | 指定模型必须输出的格式的对象。将 {"type": "json_object"} 启用 JSON 模式。注意:使用时必须在消息中指示模型生成 JSON。 |
| seen | 否 | integer | 测试阶段功能。用于确定性采样的种子(seed)。使用相同的种子和参数重复请求应返回相同结果。 |
请求示例 (机器翻译场景)
{
"model": "qwen-mt-turbo",
"messages": [
{
"role": "user",
"content": "看完这个视频我没有笑"
}
],
"translation_options": {
"source_lang": "auto",
"target_lang": "English"
}
}
(注:translation_options 为 qwen-mt-turbo 翻译模型特有的扩展参数)
响应参数 (Response Body)
返回格式为 application/json。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| id | string | 聊天补全的唯一标识符。 |
| object | string | 对象类型,通常为 chat.completion。 |
| created | integer | 创建时间的时间戳 (Unix 秒)。 |
| choices | array | 补全选择的列表。 |
| ? index | integer | 该选项在列表中的索引。 |
| ? message | object | 模型生成的消息对象。包含 role 和 content。 |
| ? finish_reason | string | 模型停止生成的原因(例如 stop 表示正常结束,length 表示达到最大 token 限制)。 |
| usage | object | 此次请求的 Token 消耗统计。 |
| ? prompt_tokens | integer | 提示词消耗的 token 数量。 |
| ? completion_tokens | integer | 生成内容消耗的 token 数量。 |
| ? total_tokens | integer | 总计消耗的 token 数量。 |
响应示例 (200 OK)
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "\r
\r
Hello there, how may I assist you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
常见问题 (FAQs)
1. qwen-mt-turbo 模型主要用于什么场景?
qwen-mt-turbo 是针对机器翻译(Machine Translation)深度优化的模型。虽然它使用的是标准的 Chat Completions 接口,但通过传入需要翻译的文本以及配置源语言和目标语言,它可以提供极高质量的翻译结果。
2. 如何实现打字机效果(流式输出)?
在请求体中将 stream 参数设置为 true。此时接口将不会一次性返回完整的 JSON 响应,而是通过 Server-Sent Events (SSE) 协议,持续推送数据块(data chunks)。当内容生成完毕时,会返回 data: [DONE] 标识流的结束。
3. 为什么我收到了 401 Unauthorized 错误?
请检查请求头中的 Authorization 字段。确保其格式为 Bearer <你的_API_KEY>(注意 Bearer 和 API Key 之间有一个空格),且该 API Key 处于有效状态并拥有调用该模型的权限。
4. temperature 和 top_p 应该如何配置?
这两个参数都用于控制模型输出的随机性。官方建议只修改其中一个,而保持另一个为默认值。如果您希望翻译或问答的结果更加严谨、固定,建议将 temperature 调低(如 0.1 - 0.2);如果您希望生成更具创造性的内容,可以将其调高(如 0.8)。
5. 请求示例中的 translation_options 是必须的吗?
这是 qwen-mt-turbo 等专门的翻译模型支持的扩展配置,用于明确指定源语言(source_lang)和目标语言(target_lang)。虽然可以通过 messages 中的 content 用自然语言提示模型进行翻译,但使用 translation_options 会让翻译指令更明确,效果更稳定。如果用于非翻译的基础对话,可以不传此参数。