Erstellen Sie Ihren eigenen Chatbot mit Watson Assistant für Facebook Messenger

Watson Assistant (ehemals Watson Conversation) ist die Schnittstelle in natürlicher Sprache von IBM zur Automatisierung der Interaktion mit Ihren Endbenutzern. Ich werde zeigen, wie Sie Watson Assistant in Facebook Messenger integrieren können.

Ich habe meinen Code auf der Glitch-Plattform gehostet, damit er leicht neu gemischt und an Ihre Bedürfnisse angepasst werden kann. Der Chatbot kann je nach Absicht des Benutzers auf den Benutzer antworten.

Watson Assistant ermöglicht wenig logische Integration. Aus diesem Grund brauchen wir einen Mittelsmann zwischen Assistant und Facebook, um komplexere Logik zu handhaben. Im guten Programmierjargon nennen wir diesen Mittelsmann einen Orchestrator. Eine solche Einschränkung zwingt uns zur Trennung von Bedenken, und das ist gut so. Der Assistent konzentriert sich nur auf die Interpretation einer Nachricht, der Orchestrator für die Logikausführung und Messenger für die Nachrichtenübermittlung an unseren Benutzer.

Es sind keine Voraussetzungen erforderlich, um mitzumachen, aber Sie benötigen einige Javascript- und Node-Kenntnisse, wenn Sie in Bezug auf die Funktionen noch einen Schritt weiter gehen möchten (und sollten!).

Was wirst du brauchen:

  1. Mischen Sie den Startercode von https://glitch.com/edit/#!/facebookbotandwatsonassistant neu (oben links im Namen und in der Dropdown-Liste finden Sie die Remix-Schaltfläche).
  2. Ein Facebook-Konto, um eine Facebook-Seite zu erstellen
  3. Eine Facebook-Entwickleranwendung unter https://developers.facebook.com/apps/
  4. Ein IBM Cloud-Konto (kostenlos!) Unter https://console.bluemix.net/

Glitch.com

Mit https://glitch.com können wir unsere Node.js-App problemlos bereitstellen. Es hat einige nette Funktionen: Code-Remix (wie Sie es getan haben), Code-Zusammenarbeit und das Teilen durch die Community sind einige davon.

Der gesamte Code ist verfügbar und kann unter https://glitch.com/edit/#!/facebookbotandwatsonassistant verwendet werden

Der Code erfordert keine Anpassung, außer der .env-Datei, für die Ihre eigenen Umgebungsvariablen erforderlich sind. Sie müssen das Projekt an dieser Stelle neu mischen, um mitarbeiten zu können.

Es sind Verbesserungen am Code möglich, aber der Zweck hier ist, Ihnen das Bild sofort verständlich zu machen.

Mit App.get können wir den Webhook von Facebook mit dem verify_token validieren, das wir sowohl für Facebook als auch für die .env-Datei bereitgestellt haben

Bei der Nachricht jedes Benutzers von Messenger prüfen wir, ob es sich tatsächlich um eine Nachricht handelt. Es gibt verschiedene Arten von Nachrichten (Postback, Anhang). In diesem Tutorial konzentrieren wir uns nur auf die Textversion der Nachricht.

Bei jeder Nachricht bereiten wir eine Nutzlast vor, die wir an das Assistentenobjekt senden (das das SDK Watson.ConversationV1 enthält). Die Antwort dieses Objekts ist die Interpretation der Nachricht des Benutzers (in event.message enthalten) über Watson Assistant. Das Ergebnis (Daten) wird dann über die Funktion receiveMessage an Facebook zurückgesendet

Erstellen einer Facebook-Seite

Sie können auf die Erstellung der Facebook-Seite unter https://www.facebook.com/pages/creation/ zugreifen.

Dies ist die Seite, mit der wir interagieren werden. Um die Kontaktschaltfläche auf Ihrer Seite leichter erreichen zu können, können Sie Messenger über Schaltfläche hinzufügen -> Kontakt zu Ihrer Kategorie hinzufügen

Wenn Sie jetzt mit der Maus über die Schaltfläche "Nachricht senden" fahren, können Sie auf die Schaltfläche "Test" klicken, um über Messenger mit Ihrer Seite zu sprechen.

Erstellung der Facebook-Entwickleranwendung

Greifen Sie unter https://developers.facebook.com/apps/ auf Facebook für Entwickler zu und erstellen Sie eine Anwendung. In unserer Anwendung benötigen wir zwei Produkte: Messenger und Webhooks. Sie können sie Ihrer Anwendung hinzufügen, indem Sie auf die entsprechende Einrichtungsschaltfläche klicken. Das Messenger-Produkt benötigt Zugriff auf Ihre gerade erstellte Seite, um ein Token zu generieren und es unserem Orchestrator zur Verfügung zu stellen.

Wählen Sie in den Messenger-Produkteinstellungen im Abschnitt zur Token-Generierung die zuvor erstellte Seite aus und kopieren Sie das generierte Token.

Wenn Sie zu Ihrem Glitch-Projekt zurückkehren, fügen Sie in die .env-Datei das soeben kopierte page_access_token ein und vergessen Sie nicht, das verify_token mit etwas auszufüllen. Ich habe "Tutorial". Alle Variablen in der .env sollten in Anführungszeichen gesetzt werden!

Webhook der Facebook-Entwickleranwendung

Wenn Sie zu den Messenger-Einstellungen zurückkehren, in die Sie das Seitentoken kopiert haben, wird der Abschnitt "Webhook" darunter angezeigt. Der Webhook verknüpft unsere Orchestrator-App mit unserem Messenger-Bot.

Die Rückruf-URL ist der Link aus Ihrem Glitch-Projekt. Sie können ihn erreichen, indem Sie auf „Live anzeigen“ klicken. Verwenden Sie diesen Link als Rückruf-URL und fügen Sie / webhook hinzu. Wenn Sie dasselbe Bestätigungstoken haben, füllen Sie im zweiten Textfeld "Tutorial" aus.

Stellen Sie sicher, dass Sie auch messages & messaging_postback auswählen, da dies die Felder sind, die wir für unser Tutorial verwenden werden. Wählen Sie auch Ihre erstellte Seite aus und abonnieren Sie sie

Watson-Assistent

Jetzt haben wir den Orchestrator (unsere Node-App), der für die Logik und Facebook zum Empfangen und Senden von Nachrichten zuständig ist. Zeit, Watson Assistant vorzustellen, um die Nachrichten zu interpretieren!

Sobald Sie Ihr IBM Cloud-Konto erstellt haben, erstellen Sie eine Instanz von Watson Assistant https://console.bluemix.net/dashboard/apps/.

Ressource erstellen → Watson-Assistent

Sie können es in Großbritannien oder Deutschland bereitstellen. Wählen Sie Lite und erstellen Sie. Speichern Sie vor dem Starten des Tools die Dienstanmeldeinformationen in Glitch.

Kopieren Sie die URL, den Benutzernamen und das Passwort und fügen Sie den Inhalt in Ihre .env-Datei in Ihr Glitch-Projekt ein. Ihre .env sollte so aussehen

PAGE_ACCESS_TOKEN = "page_access_token" VERIFY_TOKEN = "Tutorial" ASSISTANT_URL = "https://gateway.watsonplatform.net/assistant/api" ASSISTANT_USERNAME = "Benutzername" ASSISTANT_PASSWORD = "Passwort" ASSISTANT_WORKS_WORT

Erstellen Sie den Arbeitsbereich, in dem unser Assistent gehostet wird. Bevor Sie fortfahren, kehren Sie zur Arbeitsbereichsübersicht zurück, damit wir die Arbeitsbereich-ID kopieren können. Sie können es kopieren, nachdem Sie auf die drei Punkte geklickt und die Schaltfläche Details angezeigt haben.

Watson Assistant ist recht einfach zu verstehen. Es gibt 3 Hauptkomponenten

  1. Absichten Absichten sind der Weg, um die Eingaben des Benutzers zu erkennen. Je mehr Beispiele Sie für eine Absicht angeben, desto sicherer kann der Assistent eine Antwort auf die Anfrage eines Benutzers geben.
  2. Entitäten Eine Entität ist ein Teil der Benutzereingaben, mit denen Sie eine andere Antwort auf eine bestimmte Absicht geben können. Nehmen wir ein Beispiel: Züge. Wenn wir einen Bot bauen würden, bei dem ein Benutzer seinen Zugfahrplan anfordert, müsste der Assistent die Abfahrts- und Ankunftsstation in der Benutzeranforderung erkennen. Hierfür könnten Entitäten verwendet werden.
  3. Dialog Dies ist der Spielplatz, auf dem Sie Ihren Dialogbaum erstellen. Ihr Dialog besteht aus mehreren Knoten, die ausgelöst werden, wenn der Assistent über genügend Vertrauen verfügt, um eine bestimmte Absicht mit ihm abzustimmen.

Mit Watson Assistant können wir seit einigen Versionen bereits vorhandene Inhalte integrieren. Verwenden wir dies als Ausgangspunkt. Durchsuchen Sie den Inhaltskatalog und fügen Sie die allgemeine Absicht in den Arbeitsbereich ein. Dieser Inhalt integriert das Erkennen von Grüßen, persönlichen Attributen wie Sprache, aber auch die Aufforderung, beispielsweise mit einem menschlichen Agenten zu sprechen.

Öffnen Sie die Registerkarte "Dialog" und fügen Sie zwei weitere Knoten neben den vorhandenen hinzu. Erstellen wir einen Knoten unterhalb des Begrüßungsknotens und lassen Sie ihn #general_greetings erkennen. Lassen Sie den Bot etwas wie "Hallo!" Antworten. Und ein weiterer Knoten, der #General_Agent_Capabilities erkennt Als Beispielantwort können Sie schreiben: "Ich kann die Absichten hinter Ihrer Anfrage erkennen."

Stellen Sie sicher, dass Glitch noch ausgeführt wird (der Server pausiert nach einigen Minuten, wenn er keine Verwendung feststellt) und testen Sie den Bot auf Facebook! Es sollte angemessen antworten

Dieses Beispiel ist sehr einfach, aber da die Integration jetzt funktioniert, können Sie Ihre gesamte Logik problemlos in den Orchestrator integrieren. Mach weiter und mach etwas großartiges!

Dank dieses Schnellstarts haben Sie die Möglichkeit, Ihrem Rockstar-Chatbot alle Funktionen hinzuzufügen, die Sie benötigen. Die Möglichkeiten sind endlos: Interaktion mit einer Datenbank, einem Zahlungsgateway, Integration von npm librairies, ..

Möchten Sie fortfahren? Hier ist ein größerer Startercode verfügbar: https://github.com/watson-developer-cloud/assistant-simple