
Teilen Sie:
Kelly J. Andrews ist eine Entwicklerin, die sich für Nexmo einsetzt. Sie bastelt seit über 30 Jahren an Computern und verwendete BASIC zum ersten Mal im Alter von 5 Jahren.
Erst als er 1997 seine erste Webseite erstellte und JavaScript zum ersten Mal ausprobierte, fand er seine wahre Berufung. Kelly kämpft jetzt für JavaScript, testbaren Code und schnelle Lieferung.
Er singt Karaoke, zaubert oder feuert die Cubs und die Fighting Irish an.
Verwendung von Dialogflow mit Firebase und der Vonage Messages Sandbox
Lesedauer: 8 Minuten
Verwendung von Dialogflow einen Chatbot für die Interaktion mit Ihren Kunden zu erstellen, ist eine großartige Möglichkeit, um eingehende Anfragen wie Reservierungen, Bankanfragen, häufig gestellte Fragen (FAQs) und ersten Support zu bearbeiten. Wenn Sie Dialogflow mit Firebase und Vonage Messages APIkombiniert, wird es richtig heiß.
Voraussetzungen
In diesem Lernprogramm verbinden Sie einen Dialogflow-Agenten mit der Vonage Messages API unter Verwendung von Firebase. Wenn Sie fertig sind, können Sie eine Nachricht im Facebook Messenger an den Dialogflow-Agenten senden und eine Antwort basierend auf den Regeln des Agenten erhalten.
Stellen Sie sicher, dass Sie diese haben:
Vonage API-Konto
Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.
In diesem Lernprogramm wird auch eine virtuelle Telefonnummer verwendet. Um eine zu erwerben, gehen Sie zu Rufnummern > Rufnummern kaufen und suchen Sie nach einer Nummer, die Ihren Anforderungen entspricht.
Erstellen einer Firebase-Anwendung
Wenn Sie zum ersten Mal ein Firebase-Projekt einrichten, empfehle ich Ihnen, sich mit dem Google Firebase-Tutorial "Erste Schritte durchzuarbeiten, um sich an die Umgebung zu gewöhnen. Wenn Sie mit Firebase vertraut sind oder sich abenteuerlustig fühlen, ist der erste Schritt, ein neues Firebase-Projekt zu erstellen. Geben Sie diesem Projekt einen einprägsamen Namen.
Create Firebase Project
Sobald Sie den Erstellungsprozess abgeschlossen haben (weniger als 5 Minuten), richten Sie diese beiden Elemente im Dashboard Ihres Projekts ein:
Upgrade auf Blaze Pay-As-You-Go Sie können dies unter Einstellungen -> Nutzung und Abrechnung -> Details & Einstellungen -> Plan ändern finden. Firebase benötigt Blaze, damit die Integrationen von Drittanbietern funktionieren.
Wählen Sie einen Ressourcenstandort Dies finden Sie unter Einstellungen -> Projekteinstellungen -> Allgemein
Sobald diese Einstellungen vorgenommen wurden, können Sie den Dialogflow-Agenten einrichten und ihn mit dem neuen Firebase/GCP-Projekt verknüpfen.
Dialogflow-Agent einrichten
Nun sind Sie bereit, einen neuen Dialogflow-Agenten zu erstellen - den Chatbot, mit dem Sie später interagieren werden. Dialogflow verwendet die Verarbeitung natürlicher Sprache, um die Absichten des Benutzers auf der Grundlage seiner Eingaben oder seiner Sprache zu ermitteln und eine Aktion auf der Grundlage dieser Absichten durchzuführen.
Als Nächstes importieren Sie einen von Google bereitgestellten "Prebuilt Agent", um Ihnen den Einstieg zu erleichtern. Wenn Sie neu in DialogFlow sind, müssen Sie einen leeren Agenten auf der Landing Page erstellen.
Create Blank Dialogflow Agent
Sobald Sie einen Agenten haben, können Sie die "Vorgefertigten Agenten" aus dem linken Menü auswählen. Es werden Ihnen viele verschiedene Arten von Agenten präsentiert, die Ihnen helfen können, zu lernen, wie Sie Ihren Chatbot erstellen. Für dieses Beispiel habe ich "Ostereier" gewählt.
Prebuilt Agents
Importieren Sie einen Agenten und warten Sie, bis der Erstellungsprozess abgeschlossen ist. Holen Sie sich nach Abschluss die Anmeldeinformationen für das Dienstkonto.
Download Service Account-Schlüssel
Navigieren Sie zum GCP IAM & Admin-Dienst für Dienstkonten. Stellen Sie sicher, dass Sie das richtige Projekt auswählen, das Sie bereits verwendet haben.
Sie sollten einen Service Account sehen, der ungefähr so aussieht dialogflow@myexampleproject.iam.gserviceaccount.com. Klicken Sie auf die Punkte auf der rechten Seite und wählen Sie Create Key und wählen Sie dann JSON aus den Optionen aus. Dieser Vorgang erzeugt und lädt eine JSON Datei. Speichern Sie diese Datei für später.
Funktionen vor Ort aufbauen
Sie haben jetzt ein Firebase-Projekt und einen Dialogflow-Agenten, die einsatzbereit sind. Die beiden Systeme müssen miteinander und mit den APIs von Vonage kommunizieren. Dazu brauchen Sie ein wenig Code, damit die Dinge funktionieren.
Die Firebase CLI verfügt über einige hilfreiche Tools, die Ihnen den Einstieg erleichtern. Stellen Sie sicher, dass Sie die neueste Version haben und führen Sie Folgendes aus:
Dieser Befehl erstellt das Projekt in Ihrem Stammverzeichnis und fordert Sie auf, es mit einem bereits bestehenden Projekt zu verbinden. Nach ein paar Aufforderungen wird der Befehl npm install um alle Anforderungen zu installieren. Sobald dies abgeschlossen ist, navigieren Sie zum Ordner "functions" und verwenden diesen Befehl, um die anderen benötigten Pakete zu installieren:
Zu diesem Zeitpunkt sollten Sie auch die Service Account JSON Datei in das Verzeichnis functions Verzeichnis verschieben. Wenn Sie das getan haben, fügen Sie sie auch in Ihre .gitignore Datei hinzuzufügen.
Der Kodex
Im Inneren des functions Verzeichnisses befindet sich index.js. Dort finden Sie einen Beispielcode, den Sie löschen und durch den folgenden Code ersetzen können, um eine Nachricht an die Vonage Messages Sandbox zu senden. Stellen Sie sicher, dass Sie Ihren Vonage API-Schlüssel und Ihr Geheimnis zur Hand haben.
const functions = require('firebase-functions');
const axios = require('axios');
// the service account JSON file downloaded earlier - make sure this is named properly
const serviceAccount = require('./service_account.json');
const Dialogflow = require('@google-cloud/Dialogflow');
// This method takes the TO_ID, FROM_ID, MSG from the webhook defined later
// DialogFlow responses will be sent using this function
// You will need to get your API Key and Secret from the Vonage Dashboard.
function sendMessage(TO_ID, FROM_ID, MSG) {
return axios.post('https://messages-sandbox.nexmo.com/v0.1/messages', {
"from": { "type": 'messenger', "id": FROM_ID },
"to": { "type": 'messenger', "id": TO_ID },
"message": {
'content': {
'type': 'text',
'text': MSG
}
}
}, {
auth: {
username: 'API_KEY',
password: 'API_SECRET'
}
})
}Die nächste Funktion ist das Gateway zwischen Firebase und Dialogflow. Die von Vonage eingehende Nachricht wird an den Dialogflow-Agenten gesendet, um den Zweck der Nachricht zu ermitteln. Sobald die Absicht bestimmt ist, gibt Dialogflow eine Nachricht zur Weiterleitung an den Kunden zurück.
async function DialogflowGateway(text, sessionId) {
const sessionClient = new Dialogflow.SessionsClient({ credentials: serviceAccount });
const sessionPath = sessionClient.projectAgentSessionPath('YOUR-GOOGLE-PROJECT', sessionId);
const request = {
session: sessionPath,
queryInput: {
text: {
text: text,
languageCode: 'en-US',
},
},
};
console.log(request)
return sessionClient.detectIntent(request);
}Die Vonage Messages Sandbox verwendet einen eingehenden Webhook, um die Nachrichten über eine POST-Methode an Firebase zu empfangen.
exports.webhook = functions.https.onRequest(async (req, res) => {
const { message, from, to } = req.body;
try {
// the message from the user is sent to Dialogflow, and a response is returned
const response = await DialogflowGateway(message.content.text, from.id);
// the response from Dialogflow is sent back to the user through Vonage
await sendMessage(from.id, to.id, response[0].queryResult.fulfillmentText);
} catch (error) {
console.error(error);
}
res.sendStatus(200);
});
Diese drei Funktionen sollten sich in der Datei index.js Datei enthalten und gespeichert sein. Jetzt müssen Sie diese Funktionen nur noch einsetzen.
Funktionen bereitstellen
Verwenden Sie die Firebase-Befehlszeilenschnittstelle und stellen Sie die Funktionen mit diesem Befehl in Firebase bereit:
Bei erfolgreicher Bereitstellung erhalten Sie den Webhook, der für die Vonage-Nachrichten-Sandbox Inbound Webhook.
Sobald Sie den Webhook aktualisiert haben, können Sie ihn im Facebook Messenger testen.
Facebook Messenger Example
Fühlen Sie sich frei, Absichten und Aktionen in Dialogflow zu ändern, um zu sehen, wie es in Ihrer Kommunikationsstrategie funktionieren kann.
Wenn Sie eine vollständige Version dieses und anderer Google Cloud-Beispiele sehen möchten, finden Sie sie hier - https://github.com/nexmo-community/google-cloud-sample-code. Wenn Sie Fragen oder Wünsche für andere Beispiele mit Google Cloud, Dialogflow oder Firebase haben, öffnen Sie einen Pull-Request oder schicken Sie mir eine Nachricht auf Twitter.
Teilen Sie:
Kelly J. Andrews ist eine Entwicklerin, die sich für Nexmo einsetzt. Sie bastelt seit über 30 Jahren an Computern und verwendete BASIC zum ersten Mal im Alter von 5 Jahren.
Erst als er 1997 seine erste Webseite erstellte und JavaScript zum ersten Mal ausprobierte, fand er seine wahre Berufung. Kelly kämpft jetzt für JavaScript, testbaren Code und schnelle Lieferung.
Er singt Karaoke, zaubert oder feuert die Cubs und die Fighting Irish an.
