1. 前言
問答機器人現在很多場合都有使用,比如:網頁智能客服、微信公眾號智能回復、淘寶的售后客服,QQ聊天機器人等等。有了這些客戶機器人就能幫我們回答很多預置的一些問題,幫助用戶解決常見問題,還可以進行自主訓練,得到一個適合自己使用的機器人。機器人也可以關聯很多其他的技能,玩小游戲,查詢天氣、查詢節假日、查詢很多其他的信息,非常方便。
這篇文章就采用華為云提供的智能問答機器人設計一個小軟件,采用華為云提供的API接口完成數據交互,與機器人進行問答交互,通過這個例子可以了解到智能問答機器人的基本功能、使用場景、使用方法等等。
華為云的智能問答機器人特點介紹
提供問答引擎、機器人管理平臺來方便客戶快速、低成本構建智能問答服務。智能問答能滿足用戶快速上線、高度定制、數據可控的需求,具有問答準確率高、自主學習等特點。能夠幫助企業節省客服人力,大大降低客服響應時間。
具備如下優勢點:
2. 使用問答機器人服務
2.1 開通服務
地址: https://www.huaweicloud.com/product/cbsqa.html
點擊立即使用
會進入到購買頁面,可以免費體驗14天,對于技術評估,場景測試已經足夠。
2.2 配置機器人
(1)機器人購買之后,點擊進入管理頁面,對機器人的屬性、技能進行配置,訓練。
(2)可以添加預置的技能,還可以添加自定義技能
預置的技能有查詢天氣、成語接龍、查星座、查節日、猜數字游戲等等。也可以自己自定義技能標注訓練發布。
2.3 對話體驗
在管理頁面右上角可以在線體驗與機器人對話,可以快速調試問答效果。
2.4 接口調試
地址: https://support.huaweicloud.com/api-cbs/cbs_03_0115.html
在調用API測試之前,可以先使用在線調試接口測試,了解請求如何發出,有哪些必填參數,請求參數怎么填,返回的結果格式是怎樣的。
2.5 API請求總結
(1)請求的URL格式
請求的URL格式: POST /v1/{project_id}/qabots/{qabot_id}/chat
其中參數介紹:
project_id 是項目ID。
qabot_id 是機器人標識符,qabot編號,UUID格式。如:303a0a00-c88a-43e3-aa2f-d5b8b9832b02。
登錄對話機器人服務控制臺,在智能問答機器人列表中就可以查看到abot_id。
最終拼接的URL格式: https://cbs-ext.cn-north-4.myhuaweicloud.com/v1/0e5957be8a00f53c2fa7c0045e4d8fbf/qabots/5c889415-6834-4ada-aa51-ea5000941e25/chat
(2)請求頭與請求參數總結
請求頭:
"X-Auth-Token": "------------", 這是API接口鑒權用的,所有的API請求都要這個參數
"Content-Type": "application/json"
請求體:
{
"question": "北京天氣" 這是給機器人提交的問題,隨后機器人會返回答案
}
?
響應結果:
{
"request_id": "e3ab440c-0bb2-455b-aff8-07e4cc4115f4",
"reply_type": 1,
"taskbot_answers": {
"answer": "當前北京天氣晴,最高8攝氏度,最低-5攝氏度,日間南風≤3級,夜間南風≤3級。",
"skill_id": "22a20348-aa8b-44d2-96df-dcae1b8d92c2",
"skill_responses": [
{
"frame": {
"intention": "weather_query",
"confidence": 1,
"reply": "當前北京天氣晴,最高8攝氏度,最低-5攝氏度,日間南風≤3級,夜間南風≤3級。",
"intention_alias": "查天氣",
"candidate_words": [],
"task_complete": true,
"flow_complete": true,
"current_slots": [
{
"slot_id": "a9ee29df-8f60-4ff1-863e-60e9412a1f95",
"slot_name": "地點",
"slot_identification": "loc",
"slot_values": [
{
"word": "北京",
"norm_word": "北京",
"begin_position": 0,
"end_position": 1
}
]
}
],
"history_slots": []
},
"candidate": {
"candidate_confidence": 0
},
"skill_id": "22a20348-aa8b-44d2-96df-dcae1b8d92c2",
"skill_version": "v50",
"locked": false,
"related_intentions": [
{
"intention": "weather_query",
"confidence": 1
}
]
},
{
"frame": {
"confidence": 0,
"reply": "你太難理解了,我需要一些信息才能知道呢,哼!",
"candidate_words": [],
"task_complete": true,
"flow_complete": true,
"current_slots": [],
"history_slots": []
},
"candidate": {
"candidate_confidence": 0
},
"skill_id": "8b71d740-aedb-4c01-8948-460dab64fd22",
"skill_version": "v67",
"locked": false,
"related_intentions": [
{
"intention": "constellation",
"confidence": 0.513
}
]
},
{
"frame": {
"confidence": 0,
"reply": "對不起,我沒明白,請再多教我一些吧",
"candidate_words": [],
"task_complete": true,
"flow_complete": true,
"current_slots": [],
"history_slots": []
},
"candidate": {
"candidate_intention": "chengyu",
"candidate_confidence": 0.507154
},
"skill_id": "9d2aa6d4-8461-4ca7-9db8-af32fdbfde57",
"skill_version": "v12",
"locked": true,
"related_intentions": [
{
"intention": "chengyu",
"confidence": 0.507
}
]
},
{
"frame": {
"confidence": 0,
"reply": "對不起,我沒明白,請再多教我一些吧",
"candidate_words": [],
"task_complete": true,
"flow_complete": true,
"current_slots": [],
"history_slots": []
},
"candidate": {
"candidate_confidence": 0
},
"skill_id": "4a93acd4-5a29-4188-b033-9fffd932e5df",
"skill_version": "v31",
"locked": true,
"related_intentions": [
{
"intention": "sys.other",
"confidence": 0.555
}
]
},
{
"frame": {
"confidence": 0,
"reply": "對不起,我沒明白,請再多教我一些吧",
"candidate_words": [],
"task_complete": true,
"flow_complete": true,
"current_slots": [],
"history_slots": []
},
"candidate": {
"candidate_confidence": 0
},
"skill_id": "25ad99ee-8a13-40a2-8fa1-0a18370e2ef5",
"skill_version": "v34",
"locked": false,
"related_intentions": [
{
"intention": "sys.other",
"confidence": 0
}
]
}
]
},
"session_id": "4b105ca2-28e2-4ec8-bd4b-87c8d7c6a322"
}
請求頭里的X-Auth-Token字段在之前的文章已經介紹過,獲取方法看這里: https://bbs.huaweicloud.com/blogs/317759 翻到2.3小節。
(3)請求參數介紹
詳細的參數可以看官方文檔介紹: https://support.huaweicloud.com/api-cbs/cbs_03_0115.html
請求參數里一般主要填下面兩個字段:
?
question 這是必填的參數,填用戶的問題。如:查天氣。長度為1~512。
?
session_id 填會話標識符,UUID格式。如:c04e6f7b-61d7-4a2d-a0c8-f9ecd2f62359。
每次對話開啟,機器人創建會話id,下次請求中傳入該id表示繼續該輪對話,每輪會話有效時間為2分鐘。
若傳入的會話id已過期或者為空,則機器人會重新創建新的會話id(重新創建會話id會消耗一定時間)。
比如: 玩成語接龍游戲,就需要填會話標識ID,這樣才可以接著上一次的對話繼續問答。
(4)響應參數介紹
reply_type 表示當前回答的類型
0 知識庫回復。
1 技能回復。
2 閑聊回復。
3 圖譜回復。
4 文檔回復。
5 表格回復。
?
session_id 這是當前的會話id,每次對話開啟,機器人創建會話id,下次請求中傳入該id表示繼續該對話,每輪會話有效時間為2分鐘。
?
以技能回復為例:
"taskbot_answers": {
"answer": "當前北京天氣晴,最高8攝氏度,最低-5攝氏度,日間南風≤3級,夜間南風≤3級。",
}
3. 實現效果與案例代碼
3.1 實現效果
(1)成語接龍
(2)天氣查詢
(3)查星座
(4)猜數字游戲
3.2 核心代碼
#include "widget.h"
#include "ui_widget.h"
?
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui- >setupUi(this);
?
this- >setWindowTitle("智能問答機器人");
?
?
//讀取之前保存的token數據
QString data_token=ReadDataFile();
if(!data_token.isEmpty())
{
Token=data_token.toUtf8();
qDebug()< "讀取到之前的數據:"<
審核編輯:湯梓紅
-
機器人
+關注
關注
211文章
28379瀏覽量
206914 -
接口
+關注
關注
33文章
8575瀏覽量
151015 -
華為云
+關注
關注
3文章
2445瀏覽量
17408
發布評論請先 登錄
相關推薦
評論