Datenerfassung und -analyse mit Agents Platform in Next.js
Datenerfassung und -analyse mit Agents Platform in Next.js
Erfassen und analysieren Sie Daten in Post-Call-Webhooks mit Agents Platform und Next.js.
Tutorial · Setzt voraus, dass Sie den ElevenAgents- Schnellstart abgeschlossen und ein Next.js-Projekt eingerichtet haben.
Einführung
In diesem Tutorial lernen Sie, wie Sie einen Voice-Agent entwickeln, der über Gespräche Informationen von Nutzern erfasst, die Daten dann strukturiert analysiert und extrahiert und sie über den Post-Call-Webhook an Ihre Anwendung sendet.
Voraussetzungen
- Ein ElevenLabs-Konto mit einem API-Schlüssel.
- Node.js v18 oder höher, installiert auf Ihrem Rechner.
Einrichtung
Neues Next.js-Projekt erstellen
Wir empfehlen unsere v0.dev-Agents-Platform-Vorlage als Ausgangspunkt für Ihre Anwendung. Diese Vorlage ist eine produktionsreife Next.js-Anwendung mit bereits integriertem ElevenLabs-Agent.
Agents Platform einrichten
Folgen Sie unserer Next.js-Anleitung für die Installations- und Konfigurationsschritte. Kehren Sie dann hierher zurück, um die erweiterten Funktionen zu entwickeln.
Agent-Konfiguration
Neuen Agenten erstellen
Navigieren Sie zu Agents Platform > Agents und erstellen Sie einen neuen Agenten anhand der leeren Vorlage.
Erste Nachricht festlegen
Legen Sie die erste Nachricht fest und geben Sie die dynamische Variable für die Plattform an.
System-Prompt festlegen
Legen Sie den System-Prompt fest. Sie können hier auch dynamische Variablen einfügen.
Client-Tools einrichten
Richten Sie das folgende Client-Tool ein, um zwischen den Schritten zu navigieren:
- Name:
set_ui_state- Beschreibung: Verwenden Sie dieses clientseitige Tool, um zwischen den verschiedenen UI-Zuständen zu navigieren.
- Auf Antwort warten:
true - Antwort-Timeout (Sekunden): 1
- Parameter:
- Datentyp: string
- Kennung: step
- Erforderlich: true
- Werttyp: LLM-Prompt
- Beschreibung: Der Schritt, zu dem in der UI navigiert werden soll. Verwenden Sie nur die Schritte, die im System-Prompt definiert sind.
Stimme Ihres Agenten festlegen
Navigieren Sie zum Tab Voice und legen Sie die Stimme für Ihren Agenten fest. Eine Liste empfohlener Stimmen für die Agents Platform finden Sie in der Dokumentation zum Conversational Voice Design.
Bewertungskriterien festlegen
Navigieren Sie zum Tab Analysis und fügen Sie ein neues Bewertungskriterium hinzu.
- Name:
all_data_provided- Prompt: Bewerten Sie, ob der Nutzer eine Beschreibung des Agenten angegeben hat, den er erstellen möchte, sowie eine Beschreibung der Stimme, die der Agent haben soll.
Datenerfassung konfigurieren
Sie können die Analyse nach dem Anruf nutzen, um Daten aus dem Gespräch zu extrahieren. Fügen Sie im Tab Analysis unter Data Collection die folgenden Elemente hinzu:
- Kennung:
voice_descriptiondata-type:String- Beschreibung: Erstellen Sie anhand der Beschreibung der Stimme, die der Nutzer für den Agenten wünscht, eine prägnante Stimmbeschreibung mit Alter, Akzent, Tonfall und Charakter, sofern verfügbar.
- Kennung:
agent_descriptiondata-type:String- Beschreibung: Erstellen Sie anhand der Beschreibung des Agenten, den der Nutzer entwerfen möchte, einen Prompt, mit dem ein Modell trainiert werden kann, als dieser Agent zu agieren.
Post-Call-Webhook konfigurieren
Post-Call-Webhooks benachrichtigen Sie, wenn ein Anruf endet und die Analyse- und Datenextraktionsschritte abgeschlossen sind.
In diesem Beispiel führt der Post-Call-Webhook mehrere Schritte aus:
- Erstellen einer benutzerdefinierten Stimmgestaltung basierend auf der
voice_description. - Erstellen eines ElevenLabs-Agenten für die Nutzer basierend auf der angegebenen
agent_description. - Abrufen der Wissensdatenbankdokumente aus dem in Redis gespeicherten Gesprächszustand und Anhängen der Wissensdatenbank an den Agenten.
- Senden einer E-Mail an den Nutzer, um ihn darüber zu informieren, dass sein benutzerdefinierter ElevenLabs-Agent bereit zum Chatten ist.
Wenn Sie lokal arbeiten, benötigen Sie ein Tool wie ngrok, um Ihren lokalen Server über das Internet verfügbar zu machen.
Navigieren Sie zu den Agents-Platform-Einstellungen und erstellen Sie unter Post-Call Webhook einen neuen Webhook. Fügen Sie Ihre ngrok-URL ein: https://<your-url>.ngrok-free.app/api/convai-webhook.
Nach dem Speichern des Webhooks erhalten Sie ein Webhook-Secret. Bewahren Sie dieses Secret sicher auf, da Sie es später in Ihrer .env-Datei festlegen müssen.
Erweiterte Funktionen integrieren
Redis-Datenbank zum Speichern des Gesprächszustands einrichten
In diesem Beispiel verwenden wir Redis, um den Gesprächszustand zu speichern. So können wir die Wissensdatenbankdokumente nach Ende des Anrufs aus dem Gesprächszustand abrufen.
Wenn Sie auf Vercel bereitstellen, können Sie die Integration Upstash for Redis konfigurieren. Alternativ können Sie sich für ein kostenloses Upstash-Konto registrieren und eine neue Datenbank erstellen.
Resend zum Senden von E-Mails nach dem Anruf einrichten
In diesem Beispiel verwenden wir Resend, um dem Nutzer nach dem Anruf eine E-Mail zu senden. Dazu müssen Sie ein kostenloses Resend-Konto erstellen und einen neuen API-Key einrichten.
Umgebungsvariablen festlegen
Erstellen Sie im Stammverzeichnis Ihres Projekts eine .env-Datei und fügen Sie die folgenden Variablen hinzu:
Sicherheit und Authentifizierung konfigurieren
Um Ihren ElevenLabs-Agenten abzusichern, müssen Sie die Authentifizierung im Tab Security der Agent-Konfiguration aktivieren.
Sobald die Authentifizierung aktiviert ist, müssen Sie in einer sicheren serverseitigen Umgebung eine signierte URL erstellen, um ein Gespräch mit dem Agenten zu beginnen. In Next.js können Sie dies durch das Einrichten einer neuen API-Route tun.
Gesprächssitzung starten
Um das Gespräch zu starten, rufen Sie zuerst Ihre API-Route auf, um die signierte URL abzurufen. Verwenden Sie dann den Hook useConversation, um die Gesprächssitzung einzurichten.
Client-Tool und dynamische Variablen
In der vorherigen Agent-Konfiguration haben Sie das Client-Tool set_ui_state registriert, damit der Agent zwischen verschiedenen UI-Zuständen navigieren kann. Um alles zusammenzuführen, müssen Sie die Implementierung des Client-Tools an die Optionen von conversation.startSession übergeben.
Hier können Sie auch die dynamischen Variablen an das Gespräch übergeben.
Dokumente in die Wissensdatenbank hochladen
Im Schritt Training fordert der Agent den Nutzer auf, Dokumente hochzuladen oder URLs zu öffentlichen Websites mit Informationen einzureichen, die seinem Agenten zur Verfügung stehen sollen. Hier können Sie die neue Funktion after von Next.js 15 nutzen, um Dokumente im Hintergrund hochzuladen.
Erstellen Sie eine neue Server-Aktion upload, um die Erstellung der Wissensdatenbank bei der Formularübermittlung zu verarbeiten. Sobald alle Wissensdatenbankdokumente erstellt wurden, speichern Sie die Gesprächs-ID und die Wissensdatenbank-IDs in der Redis-Datenbank.
Verarbeitung des Post-Call-Webhooks
Der Post-Call-Webhook wird ausgelöst, wenn ein Anruf endet und die Schritte zur Analyse und Datenextraktion abgeschlossen sind.
Hier passieren mehrere Schritte:
- Webhook-Secret verifizieren und Webhook-Payload erstellen.
- Ein individuelles Stimmendesign basierend auf
voice_descriptionerstellen. - Einen ElevenLabs-Agent für die Nutzer basierend auf ihrer angegebenen
agent_descriptionerstellen. - Die Wissensdatenbankdokumente aus dem in Redis gespeicherten Konversationsstatus abrufen und die Wissensdatenbank an den Agent anhängen.
- Dem Nutzer eine E-Mail senden, um ihn darüber zu informieren, dass sein individueller ElevenLabs-Agent bereit zum Chatten ist.
Gehen wir jeden Schritt im Detail durch.
Webhook-Secret verifizieren und Webhook-Payload erstellen
Wenn die Webhook-Anfrage eingeht, verifizieren wir zuerst das Webhook-Secret und erstellen die Webhook-Payload.
Individuelles Stimmendesign basierend auf voice_description erstellen
Mithilfe der voice_description aus der Webhook-Payload erstellen wir ein individuelles Stimmendesign.
Wissensdatenbankdokumente aus dem in Redis gespeicherten Konversationsstatus abrufen
Das Hochladen der Dokumente kann länger dauern als die Analyse der Webhook-Daten. Daher müssen wir den Konversationsstatus in Redis abfragen, bis die Dokumente hochgeladen wurden.
Einen ElevenLabs-Agent für die Nutzer basierend auf ihrer angegebenen agent_description erstellen
Erstellen Sie den ElevenLabs-Agent für den Nutzer basierend auf seiner angegebenen agent_description und hängen Sie das neu erstellte Stimmendesign sowie die Wissensdatenbank an den Agent an.
Dem Nutzer eine E-Mail senden, um ihn darüber zu informieren, dass sein individueller ElevenLabs-Agent bereit zum Chatten ist
Sobald der Agent erstellt wurde, können Sie dem Nutzer eine E-Mail senden, um ihn darüber zu informieren, dass sein individueller ElevenLabs-Agent bereit zum Chatten ist.
Sie können new.email verwenden, ein praktisches Tool des Resend-Teams, um Ihre E-Mail-Vorlagen per Vibe Design zu erstellen. Wenn Sie mit der Vorlage zufrieden sind, erstellen Sie eine neue Komponente und fügen Sie die Agent-ID als Prop hinzu.
App ausführen
Um die App lokal vollständig auszuführen, müssen Sie zuerst den Next.js-Entwicklungsserver starten und dann in einem separaten Terminal den ngrok-Tunnel ausführen, um den Webhook-Handler im Internet verfügbar zu machen.
- Terminal 1:
- Führen Sie
pnpm devaus, um den Next.js-Entwicklungsserver zu starten.
- Führen Sie
- Terminal 2:
- Führen Sie
ngrok http 3000aus, um den Webhook-Handler im Internet verfügbar zu machen.
- Führen Sie
Öffnen Sie jetzt http://localhost:3000 und beginnen Sie mit dem Design Ihres individuellen ElevenLabs-Agent – mit Ihrer Stimme.