文档首页 > > API参考> 问答机器人> 其他问答API> 单轮问答(即将下线)

单轮问答(即将下线)

分享
更新时间:2020/09/21 GMT+08:00

功能介绍

问答服务的输入为用户提问,输出是与输入最匹配的Top N(默认为top5)个知识点,知识点按得分从高到低排序。该接口即将下线,请优先使用开启会话处理会话关闭会话接口。

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

URI

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

    名称

    是否必选

    说明

    project_id

    项目ID,用于资源隔离。请参见获取项目ID

    qabot_id

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

    进入问答机器人的Console界面,在“机器人名称/ID”列显示对应的qabot_id。

请求消息

请求参数如表2所示。

表2 参数说明

名称

参数类型

是否必选

说明

session_id

String

会话ID,由任意字符串组成,由用户自定义产生,用来区分不同的会话。

具体获取方式请参见开启会话章节。

user_id

String

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

question

String

用户问题。

extends

Object

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

threshold_enable

Boolean

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

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

chat_enable

Boolean

默认true

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

false:不使用闲聊兜底。

operate_type

Integer

调用接口时候传入,用以标记的问答的行为,默认为0,最终会展示在问答日志里。

  • 0 用户输入
  • 1 单击热点问题
  • 3 单击推荐问题
  • 4 单击问题提示
表3 extends字段数据结构

名称

参数类型

是否必选

说明

domains

Array of strings

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

当前最多支持10个领域。

top

Integer

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

响应消息

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

名称

参数类型

说明

request_id

String

请求ID。

调用失败时无此字段。

question

String

问题。

调用失败时无此字段。

answers

Array of QaPair

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

调用失败时无此字段。

extends

Object

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

调用失败时无此字段。

error_code

String

调用失败时的错误码。

调用成功时无此字段。

error_msg

String

调用失败时的错误信息。

调用成功时无此字段。

表5 QaPair字段数据结构

名称

参数类型

说明

qa_pair_id

String

问答对ID。

st_question

String

标准问题。

ex_questions

Array of objects

扩展问,具体参见表6

answer

String

答案。

score

Float

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

domain

String

所属领域。

表6 ex_questions字段数据结构

名称

参数类型

说明

content

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": "桌面云无法登录",
        "extends":{
    	"domains":["桌面云"],
    	"top":5
        },
        "threshold_enable":false,
        "chat_enable":true
    }
  • 响应示例
    • 成功响应示例

      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. 开启内部阈值处理。
      表7 内部阈值处理

      处理条件

      结果

      备注

      分值>0.85

      返回分值与最高分差距在0.05范围内所有命中语料。

      如果QaPair对象的answer不为空,则为命中语料,如果answer为空,则为推荐语料。

      0.70<分值<0.85

      如果存在这个区间的语料,返回最高分值处于这个区间的命中语料。如果不存在这个区间的语料,则返回推荐语料。

      0.55<分值<0.70

      返回推荐语料。

      分值<0.55

      不返回语料。

      例1:

      { 
          "request_id": "303a0a00-c88a",
          "question": "桌面云打不开",
          "answers": [
              {
                  "qa_pair_id":"123",
                  "st_question":"桌面云打开不了",
                  "ex_questions": [
                      {
                          "content": "桌面云"
                      }
                  ],
                  "answer":"用户账号不对",
                  "top_score_question":"桌面云打开不了",
                  "score":0.952,
                  "domain":"桌面云"
              },
            {
                  "qa_pair_id":"123",
                  "st_question":"桌面云打开",
                  "ex_questions": [
                      {
                          "content": "桌面"
                      }
                  ],
                  "answer":"打开桌面云",
                  "top_score_question":"桌面云打开",
                  "score":0.912,
                  "domain":"桌面云"
              }
          ]
      }
      例2:
      { 
          "request_id": "303a0a00-c88a",
          "question": "桌面云打不开",
          "answers": [
              {
                  "qa_pair_id":"123",
                  "st_question":"桌面云打开不了",
                  "top_score_question":"桌面云打开不了",
                  "answer":"用户账号不对",
                  "score":0.752,
                  "domain":"桌面云"
              }
          {
                  "qa_pair_id":"123",
                  "st_question":"桌面云打开不了了",     
                  "score":0.70,
                  "domain":"桌面云"
              },
              {
                  "qa_pair_id":"123",
                  "st_question":"桌面云是啥",    
                  "score":0.54,
                  "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

提交反馈 取消

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

智能客服提问云社区提问