文档首页 > > API参考> 问答机器人>

问答机器人API

问答机器人API

分享
更新时间:2021/05/06 GMT+08:00

功能介绍

用户可通过调用该接口与机器人进行会话。旧版问答机器人API请参见问答会话API(即将下线)

URI

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

    名称

    是否必选

    说明

    project_id

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

    qabot_id

    机器人标识符,qabot编号,UUID格式。如:303a0a00-c88a-43e3-aa2f-d5b8b9832b02。

    获取方法:

    登录对话机器人服务控制台,在智能问答机器人列表中查看qabot_id。

请求消息

表2 body(即PostQaBotSessionReq)数据结构说明

名称

是否必选

类型

说明

question

String

用户问题。如:查天气。长度为1~64。

extends

Object

扩展参数,具体参见表3

chat_enable

Boolean

默认false。

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

false:不使用闲聊兜底。

user_id

String

用户id,在日志中用于标识不同用户,可以为任意String。

session_id

String

会话标识符,UUID格式。如:c04e6f7b-61d7-4a2d-a0c8-f9ecd2f62359。

  1. 每次对话开启,机器人创建会话id,下次请求中传入该id表示继续该轮对话,每轮会话有效时间为2分钟。
  2. 若传入的会话id已过期或者为空,则机器人会重新创建新的会话id(重新创建会话id会消耗一定时间)。

query_types

Array of Integer

指定发送的机器人类型集合。

0 知识库问答。

1 技能问答。

2 闲聊问答。

3 图谱问答。

4 文档问答。

5 表格问答。

非必填字段。如果不填,会使用默认的机器人融合策略。

表3 Extends数据结构说明

名称

是否必选

类型

说明

tag_ids

object

待匹配的答案标签信息。object具体参见表4

domain_ids

Array of string

问题类别id列表。一次最多可以传入10个。

只有属于这些问题类别的知识库问答对才会被匹配到。

获取domain_ids方法:

登录对话机器人服务控制台,在“问答机器人 > 知识库 > 问答管理”界面,鼠标指向问题类别,获取domain_ids。

source

String

问题来源。

支持用户自定义,最终体现在问答日志里。

kg_id

String

图谱问答ID,当在query_types中添加图谱问答时,此字段必填。使用kg_id参数,需要开通知识图谱服务

获取kg_id方法:

在知识图谱服务控制台“我的图谱”页面,单击图谱名称,进入图谱详情页左上角获取知识图谱ID。

表4 Tags数据结构说明

名称

是否必选

类型

说明

must

Array of string

必须要含有答案标签id的列表。

should

Array of string

至少要包含列表中的一个答案标签id。

备注:must和should为与的关系

响应消息

响应参数说明如表5所示。

表5 响应参数

名称

类型

说明

error_code

String

调用失败时的错误码。调用成功时无此字段,如:CBS.0011。

error_msg

String

调用失败时的错误信息。调用成功时无此字段,如:auth failed。

reply_type

Integer

回复类型:

0 知识库回复。

1 技能回复。

2 闲聊回复。

3 图谱回复。

4 文档回复。

5 表格回复。

qabot_answers

object

知识库回复,具体参见表6

request_id

String

请求ID。用来标记调用失败时,用来标记本次问答。

chat_answers

object

闲聊回复,具体参见表9

taskbot_answers

object

技能回复,具体参见表10。只有专业版机器人有该回复。

docqa_answers

object

文档回复,具体参见表11。只有专业版机器人有该回复。

tableqa_answers

object

表格回复,具体参见表13。只有专业版机器人有该回复。

kbqa_answers

object

图谱回复,具体参见表14。只有专业版机器人有该回复。

session_id

String

会话id,每次对话开启,机器人创建会话id,下次请求中传入该id表示继续该对话,每轮会话有效时间为2分钟。

表6 qabotanswers数据结构说明

名称

类型

说明

answers

Array of object

问答机器人回复。详细请参见表7

recommend_answers

Array of object

问答机器人推荐回复。详细请参见表8

表7 qabotanswer数据结构说明

名称

类型

说明

qa_pair_id

String

问答对ID,UUID格式,如:305cd440-ab4f-4704-9b30-ffa4e82a5606。

st_question

String

标准问题,如:桌面云打不开。

answer

String

答案,如:桌面云打不开了。

score

Number

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

domain

String

所属领域,如:桌面云。

top_score_question

String

最高评分的扩展问或标准问。具体见表3

表8 recommend_qabotanswers数据结构说明

名称

类型

说明

qa_pair_id

String

问答对ID,UUID格式,如:305cd440-ab4f-4704-9b30-ffa4e82a5606。

st_question

String

标准问题,如:桌面云打不开。

score

Number

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

domain

String

所属领域,如:桌面云。

top_score_question

String

最高评分的扩展问或标准问。具体见表3

表9 chatanswers数据结构说明

名称

类型

说明

answer

String

答案,如:美好的一天祝您一切顺利。

score

Number

闲聊的置信度,范围:[0.0,1.0 ]。0.0表示兜底回复。

表10 taskbotanswers数据结构说明

名称

类型

说明

answer

String

答案, 如:请问您需要查询哪里的天气?

skill_id

String

技能标识符,UUID格式。如:9eece064-bdb5-43cb-8e0f-8c19a929e25c。

candidate_words

List<String>

用户候选回复词,需再槽位开启词典候选功能有效

skill_responses

Array of object

技能信息,具体参见表15

表11 docqa_answers数据结构说明

名称

类型

说明

answer

String

答案。

question

String

问题。

score

Number

文档问答回复的得分。

answer_detail

Object

文档回复的详细信息。具体结构参见表12

details

Array of object

文档回复的topN答案。具体结构参见表12

表12 文档回复详细信息

名称

类型

说明

answer

String

答案。

phrase_score

Number

文档问答阅读理解评分。

paragraph_text

String

段落文字。

start_index

Integer

答案开始下标。

end_index

Integer

答案结束下标。

total_score

Number

文档问答总评分。

paragraph_score

Number

段落评分。

doc_id

String

文档ID。

paragraph_number

Integer

段落在文档中的编号。

表13 tableqa_answers数据结构说明

名称

类型

说明

table_id

String

表格ID。

answer

String

表格问答答案。

score

Number

评分。

coordinates

List<List<Integer>>

答案在表格中的坐标。横坐标在前,纵坐标在后。

表14 kbqa_answers数据结构说明

名称

类型

说明

answer

String

图谱问答的答案。

score

Number

评分。

表15 skill_responses技能信息数据结构说明

名称

类型

说明

skill_id

String

输入问题,不能为空,UUID格式,如:9eece064-bdb5-43cb-8e0f-8c19a929e25c。

skill_version

String

skill的版本。

locked

Boolean

技能是否被锁定,默认是false。

frame

object

命中意图,具体参见表16

candidate

object

候选意图,具体参见表17

表16 Frame数据结构说明

名称

类型

说明

intention

String

意图。

confidence

Number

命中意图置信度。

current_slots

Array of object

当前槽位列表,具体参见表17

history_slots

Array of object

历史槽位列表,具体参见表19

reply

String

机器人回复。

task_complete

Boolean

任务是否完成。

flow_complete

Boolean

对话流程是否结束。

candidate_words

Array of String

候选词。

表17 CurrentSlot数据结构说明

名称

类型

说明

slot_id

String

槽位ID,UUID格式,如:9eece064-bdb5-43cb-8e0f-8c19a929e25c。

slot_identification

String

用户设置的槽位标识。

slot_name

String

槽位名称。

slot_values

Array of object

槽位值,具体参见表18

表18 SlotValue数据结构说明

名称

类型

说明

word

String

词。

norm_word

String

通用词。

begin_position

Integer

词的起始位置。

end_position

Integer

词的结束位置。

表19 HistorySlot数据结构说明

名称

类型

说明

slot_identification

String

用户设置的槽位标识

slot_name

String

槽位名称。

slot_values

Array of object

槽信息,具体参见表20

表20 HistorySlotWord数据结构说明

名称

类型

说明

word

String

词。

norm_word

String

归一化后的词。

表21 Candidate数据结构说明

名称

类型

说明

candidate_intention

String

候选意图。

candidate_confidence

Number

候选技能置信度。

示例

  • 请求示例
    POST https://{endpoint}/v1/{project_id}/qabots/{qabot_id}/chat
    
    Request Header:
    Content-Type: application/json
    X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
    Request Body:
    {
        "question": "桌面云打不开了"
    }
  • Python语言请求代码示例
    import requests
    url = "https://{endpoint}/v1/{project_id}/qabots/{qabot_id}/chat"
    token = "用户获取得到的实际token值"
    headers = {'Content-Type': 'application/json', 'X-Auth-Token': token}
    body = {"question": "用户问"}
    
    response = requests.post(url, headers=headers, json=body, verify=False)
    print(response.text)
  • 响应示例
    • 成功响应样例
      {
         "reply_type":0,
         "qabot_answers":{
            "request_id":"0a1b12ad-8448-4c95-8c13-fb199762f4511583841605901",
            "answers":[
               {
                  "score":1,
                  "answer":"桌面云打不开了",
                  "domain":"桌面云",
                  "qa_pair_id":"305cd440-ab4f-4704-9b30-ffa4e82a5606",
                  "st_question":"桌面云打不开"
               }
            ]
         }
      }
      
      {
         "reply_type":1,
         "taskbot_answers":{
            "answer":"请问您需要查询哪里的天气?",
                "skill_id":"b7b16fc3-0946-46f7-8c70-b954b4fdb736",
            "skill_responses":[
               {
                  "frame":{
                     "intention":"weather_query",
                     "confidence":0.9339861716638148,
                     "reply":"请问您需要查询哪里的天气?",
                     "candidate_words":[
      
                     ],
                     "task_complete":false,
                     "current_slots":[
      
                     ],
                     "history_slots":[
      
                     ]
                  },
                  "candidate":{
                     "candidate_confidence":0
                  },
                  "skill_id":"b7b16fc3-0946-46f7-8c70-b954b4fdb736",
                  "skill_version":"v8"
               },
               {
                  "frame":{
                     "confidence":0,
                     "reply":"对不起,我没明白,请再多教我一些吧",
                     "candidate_words":[
      
                     ],
                     "task_complete":true,
                     "current_slots":[
      
                     ],
                     "history_slots":[
      
                     ]
                  },
                  "candidate":{
                     "candidate_confidence":0
                  },
                  "skill_id":"9eece064-bdb5-43cb-8e0f-8c19a929e25c",
                  "skill_version":"v13"
               }
            ]
         }
      }
      
      {
         "reply_type":2,
         "chat_answers":{
            "answer":"美好的一天祝您一切顺利"
         }
      }
      
    • 失败响应样例
      {
          "error_code":"CBS.0011",
          "error_msg":"auth failed"
      }

状态码

状态码请参见状态码

错误码

错误码请参见错误码

分享:

    相关文档

    相关产品

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

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

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

字符长度不能超过200

提交反馈 取消

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

智能客服提问云社区提问