本文分享自華為云社區(qū)【案例教學(xué)】華為云API對(duì)話機(jī)器人的魅力—體驗(yàn)AI垃圾分類機(jī)器人,作者:華為云PaaS服務(wù)小智。
體驗(yàn)用Huawei Cloud API開發(fā)AI垃圾分類機(jī)器人,并學(xué)習(xí)AI自然語(yǔ)言的情感分析、文本分詞、文本翻譯等能力。
1 IntelliJ IDEA 之API插件介紹
API插件支持 VS Code IDE、IntelliJ IDEA等平臺(tái)、以及華為云自研 CodeArts IDE,基于華為云服務(wù)提供的能力,幫助開發(fā)者更高效、便捷的搭建應(yīng)用。API插件關(guān)聯(lián)華為云服務(wù)下的 API Explorer、DevStar、CodeLabs、SDK 中心和 CLI 中心產(chǎn)品,致力于為開發(fā)者提供更穩(wěn)定、快速、安全的編程體驗(yàn)。
在本插件中,我們提供了但不局限于如下的功能:
對(duì)接華為云API開放平臺(tái),支持用戶檢索API、查看API文檔、調(diào)試API、以及提供SDK示例代碼供用戶學(xué)習(xí)如何使用API。
提供華為云SDK代碼片段補(bǔ)全功能,SDK依賴包自動(dòng)引入,加速用戶集成華為云API。
對(duì)接華為云開發(fā)體驗(yàn)館Codelabs,提供500+云服務(wù)代碼示例,向?qū)浇坛處椭脩艨焖賹W(xué)習(xí)。
說明:
在IntelliJ IDEA等系列平臺(tái)和VS Code IDE,華為云API插件的名稱是Huawei Cloud API。而在CodeArts IDE,API插件是IDE原生內(nèi)置的,名稱是華為云API開發(fā)套件。
API插件在IntelliJ IDEA等系列平臺(tái)和VS Code IDE的使用依賴底座插件,請(qǐng)?zhí)崆鞍惭b底座插件。
2 API插件安裝--IntelliJ IDEA
2.1 IntelliJ IDEA等平臺(tái)
安裝準(zhǔn)備:下載并安裝JDK1.8或更高版本。下載并安裝IntelliJ IDEA 2020.2或更高版本。
須知:IntellIj平臺(tái)同時(shí)支撐包括Goland、Pycharm等在內(nèi)的IDE,若在其它相關(guān)IDE上開發(fā),請(qǐng)下載配置好對(duì)應(yīng)語(yǔ)言的編譯器或者解釋器。這里以IDEA為例介紹IntelliJ平臺(tái)插件的安裝流程,其他IntelliJ系列的IDE請(qǐng)參考IDEA。
開始安裝:https://developer.huaweicloud.com/develop/toolkit.html
您可以在直接在IDE插件市場(chǎng)或者直接在JetBrains插件市場(chǎng)下載離線包安裝。
IDE安裝
- 在IntelliJ IDEA頂部菜單欄中選擇File > Settings,在Settings對(duì)話框的左側(cè)導(dǎo)航欄中單擊Plugins。
- Plugins區(qū)域單擊Marketplace,在搜索欄中輸入Huawei Cloud API。
- Search Results區(qū)域會(huì)出現(xiàn)Huawei Cloud API,單擊Install,完成后重啟IDE。
離線包安裝:
- 進(jìn)入插件市場(chǎng)搜索Huawei Cloud API,進(jìn)入插件詳情頁(yè),在Versions頁(yè)簽下選擇想要版本的API插件,點(diǎn)擊Download下載離線的插件壓縮包保存到本地。。
- 在IntelliJ IDEA頂部菜單欄中選擇File > Settings,在Settings對(duì)話框的左側(cè)導(dǎo)航欄中單擊Plugins。
- 在Plugins區(qū)域單擊 ,再單擊Install Plugin from Disk...。
- 在Choose Plugin File對(duì)話框中選擇離線安裝包(不用解壓),并按照IntelliJ IDEA安裝頁(yè)面的提示,完成后續(xù)安裝步驟。
說明:若當(dāng)前您想要安裝插件的IntelliJ IDE已經(jīng)在桌面打開,則進(jìn)入插件市場(chǎng)搜索Huawei Cloud API,進(jìn)入插件詳情頁(yè),在右上角會(huì)識(shí)別到本地已經(jīng)打開的IDE,點(diǎn)擊相應(yīng)按鈕,在彈出的IDE窗口中點(diǎn)擊ok,則IDE后臺(tái)會(huì)開始安裝相應(yīng)版本的API插件。
安裝驗(yàn)證:在IntelliJ系列平臺(tái)上安裝插件成功后在左側(cè)的導(dǎo)航欄中可以看到Huawei Cloud Toolkit圖標(biāo),點(diǎn)擊后面板會(huì)出現(xiàn)Huawei Cloud API的字樣,則說明安裝成功。
3 使用對(duì)話流程,搭建復(fù)雜邏輯的AI對(duì)話場(chǎng)景
3.1 華為云API
左側(cè)展示API列表,可以查詢所有API,目前云服務(wù)206,APIs9213
https://developer.huaweicloud.com/develop/toolkit.html
3.2 使用對(duì)話流程配置復(fù)雜場(chǎng)景的多輪對(duì)話
?
什么是對(duì)話機(jī)器人服務(wù)?
對(duì)話機(jī)器人服務(wù)(Conversational Bot Service)是一款基于人工智能技術(shù),針對(duì)企業(yè)應(yīng)用場(chǎng)景開發(fā)的云服務(wù),主要包括智能問答、智能質(zhì)檢、定制對(duì)話機(jī)器人和任務(wù)型對(duì)話等功能。
對(duì)話機(jī)器人服務(wù)中的技能管理是打造任務(wù)型對(duì)話技能的工具平臺(tái)。通過創(chuàng)建管理不同技能和詞典,滿足不同的用戶需求,實(shí)現(xiàn)不同場(chǎng)景下的多輪對(duì)話能力。
在本案例中,您將使用CBS的技能管理為機(jī)器人快速配置技能,通過多輪對(duì)話實(shí)現(xiàn)機(jī)器人垃圾分類技能。
案例目標(biāo):掌握使用CBS技能的使用方法。掌握使用CBS創(chuàng)建垃圾分類流程配置的方法。
體驗(yàn)垃圾分類機(jī)器人配置,需要完成以下準(zhǔn)備工作:
創(chuàng)建華為云賬號(hào)并實(shí)名認(rèn)證。
注冊(cè)華為云賬號(hào)。完成實(shí)名認(rèn)證,推薦使用掃碼認(rèn)證。https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0133456714.html
下載數(shù)據(jù):
.
├── DB_query_rubbish_type.py
└── rubbish_dict.txt
創(chuàng)建試用版智能問答機(jī)器人:由于技能管理是專業(yè)版智能問答機(jī)器人下的功能,因此首先我們需要購(gòu)買一個(gè)試用版專業(yè)版問答機(jī)器人。 點(diǎn)擊此鏈接,進(jìn)入對(duì)話機(jī)器人服務(wù)智能問答機(jī)器人頁(yè)面,點(diǎn)擊右上角的購(gòu)買問答機(jī)器人,進(jìn)入問答機(jī)器人購(gòu)買頁(yè)面。https://console.huaweicloud.com/cbs/?region=cn-north-4#/home/qa-robot
分別輸入問答機(jī)器人名稱,選擇試用的計(jì)費(fèi)模式,并點(diǎn)擊立即購(gòu)買完成支付,即完成試用專業(yè)版機(jī)器人創(chuàng)建。
?
問答機(jī)器人創(chuàng)建成功后,返回對(duì)話機(jī)器人服務(wù)主頁(yè)面,等待機(jī)器人創(chuàng)建成功后,點(diǎn)擊“機(jī)器人名稱”進(jìn)入機(jī)器人,左側(cè)的標(biāo)簽欄中會(huì)有一項(xiàng)技能管理。
創(chuàng)建詞典:
添加垃圾類型詞典,進(jìn)入對(duì)話機(jī)器人服務(wù),點(diǎn)擊進(jìn)入相應(yīng)的機(jī)器人,點(diǎn)擊“技能平臺(tái)”,再點(diǎn)擊“實(shí)體管理”按鈕,按照下圖指導(dǎo)添加垃圾類型詞典:https://console.huaweicloud.com/cbs/?region=cn-north-4#/home/qa-robot
詞典標(biāo)識(shí):rubbish
詞典名稱:垃圾物品
點(diǎn)擊“確認(rèn)”按鈕,創(chuàng)建該詞典,并進(jìn)入“編輯”頁(yè)面。
導(dǎo)入詞條
點(diǎn)擊頁(yè)面上的“導(dǎo)入”按鈕,然后點(diǎn)擊“添加文件”按鈕,上傳本地文件夾下的rubbish_dict.txt文件,導(dǎo)入模式選“追加”,最后點(diǎn)擊“確定”按鈕,即可完成垃圾物品詞典詞條導(dǎo)入。如下圖所示:
技能配置:
本節(jié)將添加語(yǔ)料并標(biāo)注,配置機(jī)器人的“垃圾分類”技能。
點(diǎn)擊此鏈接,https://console.huaweicloud.com/cbs/?region=cn-north-4#/home/qa-robot。進(jìn)入對(duì)話機(jī)器人服務(wù)的“技能管理”,新建垃圾分類技能并進(jìn)行技能配置。
創(chuàng)建技能
點(diǎn)擊“添加技能”按鈕,選擇“多輪對(duì)話技能”,點(diǎn)擊下一步,輸入技能名稱:垃圾分類,如下圖所示:
創(chuàng)建意圖:
技能創(chuàng)建完成后,點(diǎn)擊進(jìn)入“垃圾分類”技能,在意圖列表中點(diǎn)擊“創(chuàng)建”按鈕,如下圖指導(dǎo)填寫:
意圖標(biāo)識(shí):query_rubbish_type
意圖名稱:判斷垃圾種類
然后點(diǎn)擊“確認(rèn)并繼續(xù)設(shè)置”按鈕,繼續(xù)配置該意圖。
添加用戶問法語(yǔ)料
進(jìn)入“判斷垃圾種類”意圖的“用戶問法”,點(diǎn)擊“用戶問法語(yǔ)料”輸入框下方的藍(lán)色字體“批量添加用戶問法語(yǔ)料”,復(fù)制下方的語(yǔ)料至彈出對(duì)話框,點(diǎn)擊“確認(rèn)”完成用戶問法預(yù)料導(dǎo)入。
書怎么處理
書是什么垃圾
其他垃圾包括牙簽嗎
其他垃圾里有護(hù)手霜
衛(wèi)生紙如何回收
衛(wèi)生紙屬于哪種垃圾
廚余垃圾包括蘋果皮嗎
廚余垃圾里有土豆皮嗎
可樂瓶應(yīng)當(dāng)怎樣處理
可回收垃圾包括鐵皮嗎
?
語(yǔ)料添加完之后,滑動(dòng)頁(yè)面到最下方,點(diǎn)擊“保存”??梢缘玫饺缦陆Y(jié)果:
添加槽位
往下滑動(dòng)頁(yè)面,找到“槽位管理”頁(yè)面,創(chuàng)建槽位:rubbish(垃圾類別),然后點(diǎn)擊“添加槽位”按鈕,按照如下指導(dǎo),添加rubbish_goods槽位:
關(guān)聯(lián)槽位:不關(guān)聯(lián)
槽位標(biāo)識(shí):rubbish_goods
槽位名稱:垃圾物品
是否必須:是
追問輪數(shù):1
輸入框:你說的能再具體點(diǎn)嗎?
詞典選擇:rubbish
答案候選:不勾選
然后點(diǎn)擊“確定”按鈕。槽位添加完成后,滑動(dòng)頁(yè)面到最下方,點(diǎn)擊“保存”。
語(yǔ)料標(biāo)注:
往上滑動(dòng)頁(yè)面,回到“用戶問法”,對(duì)“用戶問法語(yǔ)料”列表中的語(yǔ)料進(jìn)行標(biāo)注。
選中關(guān)鍵詞,然后使用槽位對(duì)關(guān)鍵詞標(biāo)注。
標(biāo)注完成后,如下圖所示:
添加用戶問法模板
點(diǎn)擊“用戶問法”中的“用戶問法模板”頁(yè)面中添加模板。
點(diǎn)擊“添加模板”按鈕。模板內(nèi)容如下圖所示,在相應(yīng)位置點(diǎn)擊下方槽位名稱插入相應(yīng)槽位。完成配置后用戶即可使用模板的問法與機(jī)器人進(jìn)行對(duì)話。
添加模板:
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-710286.html
問法模板添加完成后,滑動(dòng)頁(yè)面到最下方,點(diǎn)擊“保存”。
配置對(duì)話流程
點(diǎn)擊“配置對(duì)話流程”,完成復(fù)雜的對(duì)話邏輯配置。
從左側(cè)節(jié)點(diǎn)欄拖拽一個(gè)“條件判斷”節(jié)點(diǎn)到“對(duì)話開始”節(jié)點(diǎn)下方,并連接起來(lái)兩個(gè)點(diǎn)。
點(diǎn)擊“條件判斷”,完成如下圖所示的設(shè)置:
再?gòu)淖髠?cè)節(jié)點(diǎn)欄拖拽一個(gè)“信息收集”節(jié)點(diǎn)到“條件判斷”節(jié)點(diǎn)下方,并連接起來(lái)兩個(gè)節(jié)點(diǎn),如下圖所示:
函數(shù)配置可參考此鏈接中的第六章節(jié):
https://codelabs.developer.huaweicloud.com/codelabs/samples/039d02c2d9af4d3eba24b652675976f9
函數(shù)參考代碼如下:
#!/usr/bin/env python # -*- encoding: utf-8 -*- # @Version : Python 3.6 import json import requests # 定義一個(gè)垃圾類型的處理建議詞典 rubbish_info = { 0: "分類投放可回收物時(shí)應(yīng)保持清潔干燥,避免污染,輕投輕放;其中廢紙盡量平整;立體包裝物請(qǐng)清空內(nèi)容物,清潔后壓扁投放;有尖銳邊角的,應(yīng)包裹后投放。", 1: "充電電池、紐扣電池、蓄電池投放時(shí)應(yīng)注意輕放;油漆桶、殺蟲劑如有殘留請(qǐng)密閉后投放;熒光燈、節(jié)能燈易破損連帶包裝或包裹后投放;廢藥品及其包裝應(yīng)一并投放進(jìn)垃圾桶中。", 2: "有包裝物的廚余垃圾應(yīng)取出后分類投放;大塊骨頭和椰子殼、榴蓮殼等不易生化降解,作為干垃圾進(jìn)行投放;純液體(如牛奶等)食物垃圾可直接倒入下水口;其余應(yīng)瀝干水分后再投放進(jìn)廚余垃圾桶。", 3: "干垃圾應(yīng)盡量瀝干水分,投入干垃圾容器內(nèi)。", } # 調(diào)用垃圾分類API def get_response(word, mode=1): """ 調(diào)用天行API接口 獲取垃圾分類信息 :param word: 需要查詢的垃圾物品 :return: 返回改垃圾物品的分類信息 """ key = "替換成apikey" # 可瀏覽https://www.tianapi.com/注冊(cè)獲取apikey url = "http://api.tianapi.com/lajifenlei/index" data = { "key": key, "word": word, "mode": mode, } headers = {'Content-type': 'application/x-www-form-urlencoded'} res = requests.post(url, data=data, headers=headers, verify=False) return res.json() # 函數(shù)入口 def handler(event, context): """ """ slot_temp = json.dumps(event, ensure_ascii=False) slot_info = json.loads(slot_temp) logg = context.getLogger() logg.info(slot_temp) # 獲取槽位信息,即槽位取到的值 word = slot_info.get("goods", None) result = { "content": "我不知道這是什么,換個(gè)垃圾物品吧~" } if word: res = get_response(word) # 判斷API響應(yīng)碼 if res['code'] != 200: result["content"] = "數(shù)據(jù)源資源不足!" return json.dumps(result, ensure_ascii=False) all_data_list = res.get("newslist", [{}]) filter_data_list = list(filter(lambda x: x.get("name", "") == word, all_data_list)) if filter_data_list: _type = filter_data_list[0].get("type", 4) rubbish_result = "" logg.info(word) # 根據(jù)垃圾類型拼接返回值 if _type == 0: rubbish_result = "{}是可回收垃圾。投放建議:{}".format(word, rubbish_info[_type]) elif _type == 1: rubbish_result = "{}是有害垃圾。投放建議:{}".format(word, rubbish_info[_type]) elif _type == 2: rubbish_result = "{}是廚余垃圾(即濕垃圾)。投放建議:{}".format(word, rubbish_info[_type]) elif _type == 3: rubbish_result = "{}是其他垃圾(即干垃圾)。投放建議:{}".format(word, rubbish_info[_type]) else: pass if rubbish_result: result["content"] = rubbish_result logg.info(json.dumps(result, ensure_ascii=False)) return json.dumps(result, ensure_ascii=False)
模型訓(xùn)練發(fā)布
在“垃圾分類技能”頁(yè)面中,進(jìn)入“發(fā)布測(cè)試”頁(yè)面,點(diǎn)擊“訓(xùn)練模型”按鈕,勾選“用戶常用問法”,技能閾值默認(rèn)即可。點(diǎn)擊“確定”開始模型訓(xùn)練,訓(xùn)練時(shí)長(zhǎng)大概3分鐘。
模型訓(xùn)練完成后,點(diǎn)擊“線上發(fā)布”按鈕發(fā)布模型。
技能體驗(yàn):
模型發(fā)布完成后,回到“技能管理”頁(yè)面,點(diǎn)擊右上角“對(duì)話體驗(yàn)”按鈕
下圖是一組對(duì)話樣例:
4 參考文獻(xiàn)
https://support.huaweicloud.com/usermanual-cbs/cbs_01_0029.html
https://console.huaweicloud.com/cbs/?region=cn-north-4#/cbs/management/skills
?
5 體驗(yàn)插件的魅力
華為云devkit已上線
https://developer.huaweicloud.com/develop/toolkit.html
點(diǎn)擊關(guān)注,第一時(shí)間了解華為云新鮮技術(shù)~文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-710286.html
?
到了這里,關(guān)于超詳細(xì)API插件使用教程,教你開發(fā)AI垃圾分類機(jī)器人的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!