2016-02-08 41 views
9

我目前使用api.ai來創建代理來執行特定的任務,但是我沒有答案的一個問題是,我可以讓它在聊天時學到一些東西,意思是說我說我的名字是'John Cena '她應該存儲它,然後每當我再次問她時,bot應該回答我的問題。我知道有一種方法可以通過登錄api.ai web並手動添加條目來實現,但它不會有幫助,是否有任何程序化或自動工作?我一直用來練習的文件在github中給出。這裏是工作DEMO如何讓api.ai代理動態地學習一些東西?

回答

4

你基本上需要你的機器人「學習」的事實。有很多不同的方法來實現這一點,但最近最常見的方法是將知識安排到語義「三元組」中,並將知識存儲到一個Graph存儲庫(如Neo4j,Titan,Spark Graph等)中。在你的例子中,「我的名字是約翰塞納」將會翻譯成一個類似「三重奏」(「anubava」,「名字」,「約翰塞納」)。這樣,下次您以anubhava身份登錄並詢問「我的名字是什麼?」時,它會轉化爲Graph搜索,並返回「John Cena」。謹慎地說,實現這一點並不簡單,需要進行大量的微調。欲瞭解更多信息,你可以檢查herehere

最後,最完整的解決方案(我知道的)是服務器端解決方案。如果您希望整個知識庫駐留在您的移動設備中,那麼您可以使用此處的資源作爲靈感,並使用嵌入式數據庫構建您自己的關聯數據存儲庫。

希望這會有所幫助。祝你好運。

1

要存儲和調用用戶的名稱,您需要設置一些具有基本數據持久性功能的webhook。任何數據庫或鍵值存儲都可以正常工作。

這裏的故障:

  1. 用於捕獲用戶名意圖實現網絡掛接完成。 webhook應該存儲名稱以及唯一的標識ID,您應該從前端提供sessionId或在撥打/query時作爲上下文參數。
  2. 爲讀取用戶名的意圖實現webhook履行。 webhook應該按ID查找名稱並返回一個響應,告訴用戶他們的名字。

高級別文檔編寫一個實現網絡掛接在這裏:

https://docs.api.ai/docs/webhook

相關問題