更新时间:2022-02-22 GMT+08:00

调用问答机器人

在配置完问答数据后,您可以通过对话体验或者API的方式直接调用对话机器人,为您的客户提供问答服务。

问答机器人面向客户的问答界面需要您根据自己业务需求进行开发,前台界面收到客户问题后,调用问答机器人的接口,并与机器人进行交互,最终将问答机器人返回的答案呈现给客户。交互的过程中,问答机器人会基于知识库配置,对传入的客户问题进行搜索处理,并返回答案。

对话体验

对于一个新建的问答机器人,在知识库导入完成后,就可以通过对话体验界面进行对话。

  1. 进入对话机器人服务管理控制台,在左侧菜单栏中选择“智能问答机器人”。在机器人列表中,单击该机器人的ID或者“机器人管理”按钮。
  2. 在机器人管理的任意页面中,单击右上角“对话体验”,展开对话窗口。在对话框中,输入您的问题,或者通过单击返回的推荐问,获得答案。
    图1 对话体验

调用API

问答机器人中常用的接口如下所示。

  • 获取问题提示

    如果用户不确定对于现有问题该如何提问,可以使用问题的关键词向问答服务获取问题提示。

    示例:用户需要问关于云桌面的相关问题。

    • 请求示例
      POST https://{endpoint}/v1/41551a23c2be484cb0070631e323ee52/qabots/b36a01da-7fc2-43f8-8990-218e57a94420/chat
      
      Request Header:
      Content-Type: application/json
      X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
      Request Body:
      {
          "question": "桌面云打不开了"
      }
    • 响应示例
      • 成功响应示例
        {
            "questions":[
               "桌面云打不开",
               "桌面云无法登录"
            ]
        }
      • 失败响应示例
        {
          "error_code": "CBS.0022",
          "error_msg": "question can not be null"
        }
  • 问答请求
    用户通过API向智能问答服务提出问题,如果问答机器人通过语义匹配在知识库找到答案,智能问答服务返回问题答案,如果没有查找到答案,返回失败信息。
    • 请求示例
      POST https://{endpoint}/v1/1604d8170cd84440a81281e5a3a04f8b/qabots/303a0a00-c88a-43e3-aa2f-d5b8b9832b02/requests
      Request Header:
      Content-Type: application/json
      X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
      Request Body:
      {
          "user_id": "z00123456",
          "session_id": "xxxxxxxxxxxxxxxxxx",
          "operate_type":3,      
          "question": "桌面云无法登录"
      }
    • 响应示例
      • 成功响应示例

        1. 关闭内置阈值处理(设置threshold_enable = false),按top个数返回结果数量。

        { 
            "request_id": "303a0a00-c88a",
            "question": "桌面云打不开",
            "answers": [
                {
                    "qa_pair_id":"123",
                    "st_question":"桌面云打开不了",
                    "answer":"用户账号不对",
                    "score":0.952,
                    "domain":"桌面云"
             },
             {
                    "qa_pair_id":"123",
                    "st_question":"桌面云打开不了了",
                    "answer":"用户账号不对",        
                    "score":0.901,
                    "domain":"桌面云"
                },
                {
                    "qa_pair_id":"123",
                    "st_question":"桌面云是啥",
                    "answer":"桌面云是可以远程办公的系统",      
                    "score":0.352,
                    "domain":"桌面云"
                },
             {
                    "qa_pair_id":"123",
                    "st_question":"电脑桌面打不开",
                    "answer":"请检查下显示器是否开启",    
                    "score":0.352,
                    "domain":"桌面云"
                },
            ]
        }

        2. 开启内部阈值处理。

        表1 内部阈值处理

        序列

        处理条件

        结果

        例1

        分值最高的问答对分数高于设定阈值θ(默认模型为0.4)。

        只返分值最高的问答对。表示精确匹配。

        例2

        分值最高的问答对分数低于θ高于 θ/2。

        返回该问答对和分值高于θ/2的若干个推荐问(推荐问为去除答案的问答对)。

        例3

        分值最高的问答对分数低于 θ/2高于 θ/3。

        返回分值处于θ/2~ θ/3 的推荐问。

        例1:
        { 
            "request_id": "303a0a00-c88a",
            "question": "桌面云打不开",
            "answers": [
                {
                    "qa_pair_id":"123",
                    "st_question":"桌面云打开不了",
                    "answer":"用户账号不对",
                    "top_score_question":"桌面云打开不了",
                    "score":0.952,
                    "domain":"桌面云"
                }
            ]
        }
        例2:
        { 
            "request_id": "303a0a00-c88a",
            "question": "桌面云打不开",
            "answers": [
                {
                    "qa_pair_id":"123",
                    "st_question":"桌面云打开不了",
                    "top_score_question":"桌面云打开不了",
                    "answer":"用户账号不对",
                    "score":0.352,
                    "domain":"桌面云"
                }
            {
                    "qa_pair_id":"123",
                    "st_question":"桌面云打开不了了",     
                    "score":0.301,
                    "domain":"桌面云"
                },
                {
                    "qa_pair_id":"123",
                    "st_question":"桌面云是啥",    
                    "score":0.252,
                    "domain":"桌面云"
                }
            ]
        }
        例3:
        { 
            "request_id": "303a0a00-c88a",
            "question": "桌面云打不开",
            "answers": [
            {
                    "qa_pair_id":"123",
                    "st_question":"桌面云打开不了了",     
                    "score":0.291,
                    "domain":"桌面云"
                },
                {
                    "qa_pair_id":"123",
                    "st_question":"桌面云是啥",    
                    "score":0.252,
                    "domain":"桌面云"
                }
            ]
        }

        3. 闲聊兜底或无答案回复。

        { 
            "request_id": "303a0a00-c88a",
            "question": "你好",
            "answers": [
            {
                    "answer":"您好,请问有什么可以帮您的吗?"
                    
                }
            ]
        }
      • 失败响应示例
        {
          "error_code": "CBS.0022",
          "error_msg": "session_id can not be null"
        }
  • 问答满意评价

    用户通过API对问答服务返回的答案进行满意度评价。当前仅支持二级评分,“1”表示满意,“-1”表示不满意。

    示例:问答满意度评价。

    • 请求示例
      POST https://{endpoint}/v1/1604d8170cd84440a81281e5a3a04f8b/qabots/303a0a00-c88a-43e3-aa2f-d5b8b9832b02/requests/303a0a00-c88a/satisfaction
      Request Header:
      Content-Type: application/json
      X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
      Request Body:
      {
          "degree":1
      }
    • 响应示例
      • 成功响应示例
        {
            "request_id":"303a0a00-c88a",
            "updated_time":"2017-02-07T17:34:02Z"
        }
      • 失败响应示例
        {
          "error_code": "CBS.0099",
          "error_msg": "request body invalid."
        }