Linux中國

用 Recast.AI 創建一個聊天機器人

據 Gartner 2018 年 2 月的報告,「到 2020 年,25% 的客戶服務和支持業務將在參與渠道中整合虛擬客戶助理(VCA)或聊天機器人技術,而 2017 年只有不到 2%。」鑒於此,讀者會發現本教程對理解開源的 Recast.AI 機器人創建平台的工作原理很有幫助。

聊天機器人,包括基於語音的以及其他技術的,已經實際使用了有一陣子了。從讓用戶參與謀殺解密遊戲,到幫助完成房地產交易和醫療診斷,聊天機器人已經跨越了多個領域。

有許多平台可以讓用戶創建和部署機器人。Recast.AI(在被 SAP 收購之後現在是 SAP Conversational AI)是其中的先行者。

酷炫的界面、協作性以及它所提供的分析工具,讓它成為流行的選擇。

正如 Recast 官方網站說的,「它是一個創建、訓練、部署和監控智能機器人的終極協作平台。」

創建一個基礎的機器人

讓我們來看看如何在 Recast 創建一個基礎的機器人。

  1. https://cai.tools.sap 創建一個賬戶。註冊可以使用電子郵箱或者 Github 賬戶。
  2. 在你登錄之後,你會進入儀錶板。點擊右上角 「+」 新建機器人圖標新建一個機器人。
  3. 在下一個界面,你會看到一系列可選的預定義技能。暫時選擇 問候 Greetings 」(圖 1)。這個機器人已經經過訓練,能夠理解基本的問候。 圖 1: 設置機器人屬性
  4. 給機器人提供一個名字。目前來說,你可以讓機器人講一些笑話,所以我們將它命名為 Joke Bot,選擇英語作為默認語言。
  5. 因為你不會處理任何敏感信息,所以在數據策略下選擇非個人數據。然後選擇公共機器人選項並點擊創建一個機器人。

所以這就是你在 Recast 平台創建的機器人。

開發一個機器人的五個階段

用 Recast 官方博客的話說,在機器人的生命中有五個階段。

  • 訓練——教授機器人需要理解的內容
  • 構建——使用機器人構建工具創建你的對話流
  • 編寫代碼——將機器人連接到外部 API 或資料庫
  • 連接——將機器人發布到一個或多個消息平台
  • 監控——訓練機器人讓它更敏銳,並且了解其使用情況

通過意圖訓練機器人

你可以在儀錶板上看到搜索、分叉或創建一個 意圖 intent 的選項。「『意圖』是一系列含義相同但構造不同的表達。『意圖』是你的機器人理解能力的核心。每個『意圖』代表了機器人可以理解的一種想法。」(摘自 Recast.AI 網站)

圖 2: 機器人面板

就像先前定的,你需要一個講笑話的機器人。所以底線是這個機器人可以理解用戶在要求它講笑話,它不應該在用戶僅僅說了「Hi」的情況下回復一個笑話——這可不妙。把用戶可能說的話進行分組,比如:

Tell me a joke.(給我講個笑話。)
Tell me a funny fact.(告訴我一個有趣的事實。)
Can you crack a joke?(你可以講個笑話嗎?)
What』s funny today?(今天有什麼有趣的?)

……

在繼續從頭開始創建意圖之前,讓我們來看看搜索/分叉選項。在搜索框輸入 「Joke」(圖 3)。系統給出了全球的 Recast 用戶創建的公開的意圖清單,這就是為什麼說 Recast 天然就是協作性質的。所以其實沒有必要從頭開始創建所有的意圖,可以在已經創建的基礎上進行構建。這就降低了訓練具有常見意圖的機器人所需的投入。

圖 3: 搜索一個意圖

  • 選擇列表中的第一個意圖並將其分叉到機器人上。
  • 點擊 分叉 Fork 按鈕。這個意圖就添加到了機器人中(圖 4)。 圖 4: @joke 意圖
  • 點擊意圖 @joke,會顯示出這個意圖中已經存在的 表達 expression 列表(圖 5)。 圖 5: 預定義表達
  • 向其添加更多的表達(圖 6)。 圖 6: 建議的表達

添加了一些表達之後,機器人會給出一些建議,像圖 7 展示的那樣。選擇幾個將它們添加到意圖中。你還可以根據機器人的上下文,標記你自己的自定義實體來檢測關鍵詞。

圖 7: 建議的表達

技能

技能 skill 是一塊有明確目的的對話,機器人可以據此運行並達到目標。它可以像打招呼那麼簡單,也可以更複雜,比如基於用戶提供的信息提供電影建議。

技能需要的不能只是一對問答,它需要多次交互。比如考慮一個幫你學習匯率的機器人。它一開始會問原貨幣,然後是目標貨幣,最後給出準確回應。結合技能可以創建複雜的對話流。

下面是如何給笑話機器人創建技能:

  • 去到 構建(Build) 頁。點擊 「+」 圖標創建技能。
  • 給技能命名 「Joke」(圖 8) 圖 8: 技能面板
  • 創建之後,點擊這個技能。你會看到四個標籤。 讀我 Read me 觸發器 Triggers 需求 Requirements 動作 Actions
  • 切換到需求頁面。只有在笑話意圖存在的時候,你才應該存儲信息。所以,像圖 9 那樣添加一個需求。 圖 9: 添加一個觸發器

由於這個簡單的使用範例,你不需要在需求選項卡中考慮任何特定的需求,但可以考慮只有當某些關鍵字或實體出現時才需要觸發響應的情況——在這種情況下你需要需求。

需求是某個技能執行動作之前需要檢索的意圖或實體。需求是對話中機器人可以使用的重要信息。例如用戶的姓名或位置。一旦一個需求完成,相關的值就會存儲在機器人的內存中,供整個對話使用。

現在讓我們轉到動作頁面設置 回應 response (參見圖 10)。

圖 10: 添加動作

點擊添加 新消息組 new message group 。然後選擇 發送消息 Send message 並添加一條文本消息,在這個例子中可以是任何笑話。當然,你肯定不想讓你的機器人每次都說一樣的笑話,你可以添加多條消息,每次從中隨機選擇一條。

圖 11: 添加文本消息

頻道集成

一個成功的機器人還依賴於它的易得性。Recast 有不少的內置消息頻道集成,如 Skype for Business、Kik Messenger、Telegram、Line、Facebook Messenger、Slack、Alexa 等等。除此之外,Recast 還提供了 SDK 用於開發自定義的頻道。

此外,Recast 還提供一個可立即使用的網頁聊天(在連接頁面中)。你可以自定義顏色主題、標題、機器人頭像等。它給你提供了一個可以添加到頁面的腳本標籤。你的界面現在就可以使用了(圖 12)。

圖 12: 設置網路聊天

網頁聊天的代碼是開源的,開發者可以更方便地定製外觀、標準回應類型等等。面板提供了如何將機器人部署到各種頻道的逐步過程說明。這個笑話機器人部署在 Telegram 和網頁聊天上,就像圖 13 展示的那樣。

圖 13: 網頁聊天部署

圖 14: Telegram 中開發的機器人

還有更多

Recast 支持多語言,創建機器人的時候選擇一個語言作為基礎,但之後你有選項可以添加更多你想要的語言。

圖 15: 多語言機器人

這裡的例子是一個簡單的靜態笑話機器人,實際使用中可能需要更多的和不同系統的交互。Recast 有 Web 鉤子功能,用戶可以連接到不同的系統來獲取回應。同時它還有詳細的 API 文檔來幫助使用平台的每個獨立功能。

至於分析,Recast 有一個監控面板,幫助你了解機器人的準確度以及更加深入地訓練機器人。

via: https://opensourceforu.com/2019/11/creating-a-chat-bot-with-recast-ai/

作者:Athira Lekshmi C.V 選題:lujun9972 譯者:alim0x 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國