只能看一眼 2024-05-26 00:17 采纳率: 0%
浏览 5

API返回结果很迷,求解答🥺

img

img

上面是官方文档的要求,下面是我写的。但是当我调用这个api时,返回的却是
{"header":{"code":0,"message":"Success","sid":"cht000b8438@dx18fb066392ab8f2540","status":0},"payload":{"choices":{"status":0,"seq":0,"text":[{"content":"(","role":"assistant","index":0}]}}}
他的返回值不正确,这应该怎么调呀。
PS。鉴权和appid和secret应该是正确的

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-26 00:17
    关注

    引自免费微信小程序:皆我百晓生

    看起来你已经按照官方提供的文档创建了一个完整的请求,并通过WebSockets与服务端进行了交互。然而,返回的结果似乎不符合预期。根据你提供的返回信息,payload.choices中的statusseq都是0,而text只有一个包含左括号(`)的元素,这显然不是正常的对话响应。

    首先,让我们检查一下你的请求数据是否符合规范。从代码中看,你在第31行定义了空数组,但在第38行的代码中它被缩进到了message对象之外,导致实际发送的数据结构可能不正确。将text放回message对象中,如下所示:

    31     "message": { 
    32         "text": [] # 确保这里是一个空数组
    

    然后,确保你使用的appidsecret以及sid是有效的。特别是对于sid,它应该在每次请求时保持不变,且是你之前与服务端建立会话时得到的标识符。如果你没有初始化一个有效的会话,可能会导致返回的状态码为0,表示请求处理失败。

    此外,官方文档要求在开始会话时提供上一轮会话ID(pre_chat_id),但在你的示例代码中并没有看到这部分。尽管你提到这是针对后续会话的,但为了保险起见,还是建议在第一次会话时也提供一个初始值,比如一个空字符串。

    修正后的代码如下:

    ...
    19     "app_id": appid,
    20     "uid": "your_uid", 
    21     "agent_id": "your_agent_id",
    ...
    25     "chat": {
    26         "chat_id": "abc123",
    27         "pre_chat_id": "" # 假设这是第一次会话,提供一个空字符串
         },
    ...
    31     "message": { 
    32         "text": [] # 确保这里是一个空数组
    

    如果你已经确认上述所有内容都正确无误,但仍然收到不正确的返回结果,那可能是服务端的问题或者是网络问题。在这种情况下,建议联系服务提供商的技术支持,提供你的请求和响应数据,以便他们能够协助排查问题。

    如果你需要进一步的帮助,例如调试代码或者分析返回结果,我会尽力提供支持。请确保已仔细检查并尝试修复上述可能的问题,然后再继续寻求帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月26日

悬赏问题

  • ¥15 如何在arcgis中导出拓扑关系表
  • ¥15 处理数据集文本挖掘代码
  • ¥15 matlab2017
  • ¥15 在vxWorks下TCP/IP编程,总是connect()报错,连接服务器失败: errno = 0x41
  • ¥15 AnolisOs7.9如何安装 Qt_5.14.2的运行库
  • ¥20 求:怎么实现qt与pcie通信
  • ¥50 前后端数据顺序不一致问题,如何解决?(相关搜索:数据结构)
  • ¥15 基于蒙特卡罗法的中介效应点估计代码
  • ¥15 罗技G293和UE5.3
  • ¥20 Tesla 特斯拉K80显卡 如果需要使用该设备,你需要禁用系统上的另一个设备。