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:

Einrichten Ihrer lokalen Umgebung

Erstellen Sie ein neues Verzeichnis für Ihr Projekt und installieren Sie die erforderlichen Abhängigkeiten:

mkdir vonage-voice-bot cd vonage-voice-bot npm init -y npm install express openai

Lokalen Server freilegen

Vonage muss Webhooks an Ihren lokalen Rechner senden. Verwenden Sie ngrok, um Ihren Server freizugeben:

ngrok http 3000

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

  1. Navigieren Sie zu Applications > Erstellen Sie eine neue Anwendung.
  2. Geben Sie ihm einen Namen (z. B. "Voice AI Bot").
  3. Unter Fähigkeitenaktivieren Stimme.
  4. 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 auf
    GET
    .
  5. In der Ereignis-URL geben Sie Ihre Basis-URL ein, gefolgt von /webhooks/events. Setzen Sie die Methode auf
    POST
    .
  6. Klicken Sie auf Öffentlichen und privaten Schlüssel generieren. Speichern Sie die private.key Datei in Ihrem Projektordner (obwohl wir sie für diesen grundlegenden ASR-Ablauf nicht verwenden werden, ist sie für die App-Erstellung erforderlich).
  7. Klicken Sie auf Änderungen speichern.

Verknüpfung einer Number

  1. Gehe zu Numbers > Numbers kaufen und kaufen Sie eine sprachaktivierte Nummer.
  2. Gehe zu Ihre Applications, wählen Sie Ihre Bot-Anwendung aus, und klicken Sie auf bearbeiten.
  3. 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

  1. Starten Sie Ihren Server:

    node index.js
  2. Wählen Sie Ihre Vonage-Nummer von Ihrem Telefon aus.

  3. Wenn Sie dazu aufgefordert werden, stellen Sie eine Frage (z. B., Warum ist der Himmel blau? oder Erzähl mir einen Witz).

  4. 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 uuid um die Historie der verschiedenen Anrufer getrennt zu halten.
  • Rekursive NCCO: Anstelle einer einfachen talk Aktion, geben wir jetzt eine talk gefolgt von einer input Aktion. Dadurch bleibt die Leitung offen.
  • Speicher: Durch die Übergabe des gesamten history Array 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_human Funktion.
  • Die Übergabe: Ihr Server beendet die ASR-Schleife und sendet die connect Aktion an Vonage.
  • Die Verbindung: Vonage erstellt eine neue abgehende Verbindung zum HUMAN_AGENT_NUMBER und 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 talk Aktion 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.