用 Recast.AI 創建一個聊天機器人
據 Gartner 2018 年 2 月的報告,「到 2020 年,25% 的客戶服務和支持業務將在參與渠道中整合虛擬客戶助理(VCA)或聊天機器人技術,而 2017 年只有不到 2%。」鑒於此,讀者會發現本教程對理解開源的 Recast.AI 機器人創建平台的工作原理很有幫助。
聊天機器人,包括基於語音的以及其他技術的,已經實際使用了有一陣子了。從讓用戶參與謀殺解密遊戲,到幫助完成房地產交易和醫療診斷,聊天機器人已經跨越了多個領域。
有許多平台可以讓用戶創建和部署機器人。Recast.AI(在被 SAP 收購之後現在是 SAP Conversational AI)是其中的先行者。
酷炫的界面、協作性以及它所提供的分析工具,讓它成為流行的選擇。
正如 Recast 官方網站說的,「它是一個創建、訓練、部署和監控智能機器人的終極協作平台。」
創建一個基礎的機器人
讓我們來看看如何在 Recast 創建一個基礎的機器人。
- 在 https://cai.tools.sap 創建一個賬戶。註冊可以使用電子郵箱或者 Github 賬戶。
- 在你登錄之後,你會進入儀錶板。點擊右上角 「+」 新建機器人圖標新建一個機器人。
- 在下一個界面,你會看到一系列可選的預定義技能。暫時選擇 問候 」(圖 1)。這個機器人已經經過訓練,能夠理解基本的問候。
- 給機器人提供一個名字。目前來說,你可以讓機器人講一些笑話,所以我們將它命名為 Joke Bot,選擇英語作為默認語言。
- 因為你不會處理任何敏感信息,所以在數據策略下選擇非個人數據。然後選擇公共機器人選項並點擊創建一個機器人。
所以這就是你在 Recast 平台創建的機器人。
開發一個機器人的五個階段
用 Recast 官方博客的話說,在機器人的生命中有五個階段。
- 訓練——教授機器人需要理解的內容
- 構建——使用機器人構建工具創建你的對話流
- 編寫代碼——將機器人連接到外部 API 或資料庫
- 連接——將機器人發布到一個或多個消息平台
- 監控——訓練機器人讓它更敏銳,並且了解其使用情況
通過意圖訓練機器人
你可以在儀錶板上看到搜索、分叉或創建一個 意圖 的選項。「『意圖』是一系列含義相同但構造不同的表達。『意圖』是你的機器人理解能力的核心。每個『意圖』代表了機器人可以理解的一種想法。」(摘自 Recast.AI 網站)
就像先前定的,你需要一個講笑話的機器人。所以底線是這個機器人可以理解用戶在要求它講笑話,它不應該在用戶僅僅說了「Hi」的情況下回復一個笑話——這可不妙。把用戶可能說的話進行分組,比如:
Tell me a joke.(給我講個笑話。)
Tell me a funny fact.(告訴我一個有趣的事實。)
Can you crack a joke?(你可以講個笑話嗎?)
What』s funny today?(今天有什麼有趣的?)
……
在繼續從頭開始創建意圖之前,讓我們來看看搜索/分叉選項。在搜索框輸入 「Joke」(圖 3)。系統給出了全球的 Recast 用戶創建的公開的意圖清單,這就是為什麼說 Recast 天然就是協作性質的。所以其實沒有必要從頭開始創建所有的意圖,可以在已經創建的基礎上進行構建。這就降低了訓練具有常見意圖的機器人所需的投入。
- 選擇列表中的第一個意圖並將其分叉到機器人上。
- 點擊 分叉 按鈕。這個意圖就添加到了機器人中(圖 4)。
- 點擊意圖 @joke,會顯示出這個意圖中已經存在的 表達 列表(圖 5)。
- 向其添加更多的表達(圖 6)。
添加了一些表達之後,機器人會給出一些建議,像圖 7 展示的那樣。選擇幾個將它們添加到意圖中。你還可以根據機器人的上下文,標記你自己的自定義實體來檢測關鍵詞。
技能
技能 是一塊有明確目的的對話,機器人可以據此運行並達到目標。它可以像打招呼那麼簡單,也可以更複雜,比如基於用戶提供的信息提供電影建議。
技能需要的不能只是一對問答,它需要多次交互。比如考慮一個幫你學習匯率的機器人。它一開始會問原貨幣,然後是目標貨幣,最後給出準確回應。結合技能可以創建複雜的對話流。
下面是如何給笑話機器人創建技能:
- 去到 構建(Build) 頁。點擊 「+」 圖標創建技能。
- 給技能命名 「Joke」(圖 8)
- 創建之後,點擊這個技能。你會看到四個標籤。 讀我 、 觸發器 、 需求 和 動作 。
- 切換到需求頁面。只有在笑話意圖存在的時候,你才應該存儲信息。所以,像圖 9 那樣添加一個需求。
由於這個簡單的使用範例,你不需要在需求選項卡中考慮任何特定的需求,但可以考慮只有當某些關鍵字或實體出現時才需要觸發響應的情況——在這種情況下你需要需求。
需求是某個技能執行動作之前需要檢索的意圖或實體。需求是對話中機器人可以使用的重要信息。例如用戶的姓名或位置。一旦一個需求完成,相關的值就會存儲在機器人的內存中,供整個對話使用。
現在讓我們轉到動作頁面設置 回應 (參見圖 10)。
點擊添加 新消息組 。然後選擇 發送消息 並添加一條文本消息,在這個例子中可以是任何笑話。當然,你肯定不想讓你的機器人每次都說一樣的笑話,你可以添加多條消息,每次從中隨機選擇一條。
頻道集成
一個成功的機器人還依賴於它的易得性。Recast 有不少的內置消息頻道集成,如 Skype for Business、Kik Messenger、Telegram、Line、Facebook Messenger、Slack、Alexa 等等。除此之外,Recast 還提供了 SDK 用於開發自定義的頻道。
此外,Recast 還提供一個可立即使用的網頁聊天(在連接頁面中)。你可以自定義顏色主題、標題、機器人頭像等。它給你提供了一個可以添加到頁面的腳本標籤。你的界面現在就可以使用了(圖 12)。
網頁聊天的代碼是開源的,開發者可以更方便地定製外觀、標準回應類型等等。面板提供了如何將機器人部署到各種頻道的逐步過程說明。這個笑話機器人部署在 Telegram 和網頁聊天上,就像圖 13 展示的那樣。
還有更多
Recast 支持多語言,創建機器人的時候選擇一個語言作為基礎,但之後你有選項可以添加更多你想要的語言。
這裡的例子是一個簡單的靜態笑話機器人,實際使用中可能需要更多的和不同系統的交互。Recast 有 Web 鉤子功能,用戶可以連接到不同的系統來獲取回應。同時它還有詳細的 API 文檔來幫助使用平台的每個獨立功能。
至於分析,Recast 有一個監控面板,幫助你了解機器人的準確度以及更加深入地訓練機器人。
via: https://opensourceforu.com/2019/11/creating-a-chat-bot-with-recast-ai/
作者:Athira Lekshmi C.V 選題:lujun9972 譯者:alim0x 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive