2016-09-27 40 views
8

我有以下問題。 我在談話中有幾點需要捕捉「免費」文本。例如:你對xyz有什麼想法?你爲什麼要xyz?...他們是開放的問題,用戶可以回答他們想要的任何問題。wit.ai捕獲任何用戶給你的免費文本

如何啓用此功能?因爲我嘗試了不同的組合,而機器人要麼重複一些問題,要麼跳過一些?

謝謝

+1

也會感興趣。 –

回答

2

我得到了同樣的問題,並最終通過設置一定的範圍內解決它的客戶端。我有一箇舊的機器人沒有「故事」界面,所以這個解決方案可能不適用於你的情況,但也許有一些幫助。

  1. 當機器人發送一個未解決的問題,還應該設置一個特殊的背景,即open_question_xyz或類似的東西,並將其發送回客戶端應用程序。
  2. 當客戶端應用程序收到上下文時,將其保存到某個var。
  3. 在處理下一個用戶輸入之前,您的應用首先檢查open_context_xyz var是否已設置,如果是,則不是直接將查詢發送給wit.ai,而是捕獲原始文本,並設置諸如resolved_open_question_xyz之類的上下文所以機器人知道在哪裏接受對話。
3

如果您使用的是converse API,您可以在將響應發送回wit.ai之前嘗試設置相應的上下文屬性,然後在故事中使用更新後的上下文。

例如,我創建了一個測試的故事給你(應用程序是空的 - 剛剛創建從頭開始整個事情): story screenshot

其結果是,我能夠進入對話過程中這一點: conversation

所以你需要做的是在我的例子來定義像captureUserInput一個動作,並指示機器人,以等待您的上下文中的某些關鍵。在我的例子中,它由user_input鍵代表。

在您的客戶端應用程序中,您需要對相應的操作(在我的示例中爲captureUserInput)做出適當的反應。 當發送POST到wit.ai converse API設置相應的密鑰。例如:

$ curl -XPOST 'https://api.wit.ai/converse?v=20160526&session_id=some_session_id' \ 
    -d '{"user_input":"put what the user responded here"}' \ 
    -H "Content-Type: application/json" \ 
    -H "Accept: application/json" \ 
    -H 'Authorization: Bearer $TOKEN' 

的wit.ai引擎應該捕獲你的背景和考慮到這一點響應還給你(就像在我的例子This is what you said: {user_input}

我希望這會爲你工作的時候。我根據我的發現基於以下內容: https://wit.ai/docs/quickstart - 請參閱step 4 以及針對逆向API的機會reference

相關問題