文档首页 > > API参考> API说明> 问答机器人接口说明> 在线问答> 问答请求

问答请求

分享
更新时间: 2019/09/12 GMT+08:00

功能介绍

问答服务的输入为用户提问,输出是与输入最匹配的Top N(默认为top5)个知识点,知识点按得分从高到低排序。

说明:

返回知识点如果含有答案字段(answer),则表示返回匹配成功结果,如果没有答案字段,则表示推荐结果。

URI

  • URI格式
    POST /v1/{project_id}/qabots/{qabot_id}/requests
  • 参数说明
    表1 URI参数说明

    名称

    是否必选

    说明

    project_id

    项目ID,用于资源隔离。

    qabot_id

    qabot编号,UUID格式,如:303a0a00-c88a-43e3-aa2f-d5b8b9832b02。

请求消息

请求参数如表2所示。

表2 参数说明

名称

参数类型

是否必选

说明

session_id

String

会话ID,用来区分不同会话。

user_id

String

用户ID,用来区分唯一用户信息。

operate_type

Integer

操作类型:

  • 0 手动输入
  • 1 单击热点问题
  • 2 单击猜你想问
  • 3 单击推荐问题
  • 4 单击问题提示

question

String

用户问题。

extends

Object

扩展参数项,具体参见表3 object。

threshold_enable

Boolean

true:启动内部阈值 返回经过阈值处理之后的答案。

false:不启用内部阈值 返回原答案。

chat_enable

Boolean

默认true

true:使用内部闲聊语料进行兜底。

false:不使用闲聊兜底。

表3 extends字段数据结构

名称

参数类型

是否必选

说明

domains

Array of strings

领域列表,多个领域用分号隔开。如果设置了领域且领域不为空,就从这些领域中匹配答案,否则就从该用户的全部知识库匹配答案。

当前最多支持10个领域。

top

Integer

返回答案数量,默认为5,取值范围[1,10]。

响应消息

响应参数如 表4所示。
表4 响应参数

名称

参数类型

说明

request_id

String

请求ID。

调用失败时无此字段。

question

String

问题。

调用失败时无此字段。

answers

Object

最相似的问题集,具体参见表5 object。

调用失败时无此字段。

extends

Object

扩展参数项,具体参见表3 object。

调用失败时无此字段。

error_code

String

调用失败时的错误码。

调用成功时无此字段。

error_msg

String

调用失败时的错误信息。

调用成功时无此字段。

表5 answers字段数据结构

名称

参数类型

说明

qa_pair_id

String

问答对ID。

st_question

String

标准问题。

answer

String

答案。

score

Float

相似度得分,精确到小数点后3位。

domain

String

所属领域。

示例

  • 请求示例
    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. 开启内部阈值处理。
      表6 内部阈值处理

      序列

      处理条件

      结果

      例1

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

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

      例2

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

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

      例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"
      }

状态码

状态码请参见状态码

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区