开发者社区 > 大数据与机器学习 > 人工智能平台PAI > 正文

通义千问 HTTP请求多轮对话的方式是什么格式的,文档里的没法实现,需要帮助,谢谢

{"model":"qwen-max","input":{"messages":[{"role": "system","content":"You are a helpful assistant."},{"role":"user","content":"入参"}]},"parameters":{}}
这样能正确返回。

{"model":"qwen-max","input":{"messages":[{"role": "system","content":"You are a helpful assistant."},{"role":"user","content":"入参"},{"role": "system","content":"首次返回的文本"},{"role":"user","content":"继续"}]},"parameters":{}}
这样写提示错误信息,message的大概意思是body格式错误。

{"model":"qwen-max","input":{"messages":[{"role":"user","content":"继续"}]},"parameters":{}}
这样写,会回复 有什么问题需要帮忙什么的...。

展开
收起
heepoi6ohmcxg 2024-03-07 08:25:59 892 0
8 条回答
写回答
取消 提交回答
  • 技术浪潮涌向前,学习脚步永绵绵。

    通义千问支持通过HTTP接口进行多轮对话的交互,通常遵循RESTful API的设计原则。进行多轮对话时,关键在于维护对话的状态,即通过某种方式保留上下文信息,使得每次请求都能基于之前的对话历史给出连贯的回答。具体的请求格式和实现细节可能会根据所使用的API版本和个人账户的配置有所不同,但大致框架如下:

    基础请求结构

    多轮对话的HTTP请求通常包含以下几个部分:

    1. HTTP Method: 通常使用POST方法来发送请求,因为需要提交数据(如对话内容)到服务器。

    2. Endpoint URL: 你需要向特定的API endpoint发送请求,这个endpoint会由阿里云提供,并且在你的API文档或控制台中可以找到。例如,它可能类似于 https://api.aliyuncs.com/nlp/api/v1/xxx

    3. Headers: 请求头中通常需要包含认证信息,如Authorization字段,用于携带你的AccessKey ID和Signature或Token,确保请求的合法性。此外,可能还需要指定Content-Type,通常是application/json,表明你发送的是JSON格式的数据。

    4. Request Body: 请求体中包含对话的具体信息,对于多轮对话,重要的是要在请求体中传递之前的对话历史,以维持对话上下文。一个典型的请求体可能如下所示:

    {
      "model": "通义千问", // 模型名称,根据实际情况填写
      "messages": [
        {"role": "system", "content": "你是通义千问,一个AI助手。"},
        {"role": "user", "content": "你好"},
        {"role": "assistant", "content": "你好!有什么可以帮助你的吗?"},
        {"role": "user", "content": "明天北京天气怎么样?"},
        {"role": "assistant", "content": "明天北京天气晴朗,气温较低,请注意保暖。"},
        {"role": "user", "content": "下周有雨吗?"} // 最新的用户询问
      ]
    }
    

    在这个例子中,messages数组包含了对话的完整历史,每个消息都有一个role(表示发送者是用户还是系统/助手)和content(消息内容)。

    维护对话状态

    为了实现多轮对话,你需要在每次请求时,将前一次请求的回复和用户的最新输入一起作为新请求的一部分。这意味着你需要在客户端(调用API的应用)维护一个消息历史列表,并在每次收到回复后,将该回复加入到历史中,以备下次请求时使用。

    如果你在实现过程中遇到困难,可能是因为缺少了必要的认证信息、错误的请求格式、或者是对话历史没有正确维护。请检查你的API密钥、请求头、以及请求体结构是否符合阿里云的API要求,同时也建议查阅最新的官方文档或联系阿里云技术支持获取帮助。

    2024-06-23 10:46:14
    赞同 3 展开评论 打赏
  • 乘风破浪

    通义千问的 HTTP 请求多轮对话是通过 JSON 格式的数据传输来实现的。根据你提供的例子,可以按照以下方式构建 JSON 数据:

    {
    "model": "qwen-max",
    "input": {
    "messages": [
    {
    "role": "system",
    "content": "You are a helpful assistant."
    },
    {
    "role": "user",
    "content": "入参"
    }
    ]
    },
    "parameters": {}
    }

    需要注意的是,在上述示例中,“model”字段指定了所使用的模型名称,“input”字段包含了多轮对话的消息列表,每个消息都有一个“role”字段表示角色(系统或用户),以及一个“content”字段表示消息内容。最后,“parameters”字段可以包含其他参数,根据你的需求进行设置。

    请确保将以上 JSON 数据作为 HTTP 请求的主体发送给通义千问的 API 接口,并设置适当的请求头和 URL。具体的请求方式和 URL 取决于你所使用的编程语言和库,可以参考相关文档或示例代码来执行 HTTP 请求。

    2024-06-18 09:21:02
    赞同 17 展开评论 打赏
  • 将军百战死,壮士十年归!

    通义千问的 HTTP 请求多轮对话是通过 JSON 格式的数据传输来实现的。根据你提供的例子,可以按照以下方式构建 JSON 数据:

    {
    "model": "qwen-max",
    "input": {
    "messages": [
    {
    "role": "system",
    "content": "You are a helpful assistant."
    },
    {
    "role": "user",
    "content": "入参"
    }
    ]
    },
    "parameters": {}
    }

    需要注意的是,在上述示例中,“model”字段指定了所使用的模型名称,“input”字段包含了多轮对话的消息列表,每个消息都有一个“role”字段表示角色(系统或用户),以及一个“content”字段表示消息内容。最后,“parameters”字段可以包含其他参数,根据你的需求进行设置。

    请确保将以上 JSON 数据作为 HTTP 请求的主体发送给通义千问的 API 接口,并设置适当的请求头和 URL。具体的请求方式和 URL 取决于你所使用的编程语言和库,可以参考相关文档或示例代码来执行 HTTP 请求。

    2024-03-11 15:29:24
    赞同 15 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据您提供的信息,您正在使用一个名为"qwen-max"的模型进行文本生成。根据您的描述,当您尝试将多个消息作为输入时,出现了错误提示,指出body格式错误。

    要解决这个问题,您可以尝试以下方法:

    1. 检查输入消息的格式是否正确。确保每个消息都包含"role"和"content"字段,并且它们都是有效的JSON对象。
    2. 确保输入消息的顺序正确。通常,系统角色的消息应该放在用户角色的消息之前。
    3. 检查是否有其他参数或配置需要设置。有时候,特定的模型可能需要额外的参数或配置才能正常工作。
    4. 查看模型的文档或示例代码,以了解正确的输入格式和要求。不同的模型可能有不同的输入要求,因此确保您遵循了正确的规范。
    2024-03-07 13:26:51
    赞同 15 展开评论 打赏
  • 阿里云大降价~

    通义千问的HTTP请求多轮对话的方式是使用JSON格式的数据进行传输。根据您提供的示例,您可以按照以下方式构建JSON数据:

    {
      "model": "qwen-max",
      "input": {
        "messages": [
          {
            "role": "system",
            "content": "You are a helpful assistant."
          },
          {
            "role": "user",
            "content": "入参"
          }
        ]
      },
      "parameters": {}
    }
    

    请注意,上述示例中的"model"字段指定了使用的模型名称,"input"字段包含了多轮对话的消息列表,其中每个消息都有一个"role"字段表示角色(系统或用户),以及一个"content"字段表示消息内容。最后,"parameters"字段可以包含其他参数,根据您的需求进行设置。

    确保将上述JSON数据作为HTTP请求的正文发送给通义千问的API接口,并设置适当的请求头和URL。具体的请求方式和URL取决于您使用的编程语言和库,可以参考相关文档或示例代码来执行HTTP请求。

    2024-03-07 10:58:27
    赞同 14 展开评论 打赏
  • 通义千问(Alibaba Cloud's Multi-turn Dialogue Service)的HTTP请求多轮对话方式通常涉及发送一系列的请求和接收响应。然而,具体的格式和细节可能会根据通义千问的API文档和版本有所不同。由于API和文档可能会更新,建议直接参考官方提供的最新文档。

    如果你发现文档中的说明无法实现,以下是一些建议的步骤来帮助你解决问题:

    1. 确认文档版本:确保你查看的是通义千问的最新文档。API可能会更新,旧版本的文档可能不再适用。
    2. 理解API流程:多轮对话通常涉及初始化会话、发送消息、接收响应和结束会话等步骤。确保你理解这些步骤的顺序和每个步骤所需的参数。
    3. 检查请求参数:确保你的请求包含所有必需的参数,并且参数的值是正确的。例如,你可能需要传递会话ID、用户ID、消息内容等。
    4. 检查请求格式:确保你的请求格式正确,包括请求头、请求体等。有时,API可能要求特定的内容类型(如application/json)或特定的请求头。
    5. 查看错误响应:如果API返回了错误响应,仔细阅读错误信息以了解问题的原因。错误信息通常会提供关于问题的详细信息,帮助你定位问题。
    2024-03-07 10:31:23
    赞同 13 展开评论 打赏
  • 北京阿里云ACE会长

    image.png
    通义千问大语言模型以用户文本形式的指令(prompt)以及不定轮次的对话消息作为输入,并基于这些信息生成回复作为输出。在这一过程中,文本将被转换为语言模型可以处理的token序列。Token是模型用来表示自然语言文本的基本单位,可以直观地理解为“字”或“词”。对于中文,一个token对应1.8到2个汉字,例如“通义千问大语言模型”,转换为token后为: ["通", "义", "千", "问", "大", "语言", "模型"], 对于英文,通常一个token对应3到4个字母或者一个单词,例如:Artificial intelligence has made great progress at present. 转换为token后为: ["Art", "ificial", " intelligence", " has", " made", " great", " progress", " at", " present", "."]。

    from http import HTTPStatus
    from dashscope import Generation
    from dashscope.api_entities.dashscope_response import Role
    
    
    def conversation_with_messages():
        messages = [{'role': Role.SYSTEM, 'content': 'You are a helpful assistant.'},
                    {'role': Role.USER, 'content': '如何做西红柿炖牛腩?'}]
        response = Generation.call(
            Generation.Models.qwen_turbo,
            messages=messages,
            result_format='message',  # set the result to be "message" format.
        )
        if response.status_code == HTTPStatus.OK:
            print(response)
            # append result to messages.
            messages.append({'role': response.output.choices[0]['message']['role'],
                             'content': response.output.choices[0]['message']['content']})
        else:
            print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
                response.request_id, response.status_code,
                response.code, response.message
            ))
        messages.append({'role': Role.USER, 'content': '不放糖可以吗?'})
        # make second round call
        response = Generation.call(
            Generation.Models.qwen_turbo,
            messages=messages,
            result_format='message',  # set the result to be "message" format.
        )
        if response.status_code == HTTPStatus.OK:
            print(response)
        else:
            print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
                response.request_id, response.status_code,
                response.code, response.message
            ))
    
    
    if __name__ == '__main__':
        conversation_with_messages()
    

    image.png

    参考;https://help.aliyun.com/zh/dashscope/developer-reference/api-details?spm=a2c4g.11186623.0.i18

    2024-03-07 09:08:18
    赞同 12 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,看了你的问题,这似乎是和阿里云通用智能对话平台相关的问题,对于多轮对话的方式,可以按照以下格式进行编写:
    image.png

    {
      "model": "qwen-max",
      "input": {
        "messages": [
          {"role": "user", "content": "用户输入1"},
          {"role": "assistant", "content": "助手回复1"},
          {"role": "user", "content": "用户输入2"},
          {"role": "assistant", "content": "助手回复2"}
        ]
      },
      "parameters": {}
    }
    

    每一轮对话都由两个消息构成,一个是用户角色的消息,一个是助手角色的消息,这里的角色需要使用 "user" 和 "assistant",而不是 "system",确保消息内容是有效的字符串。请确保你的请求是正确的JSON格式,并且按照上述示例进行编写。

    2024-03-07 09:08:16
    赞同 11 展开评论 打赏
滑动查看更多

人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。

热门讨论

热门文章

相关电子书

更多
阿里巴巴HTTP 2.0实践及无线通信协议的演进之路 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载