AI开发平台MODELARTS-使用ModelArts Studio(MaaS)创建多轮对话

时间:2025-05-21 09:29:47

使用ModelArts Studio(MaaS)创建多轮对话

本文介绍如何使用MaaS Chat API进行多轮对话。

MaaS服务端不会记录用户请求的上下文,用户每次发起请求时,需要将之前所有对话历史拼接好后,传递给Chat API。下文以一个Python代码为例进行说明,请您根据实际情况进行修改。

以下为Python的上下文拼接和请求示例代码:

from openai import OpenAI
client = OpenAI(api_key="MaaS API Key", base_url="https://xxxxxxxxxxxxxxxx")
# 首轮对话
messages = [{"role": "user", "content": "9.11和9.8哪个大?"}]
response = client.chat.completions.create(
    model="DeepSeek-R1",
    messages=messages
)
messages.append(response.choices[0].message)
print(f"Messages Round 1: {messages}")
# 第二轮对话
messages.append({"role": "user", "content": "他们相加等于多少"})
response = client.chat.completions.create(
    model="DeepSeek-R1",
    messages=messages
)
messages.append(response.choices[0].message)
print(f"Messages Round 2: {messages}")

首轮对话时,请求体中的messages为:

[
    {"role": "user", "content": "9.11和9.8哪个大?"}
]

在第二轮对话时,请求体中的messages构建步骤如下:

  1. 将首轮对话中模型(role的值为"assistant")的输出内容添加到messages结尾。
  2. 将新的用户问题添加到messages结尾。
  3. 最终传递给Chat API的请求体中的messages为:
    [
        {"role": "user", "content": "9.11和9.8哪个大?"},
        {"role": "assistant", "content": "9.8更大"},
        {"role": "user", "content": "他们相加等于多少"}
    ]
support.huaweicloud.com/usermanual-maas-modelarts/maas-modelarts-0089.html
提示

您即将访问非华为云网站,请注意账号财产安全