2016-09-27 1 views
8

Ich habe folgende Probleme. Ich habe mehrere Punkte in der Konversation, wo ich "freien" Text erfassen muss. Bsp: Was sind deine Gedanken über Xyz? Warum willst du xyz? ... Sie sind offene Fragen und der Benutzer kann antworten, was sie wollen.wit.ai erfassen freien Text von was auch immer der Benutzer Ihnen gibt

Wie kann ich dies aktivieren? weil ich verschiedene Kombinationen ausprobiert habe und der Bot entweder einige Fragen wiederholt oder einige überspringt?

Danke

+1

Würde auch interessiert sein. –

Antwort

2

ich das gleiche Problem bekam und landete es clientseitige Lösung durch einen bestimmten Kontext zu setzen. Ich habe einen älteren Bot, der nicht über die "Stories" -Schnittstelle verfügt. Diese Lösung trifft also möglicherweise nicht auf Ihren Fall zu, aber vielleicht ist es hilfreich.

  1. Wenn der Bot eine offene Frage sendet, sollte er auch einen speziellen Kontext, d. H. Open_question_xyz oder etwas Ähnliches, setzen und ihn an die Client-App zurücksenden.
  2. Wenn die Client-Anwendung den Kontext erhält, speichern Sie ihn in einigen Variablen.
  3. Bevor die nächste Benutzereingabe verarbeitet wird, überprüft Ihre Anwendung zuerst, ob die Variable open_context_xyz gesetzt ist. Wenn sie die Abfrage nicht direkt an wit.ai sendet, erfasst sie den unformatierten Text und setzt einen Kontext wie resolved_open_question_xyz So weiß der Bot, wo er die Konversation aufheben soll.
3

Wenn Sie mit dem converse api Sie können versuchen, eine entsprechende Kontext-Eigenschaft festlegen, bevor Sie die Antwort zurückschicken in Ihrer Geschichte den aktualisierten Kontext wit.ai und dann verwenden.

Zum Beispiel habe ich eine Test Geschichte für Sie (die App ist leer - nur die ganze Sache von Grund auf neu erstellt): story screenshot

Als Ergebnis konnte ich während des Gesprächs in diesem Punkt kommen: conversation

Also, was Sie tun müssen, ist eine Aktion wie captureUserInput in meinem Beispiel zu definieren und instruieren Ihren bot für einen bestimmten Schlüssel in Ihrem Kontext zu erwarten. In meinem Beispiel wird es durch den Schlüssel user_input dargestellt.

In Ihrer Client-App müssen Sie entsprechend auf eine entsprechende Aktion (captureUserInput in meinem Beispiel) reagieren. Wenn Sie den POST an wit.ai converse API senden, setzen Sie den entsprechenden Schlüssel. Zum Beispiel:

$ 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' 

Der wit.ai Motor sollte Ihren Kontext erfassen und berücksichtigen, wenn sie wieder zu Ihnen (wie This is what you said: {user_input} in meinem Beispiel)

Ich hoffe, reagiert diese für Sie arbeitet. Ich stütze meine Befunde auf folgendes: https://wit.ai/docs/quickstart - siehe die step 4 und die wit.ai reference für die converse api.

Verwandte Themen