
Teilen Sie:
Enrico ist ein ehemaliges Mitglied des Vonage-Teams. Er arbeitete als Solutions Engineer und unterstützte das Vertriebsteam mit seinem technischen Fachwissen. Er begeistert sich für die Cloud, Startups und neue Technologien. Er ist der Mitbegründer eines WebRTC-Startups in Italien. Außerhalb der Arbeit reist er gerne und probiert so viele verrückte Gerichte wie möglich.
Video Meeting Scheduling Bot Powered by Vonage AI and Video API
Lesedauer: 6 Minuten
Fernarbeit und virtuelle Zusammenarbeit ermöglichen es Unternehmen, das Kundenerlebnis neu zu gestalten: Videokonferenzen. Videokonferenzen verbessern die Interaktion mit Kunden, indem sie die Kommunikation von Angesicht zu Angesicht ermöglichen, engere Beziehungen fördern und Zusammenarbeit in Echtzeit ermöglichen. Als Webentwickler bin ich immer auf der Suche nach Möglichkeiten, die Benutzerfreundlichkeit zu verbessern, ohne mir zu viel zusätzliche Arbeit aufzubürden.
Deshalb freue ich mich, Ihnen mein neuestes Projekt vorzustellen, einen intelligenten Terminplanungs-Bot, den ich mit der Vonage Video API und Vonage AI Studio. Die Vonage Video API macht es Entwicklern leicht, Videos in ihre Applikationen einzubinden. Sie ermöglicht die Einbettung von interaktiven Videos in Echtzeit und hoher Qualität, Messaging, Screen-Sharing und vieles mehr in Web- und Mobilanwendungen.
Dieser Bot bietet einen enormen Mehrwert für Kunden, verbessert die Benutzererfahrung erheblich und zeigt die leistungsstarken Funktionen der Vonage Video API und AI Studio!
In diesem Blogbeitrag werde ich Ihnen die Entstehung dieses Bots, die Herausforderungen, denen ich mich gegenüber sah, und die Lösungen, die ich gefunden habe, erläutern.
Wenn Sie gleich mit dem Einsatz beginnen möchten, finden Sie den gesamten Code für die Anwendung auf GitHub.
Projekt einrichten
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.
Node und npm
Die Struktur des NodeJS-Servers sieht wie folgt aus:
index.js Datei, in der der Servercode definiert ist. In dieser Datei werden wir die Routen definieren und den Meeting-API-Endpunkt aufrufen.
Eine .env Datei, in der wir die Anmeldedaten für die Authentifizierung bei Vonage einrichten.
Wie man ngrok für Webhook-Tests verwendet
Wenn Sie es nicht haben, installieren Sie ngrok auf Ihrem lokalen Rechner. Führen Sie dann den Befehl zum Starten des Tunnels aus und geben Sie die Portnummer des lokalen Servers an, den Sie freilegen wollen (ngrok http 3000). Ngrok wird eine eindeutige URL generieren, die den externen Zugriff auf Ihren lokalen Server ermöglicht. Wir benötigen sie im nächsten Schritt, wenn wir Webhooks von Vonage AI aufrufen.
So verwenden Sie die Vonage Video API
Mit der Video API von Vonage können Sie interaktive Videokonferenzen in Echtzeit und in hoher Qualität in Ihre Webanwendungen integrieren. Die Video API ist ideal für alle, die mehr Anpassungsmöglichkeiten und Flexibilität wünschen. Lassen Sie uns eine browserbasierte Webanwendung für Videoanrufe mit der Vonage Video API einrichten.
So erstellen Sie die Vonage Video-Applikation
Rufen Sie das Dashboard von Vonage und melden Sie sich an/registrieren Sie sich.
Klicken Sie im linken Menü auf "Applications".
Klicken Sie oben auf "Neue Anwendung erstellen" und geben Sie der Anwendung einen Namen.
Kopieren Sie die Anwendungs-ID zur späteren Verwendung.
Klicken Sie auf "Bearbeiten" und "Öffentliche und private Schlüssel generieren", und der private Schlüssel wird heruntergeladen.
Scrollen Sie nach unten und aktivieren Sie "Video (neu)" für die Anwendung.
Klicken Sie unten auf der Seite auf "Änderungen speichern".
Notieren Sie sich den API-Schlüssel und das API-Geheimnis für Ihr Projekt. Achten Sie darauf, diese Anmeldeinformationen sicher zu speichern, da Sie sie später bei der Konfiguration Ihrer Anwendung verwenden werden.
Video Capability Toggle in Vonage API Dashboard
Generieren von Video API-Zugangsdaten
Zur Authentifizierung müssen Sie Ihren apiKey, sessionId und Ihr Token übergeben. Nachfolgend finden Sie ein Beispiel für die Erstellung einer Sitzung mit @vonage/video Bibliothek:
const { Auth } = require("@vonage/auth");
const { Video } = require("@vonage/video");
const applicationId = process.env.APP_ID;
const privateKey = process.env.PRIVATE_KEY_PATH;
if (!applicationId || !privateKey) {
console.error("You must define APP_ID and PRIVATE_KEY_PATH in the .env file");
process.exit(1);
}
const credentials = new Auth({
applicationId: applicationId,
privateKey: privateKey,
});
const options = {};
const videoClient = new Video(credentials, options);
const createSessionandToken = async () => {
const session = await videoClient.createSession({ mediaMode: "enabled" });
const sessionId = session.sessionId;
const token = videoClient.generateClientToken(sessionId);
return { sessionId: sessionId, token: token, apiKey: applicationId };
};
const generateToken = (sessionId, role) => {
const token = role
? videoClient.generateClientToken(sessionId, { data: role })
: videoClient.generateClientToken(sessionId);
return { token: token, apiKey: applicationId };
};Am vorderen Ende erhält der Code Anmeldeinformationen vom Node.js-Server, um sich mit der Sitzung zu verbinden, den Publisher zu erstellen, den Stream zu veröffentlichen und auf eingehende Abonnenten zu warten.
const apikey = "<%= apiKey %>";
const sessionId = "<%= sessionId %>";
const token = "<%= token %>";
const publisher = OT.initPublisher("stream-container", {
insertMode: "append",
width: "100%",
height: "100%",
});
const session = OT.initSession(apikey, sessionId);
session.connect(token, (error) => {
if (error) {
console.error("Error connecting: ", error);
} else {
session.publish(publisher, (error) => {
if (error) {
console.error("Error publishing: ", error);
}
});
}
});
// Handle the streamCreated event
session.on("streamCreated", function (event) {
subscriber = session.subscribe(event.stream, "containerId", {
insertMode: "append",
width: "100%",
height: "100%",
});
}); So erstellen Sie den Bot in Vonage AI Studio
Vonage AI Studio ist eine konversationelle KI-Plattform, die komplexe Interaktionen zwischen Unternehmen und Kunden abwickelt, die Betriebskosten senkt und die Servicequalität deutlich verbessert. Sie bietet derzeit die folgenden Kanäle: Telefonie-Agenten (für Voice-Bots), WhatApp- und SMS-Agenten (für textbasierte Bots) und HTTP-Agenten. Ich habe mich für Whatsapp entschieden, weil es eine der beliebtesten Messaging-Plattformen ist und verschiedene Arten von Nachrichten für die Interaktion mit dem Benutzer bietet, z. B. Schaltflächen, Listennachrichten und viele andere.
Sehen Sie alle Details zu Funktionen von Vonage AI Studio.
Um zu beginnen, rufen Sie das Vonage (Dashboard)[dashboard.nexmo.com] auf und suchen Sie den Abschnitt AI Studio. Klicken Sie dann auf die Schaltfläche "Create An Agent" in der oberen rechten Ecke der Seite. Wählen Sie aus den verfügbaren Optionen die Option "Whatsapp Bot" und Sie erhalten eine Liste mit Vorlagen, aus denen Sie auswählen können. Für die Zwecke dieses Blogbeitrags wählen Sie die Option "von Grund auf", gefolgt vom Inbound-Agenten. Inbound-Agenten werden aktiviert, wenn sie eine Nachricht vom Kunden erhalten, während der Outbound-Agent eine neue Konversation mit WhatsApp-Vorlagen einleitet.
WhatsApp Bot Übersicht
Das Bild unten zeigt, was wir bauen werden. Wir werden verschiedene Arten von Vonage AI Studio-Knoten verwenden, z. B. Eingänge sammeln, Konditionale, Webhaken und Nachrichten senden. Wenn man sich das Diagramm vor Augen hält, beginnt der Bot mit einer eingehenden Nachricht des Benutzers und antwortet mit einem Sammel-Eingabeknoten. In den nächsten Abschnitten werden wir den Prozess näher betrachten.
Overview of the Flow in AI Studio
Wie man in AI Studio Benutzereingaben sammelt
Um den Prozess der Erstellung eines Meetings einzuleiten, wird unser WhatsApp-Bot den Nutzer auffordern, bestimmte Informationen anzugeben. Der erste Block, den wir verwenden werden, ist der "Collect Input"-Block, mit dem wir Daten vom Nutzer sammeln können. Innerhalb dieses Blocks können wir den Benutzer bitten, die Art des Meetings (einmalig oder langfristig) und die Aufzeichnungsoptionen (automatische Aufzeichnung oder nicht) anzugeben. Durch die Erfassung dieser Informationen können wir die Besprechung an die Präferenzen des Nutzers anpassen.
Für die Art der Besprechung verwenden wir WhatsApp-Antwortbuttons, so dass der Nutzer die Nachricht nicht eintippen muss, sondern nur die gewünschte Art der Besprechung anklicken muss:
Example of WhatsApp Reply ButtonsAls Nächstes wird der Bot auf der Grundlage der vorherigen Antwort versandt. Dazu verwenden wir einen bedingten Knoten.
Example of Classification NodeAuf der Grundlage der vorherigen Antwort (die im Parameter für die Besprechungsart gespeichert ist) hat der Bot zwei Zweige: sofortige und langfristige Besprechung. Für ein langfristiges Meeting ist ein zusätzlicher Schritt erforderlich, bei dem der Nutzer aufgefordert wird, das Ablaufdatum des Meetings einzugeben.
Dann verwenden wir die gleiche Logik für die Aufzeichnungsoptionen, wir werden einen Collect Input Node mit Reply Buttons verwenden.
Sammeln Verfallsdatum
Eine Eingabe, die wir während unserer Konversation erfassen müssen, ist das Ablaufdatum für langfristige Besprechungen. Mit einem weiteren "Collect Input"-Block fordern wir den Benutzer auf, ein Ablaufdatum für seine Besprechung einzugeben. Um fortzufahren, wollen wir uns mit dem Konzept der Entitäten in AI Studio beschäftigen. Eine Entität ist eine vordefinierte Datenbank, die eine Sammlung von Werten und deren Synonymen enthält. Diese Werte sind für AI Studio unerlässlich, um spezifische Daten aus den in natürlicher Sprache ausgedrückten Benutzereingaben zu extrahieren und zu validieren. Bei der Erkundung der Entitätsliste, die in der Dokumentation verfügbar ist, werden wir auf bekannte Kategorien wie Kontakte, Daten, E-Mail-Adressen, Telefonnummern und mehr stoßen.
Der entscheidende Aspekt in dieser Phase ist die Auswahl des geeigneten Entitätstyps für unseren Zweck, in diesem Fall "@sys.date". Durch die Bestimmung der Entität als Datumstyp wird der Agent die Benutzereingabe intelligent als Datum parsen, was die Verwendung in den nachfolgenden Schritten, insbesondere innerhalb des Webhook-Knotens, erleichtert.
Verbindung zu einer Node.js-API mit Webhooks
Sobald wir alle notwendigen Informationen vom Benutzer gesammelt haben, müssen wir unseren WhatsApp-Bot mit dem Node.js-Server verbinden, den wir zuvor erstellt haben. Dazu verwenden wir den von Vonage AI bereitgestellten Webhook-Block. Dieser Block ermöglicht es uns, HTTP-Anfragen an externe Endpunkte zu stellen, was eine nahtlose Integration zwischen verschiedenen Systemen ermöglicht. Indem wir den Webhook-Block so konfigurieren, dass er die entsprechenden Endpunkte unserer Node.js-API aufruft, können wir die gesammelten Meeting-Details übergeben und die Erstellung des Meetings auslösen. In diesem Fall konfigurieren wir eine POST-Anfrage an https://{baseUrl}/api/video/room wobei das Body-Objekt die während des Bot-Flows gesammelten Parameter sendet.
A POST Request Using Webhook Node
Ein letzter Schritt ist die Konfiguration der Antwort-Zuordnung für den Webhook zu konfigurieren. In diesem Fall gibt die API ein JSON-Objekt mit einer URL-Eigenschaft zurück:
Response Mapping Example
Schlussfolgerung
Zusammenfassend lässt sich sagen, dass die Nutzung der Video API und der Vonage AI im Meetingplaner ein Beispiel für die einfache und benutzerfreundliche Erstellung von anpassbaren Self-Service-Videokonferenzlösungen für Unternehmen und ihre Kunden ist. Durch die Nutzung der Video API können Entwickler mühelos Videokonferenzen mit konfigurierbaren Optionen, wie z. B. Aufzeichnungsoptionen, und mehr erstellen. Die Kombination dieser Funktionalität mit Vonage AI eröffnet spannende Möglichkeiten, die es Nutzern erlauben, mit dem Bot über beliebte Messaging-Plattformen wie WhatsApp zu interagieren.
Sie finden den vollständigen Code auf GitHub.
Hat Ihnen dieses Tutorial gefallen? Sind Sie stecken geblieben? Erreichen Sie uns auf X, früher bekannt als Twitteroder auf dem Vonage Community Slack (wir haben sogar einen eigenen Kanal für AI Studio). Wir freuen uns darauf, zu sehen, was Sie mit Low Code entwickeln!
Teilen Sie:
Enrico ist ein ehemaliges Mitglied des Vonage-Teams. Er arbeitete als Solutions Engineer und unterstützte das Vertriebsteam mit seinem technischen Fachwissen. Er begeistert sich für die Cloud, Startups und neue Technologien. Er ist der Mitbegründer eines WebRTC-Startups in Italien. Außerhalb der Arbeit reist er gerne und probiert so viele verrückte Gerichte wie möglich.
