邀请好友,获取免费 Tokens!了解更多

创建聊天补全 (qwen-mt-turbo)

给定一个提示,该模型将返回一个或多个预测的补全(Completion),并且还可以返回每个位置的替代标记(Tokens)的概率。此接口主要用于与模型进行对话及处理机器翻译等自然语言任务。

官方参考文档: 阿里云百炼 - 机器翻译模型

接口信息

  • 请求协议: HTTP/HTTPS
  • 请求方式: POST
  • 请求路径: https://api.codingplanx.ai/v1/chat/completions

请求头 (Headers)

参数名称必填类型示例值描述
Content-Typestringapplication/json数据格式
Acceptstringapplication/json期望的返回格式
AuthorizationstringBearer {{YOUR_API_KEY}}API 鉴权凭证

请求参数 (Request Body)

请求体格式为 application/json

参数名称必填类型描述
modelstring要使用的模型的 ID。例如:qwen-mt-turbo
messagesarray至今为止对话所包含的消息列表。包含 rolecontent 字段。
? rolestring消息发送者的角色,例如 userassistantsystem
? contentstring消息的内容。
toolsarray模型可以调用的一组工具列表。目前只支持作为工具的函数。用于提供模型可以为其生成 JSON 输入的函数列表。
tool_choiceobject控制模型调用哪个函数(如果有的话)。none 表示不调用,auto 表示模型自行选择。也可以通过 {"type": "function", "function": {"name": "my_function"}} 强制调用。
temperatureinteger采样温度,介于 0 和 2 之间。较高的值(如 0.8)使输出更随机,较低的值(如 0.2)使输出更集中和确定。建议改变此值或 top_p,但不要同时改变两者。
top_pinteger核采样参数。0.1 意味着只考虑构成前 10% 概率质量的标记。建议改变此值或 temperature,但不要同时改变两者。
ninteger为每个输入消息生成多少个聊天补全选择。默认为 1。
streamboolean是否启用流式输出。如果为 true,将以 Server-Sent Events (SSE) 形式发送部分消息增量,并在完成时发送 data: [DONE]。默认为 false
stopstringAPI 将停止进一步生成标记的序列(最多 4 个)。
max_tokensinteger在聊天补全中生成的最大标记数。输入和生成标记的总长度受模型上下文长度限制。
presence_penaltynumber-2.0 到 2.0 之间的数字。正值会根据标记目前是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。
frequency_penaltynumber-2.0 到 2.0 之间的数字。正值根据文本目前的存在频率惩罚新标记,降低模型重复相同行的可能性。
logit_biasobject/null修改指定标记出现在补全中的可能性。接受一个将标记 ID 映射到偏差值(-100 到 100)的 JSON 对象。
userstring代表您最终用户的唯一标识符,可以帮助监控和检测滥用行为。
response_formatobject指定模型必须输出的格式的对象。将 {"type": "json_object"} 启用 JSON 模式。注意:使用时必须在消息中指示模型生成 JSON。
seeninteger测试阶段功能。用于确定性采样的种子(seed)。使用相同的种子和参数重复请求应返回相同结果。

请求示例 (机器翻译场景)

{
  "model": "qwen-mt-turbo",
  "messages": [
    {
      "role": "user",
      "content": "看完这个视频我没有笑"
    }
  ],
  "translation_options": {
    "source_lang": "auto",
    "target_lang": "English"
  }
}

(注:translation_optionsqwen-mt-turbo 翻译模型特有的扩展参数)

响应参数 (Response Body)

返回格式为 application/json

参数名称类型描述
idstring聊天补全的唯一标识符。
objectstring对象类型,通常为 chat.completion
createdinteger创建时间的时间戳 (Unix 秒)。
choicesarray补全选择的列表。
? indexinteger该选项在列表中的索引。
? messageobject模型生成的消息对象。包含 rolecontent
? finish_reasonstring模型停止生成的原因(例如 stop 表示正常结束,length 表示达到最大 token 限制)。
usageobject此次请求的 Token 消耗统计。
? prompt_tokensinteger提示词消耗的 token 数量。
? completion_tokensinteger生成内容消耗的 token 数量。
? total_tokensinteger总计消耗的 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. temperaturetop_p 应该如何配置?

这两个参数都用于控制模型输出的随机性。官方建议只修改其中一个,而保持另一个为默认值。如果您希望翻译或问答的结果更加严谨、固定,建议将 temperature 调低(如 0.1 - 0.2);如果您希望生成更具创造性的内容,可以将其调高(如 0.8)。

5. 请求示例中的 translation_options 是必须的吗?

这是 qwen-mt-turbo 等专门的翻译模型支持的扩展配置,用于明确指定源语言(source_lang)和目标语言(target_lang)。虽然可以通过 messages 中的 content 用自然语言提示模型进行翻译,但使用 translation_options 会让翻译指令更明确,效果更稳定。如果用于非翻译的基础对话,可以不传此参数。