Wie man einen fortschrittlichen IVR-/Voice Bot erstellt
Diese Anleitung zeigt, wie man einen sprachbasierten KI-Agenten mit der Vonage Voice API und OpenAI erstellt. Sie erstellen einen Sprachroboter der eingehende Anrufe beantwortet, die Frage eines Benutzers anhört und Automatische Spracherkennung (ASR)und antwortet mit einer intelligenten, von einem LLM generierten Antwort.
Voraussetzungen
Bevor Sie beginnen, vergewissern Sie sich, dass Sie alles haben:
- A Vonage API-Konto.
- Node.js auf Ihrem Rechner installiert.
- Eine OpenAI API-Schlüssel.
- ngrok auf Ihrem Rechner installiert.
Einrichten Ihrer lokalen Umgebung
Erstellen Sie ein neues Verzeichnis für Ihr Projekt und installieren Sie die erforderlichen Abhängigkeiten:
Lokalen Server freilegen
Vonage muss Webhooks an Ihren lokalen Rechner senden. Verwenden Sie ngrok, um Ihren Server freizugeben:
ngrok leitet Ihren Port 3000 (definiert in Ihrem Server) an eine öffentliche URL weiter, wie https://{random id}.ngrok.app.
Halten Sie dieses Terminal offen.
Bereitstellung Ihrer Vonage-Ressourcen
Melden Sie sich bei der Vonage Dashboard zu beginnen.
Erstellen einer Sprachanwendung
- Navigieren Sie zu Applications > Erstellen Sie eine neue Anwendung.
- Geben Sie ihm einen Namen (z. B. "Voice AI Bot").
- Unter Fähigkeitenaktivieren Stimme.
- In der Antwort-URL geben Sie Ihre Basis-URL ein, gefolgt von
/webhooks/answer(z.B.,https://{random id}.ngrok.app/webhooks/answer). Setzen Sie die Methode aufGET. - In der Ereignis-URL geben Sie Ihre Basis-URL ein, gefolgt von
/webhooks/events. Setzen Sie die Methode aufPOST. - Klicken Sie auf Öffentlichen und privaten Schlüssel generieren. Speichern Sie die
private.keyDatei in Ihrem Projektordner (obwohl wir sie für diesen grundlegenden ASR-Ablauf nicht verwenden werden, ist sie für die App-Erstellung erforderlich). - Klicken Sie auf Änderungen speichern.
Verknüpfung einer Number
- Gehe zu Numbers > Numbers kaufen und kaufen Sie eine sprachaktivierte Nummer.
- Gehe zu Ihre Applications, wählen Sie Ihre Bot-Anwendung aus, und klicken Sie auf bearbeiten.
- Im Rahmen der Numbers Registerkarte, klicken Sie auf Link neben Ihrer neu erworbenen Nummer.
Erstellen Sie den Voice Bot
Erstellen Sie eine Datei mit dem Namen index.js und fügen Sie den folgenden Code hinzu. Ersetzen Sie YOUR_OPENAI_API_KEY mit Ihrem aktuellen Schlüssel.
Hinweis: Bei lokaler Ausführung mit ngrok, req.protocol/req.get('host') möglicherweise nicht mit Ihrer öffentlichen Tunnel-URL übereinstimmt. Wenn Webhooks fehlschlagen, setzen Sie die Basis-URL Ihres Tunnels in config (z.B. eine env var) und erstellen eventUrl stattdessen davon.
Testen Sie die Applikation
Starten Sie Ihren Server:
node index.jsWählen Sie Ihre Vonage-Nummer von Ihrem Telefon aus.
Wenn Sie dazu aufgefordert werden, stellen Sie eine Frage (z. B., Warum ist der Himmel blau? oder Erzähl mir einen Witz).
Der Bot erfasst Ihre Sprache, sendet sie an OpenAI und liest Ihnen die Antwort vor, indem er Text-to-Speech.
Ermöglicht kontextbezogene Konversation
Damit sich die Konversation natürlich anfühlt, müssen wir die App so verändern, dass sie sich an frühere Gespräche erinnert und den Nutzer erneut zur Eingabe auffordert.
Hinweis: Bei lokaler Ausführung mit ngrok, req.get('host') möglicherweise nicht mit Ihrem öffentlichen Tunnel-Host übereinstimmt. Wenn Webhooks fehlschlagen, erstellen Sie eventUrl unter Verwendung Ihrer öffentlichen Tunnel-Basis-URL (z.B. aus config/env) anstelle des Anfrage-Hosts.
Aktualisieren Sie Ihr index.js mit dieser zustandsabhängigen Logik:
Was sich geändert hat
- Die Sitzungskarte: Wir verwenden die
uuidum die Historie der verschiedenen Anrufer getrennt zu halten. - Rekursive NCCO: Anstelle einer einfachen
talkAktion, geben wir jetzt einetalkgefolgt von einerinputAktion. Dadurch bleibt die Leitung offen. - Speicher: Durch die Übergabe des gesamten
historyArray zu OpenAI, der Bot versteht jetzt Folgefragen wie Erzählen Sie mir mehr darüber.
Probieren Sie die aktualisierte Anwendung aus, indem Sie Ihren Server neu starten und die mit Ihrer Anwendung verknüpfte Vonage-Nummer wählen, wie im Abschnitt Testen Sie die Applikation Schritt.
Werkzeug "Mit Menschen verbinden" hinzufügen
Dieser Schritt beinhaltet die Aktualisierung Ihrer Tooldefinitionen und das Hinzufügen einer Verzweigung zu Ihrer ASR-Logik, die die Vonage connect Aktion.
Update index.js
Fügen Sie die neue Werkzeugdefinition hinzu und ändern Sie die asr Webhook, um die Übertragung abzuwickeln:
Wie es funktioniert
- Die Intention: Wenn der Benutzer sagt Ich möchte mit einem Manager sprechen oder Hilf mir, das ist zu schwer erkennt das LLM die Absicht und löst die
connect_to_humanFunktion. - Die Übergabe: Ihr Server beendet die ASR-Schleife und sendet die
connectAktion an Vonage. - Die Verbindung: Vonage erstellt eine neue abgehende Verbindung zum
HUMAN_AGENT_NUMBERund verbindet die beiden Anrufe miteinander. Sobald die Verbindung hergestellt ist, "hört" die KI nicht mehr zu.
Starten Sie Ihren Server neu und rufen Sie die Vonage-Nummer Ihrer Anwendung an. Wenn Sie den Bot bitten, mit einem Menschen zu sprechen, sollte er die Phrase Bitte bleiben Sie dran, während ich Sie mit einem menschlichen Vertreter verbindeund verbinden Sie dann mit der Telefonnummer, die Sie als HUMAN_AGENT_NUMBER.
Nächste Schritte
- Benutzerdefinierte Stimmen: Ändern Sie den Namen der Stimme im
talkAktion für ein stärkeres Markenerlebnis. - WebSocket-Streaming: Für geringere Latenzzeiten verwenden Sie WebSockets um Audio in Echtzeit zu streamen.
- Endpunkte: Verbindung zu Ihrer PBX oder Ihrem Contact Center über SIP oder erstellen Sie Ihre eigene Webschnittstelle für einen menschlichen Agenten mit Client SDK.
- .NET-Version: Sehen Sie das gleiche IVR/Voice-Bot-Szenario, das in .NET implementiert ist, in dieser Blog-Beitrag.