开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

闲聊API接口2.0

2.0版本已停止日常维护,建议使用3.0版本。

前言

多轮闲聊的对话API和UNIT平台技能对话API、机器人对话API保持一致,字段、调用方式等均相同。

建议先了解UNIT平台技能对话API接口2.0机器人对话API接口2.0

点击查看直接调用两种对话接口的传参格式文档;

在通用对话API的基础上,做了闲聊对话的定制化处理:

  • 需要在SYS_CHAT_HIST参数中进行对话信息维护。

对话信息维护

技能

  • 开发者自己维护对话历史或需要修改对话历史,将实际对话的一问一答设置在session内SYS_CHAT_HIST,最多传递7轮。
  • SYS_CHAT_HIST中传入的最后一个问句需要与query一致。比如:

    • 第一轮,query是“你好”,SYS_CHAT_HIST传入“你好”;
    • 机器人回复“你也好啊”
    • 第二轮,query是“今天天气怎样”,SYS_CHAT_HIST传入的是“你好”“你也好啊”“今天天气怎样”这三条数据。
  • 格式: "bot_session": "{\"dialog_state\":{\"contexts\":{\"SYS_CHAT_HIST\":[\"问句1\",\"回复1\",\"问句2\",\"回复2\",\"问句3\"],\"SYS_PRESUMED_HIST\":[]}}},
  • 示例: "bot_session": "{\"dialog_state\":{\"contexts\":{\"SYS_CHAT_HIST\":[\"你好\",\"你也好啊\",\"今天天气怎样\",\"今天阴天\",\"国庆可以去哪玩?\"], \"SYS_PRESUMED_HIST\":[]}}},
  • 开发者也可以不维护对话历史,使用系统预测的历史,每轮对话传递session_id或者session即可。需要注意,当系统拿到多个答复时,会默认选择第一条,如果开发者在多个结果中选择了其他内容进行对话回复,可能因此导致预测不准确,影响对话效果;示例: "bot_session": "{\"session_id\":\"session-1597140459420-569536918-8013-3\"}"
  • 完整的示例代码:

    {
      "bot_id": "1726",
      "bot_session": "{\"dialog_state\":{\"contexts\":{\"SYS_CHAT_HIST\":[\"你好\",\"你也好啊\",\"今天天气怎样\",\"今天阴天\",\"国庆可以去哪玩?\"],\"SYS_PRESUMED_HIST\":[]}}}",
      "log_id": "unit_logid1",
      "request": {
          "bernard_level": 1,
          "client_session": "{\"client_results\":\"\", \"candidate_options\":[]}",
          "query": "国庆可以去哪玩?",
          "query_info": {
               "asr_candidates": [],
               "source": "KEYBOARD",
               "type": "TEXT"
          },
          "updates": "",
          "user_id": "1111"
      },
      "version": "2.0"
    }

机器人

  • 传递session_id,目的是维护机器人下非闲聊的其他技能的多轮信息。
  • 如果自己维护对话历史,将实际对话的一问一答设置在dialog_state.context.SYS_CHAT_HIST,最多传递7轮。
  • SYS_CHAT_HIST中传入的最后一个问句需要与query一致。比如:第一轮,query是“你好”,SYS_CHAT_HIST传入“你好”;第二轮,query是“今天天气怎样”,SYS_CHAT_HIST传入的是“你好”“你也好啊”“今天天气怎样”这三条数据。
  • 格式:

    "dialog_state": {
        "contexts": {
            "SYS_REMEMBERED_SKILLS": [],
            "SYS_PRESUMED_HIST": [],
            "SYS_CHAT_HIST": [
                "问句1",
                "回复1",
                "问句2",
                "回复2",
                "问句3"
            ]
        }
    }
  • 示例:

    "dialog_state": {
        "contexts": {
            "SYS_REMEMBERED_SKILLS": [],
            "SYS_PRESUMED_HIST": [],
            "SYS_CHAT_HIST": [
                "你好",
                "你也好啊",
                "今天天气怎样",
                "今天阴天",
                "国庆可以去哪玩?"
            ]
        }
    }
  • 开发者也可以不维护对话历史,使用系统预测的历史;需要开发者每次访问对话API时,将上一轮reponse里面的dialog_state.context.SYS_PRESUMED_HIST设置到request.dialog_state. context.SYS_PRESUMED_HIST中。需要注意,当系统拿到多个答复时,会默认选择第一条,如果开发者在多个结果中选择了其他内容进行对话回复,可能因此导致预测不准确,影响对话效果;
  • 完整的示例代码:

    {
      "log_id":"unit_logid1",
      "version":"2.0",
      "service_id":"S10000",
      "session_id":"",
      "request":{
          "query":"国庆可以去哪玩?",
          "user_id":"88888"
      },
      "dialog_state":{
          "contexts":{
              "SYS_REMEMBERED_SKILLS":[],
              "SYS_PRESUMED_HIST": [],
              "SYS_CHAT_HIST": [
    		            "你好","你也好啊",
    		            "今天天气怎样","今天阴天",
    		            "国庆可以去哪玩?"
              ]
          }
      }
    }
上一篇
对话API接口3.0
下一篇
技能对话API接口2.0