Datainsamling och analys med Agents Platform i Next.js
Handledning · Förutsätter att du har slutfört snabbstarten för ElevenAgents och har ett Next.js-projekt konfigurerat.
Introduktion
I den här handledningen lär du dig att bygga en röstagent som samlar in information från användaren genom en konversation, sedan analyserar och extraherar data på ett strukturerat sätt och skickar den till din applikation via webhooken efter samtalet.
Krav
- Ett ElevenLabs-konto med en API-nyckel.
- Node.js v18 eller senare installerat på din dator.
Konfiguration
Skapa ett nytt Next.js-projekt
Vi rekommenderar att du använder vår v0.dev-mall för Agents Platform som utgångspunkt för din applikation. Den här mallen är en produktionsklar Next.js-applikation med ElevenLabs-agenten redan integrerad.
Konfigurera Agents Platform
Följ vår Next.js-guide för installations- och konfigurationssteg. Kom sedan tillbaka hit för att bygga de avancerade funktionerna.
Agentkonfiguration
Ange det första meddelandet
Ange det första meddelandet och specificera den dynamiska variabeln för plattformen.
Konfigurera klientverktygen
Konfigurera följande klientverktyg för att navigera mellan stegen:
- Namn:
set_ui_state- Beskrivning: Använd det här verktyget på klientsidan för att navigera mellan olika UI-lägen.
- Vänta på svar:
true - Tidsgräns för svar (sekunder): 1
- Parametrar:
- Datatyp: string
- Identifierare: step
- Obligatoriskt: true
- Värdetyp: LLM Prompt
- Beskrivning: Steget att navigera till i användargränssnittet. Använd endast steg som definieras i systemprompten!
Ange din agents röst
Gå till fliken Voice och ange rösten för din agent. Du hittar en lista över rekommenderade röster för Agents Platform i dokumentationen för Conversational Voice Design.
Ange utvärderingskriterierna
Gå till fliken Analysis och lägg till ett nytt utvärderingskriterium.
- Namn:
all_data_provided- Prompt: Utvärdera om användaren har angett en beskrivning av agenten de vill skapa samt en beskrivning av rösten agenten ska ha.
Konfigurera datainsamlingen
Du kan använda analysen efter samtalet för att extrahera data från konversationen. Lägg till följande objekt på fliken Analysis, under Data Collection:
- Identifierare:
voice_descriptiondata-type:String- Beskrivning: Utifrån beskrivningen av rösten användaren vill att agenten ska ha, generera en kortfattad beskrivning av rösten, inklusive ålder, accent, ton och karaktär om tillgängligt.
- Identifierare:
agent_descriptiondata-type:String- Beskrivning: Utifrån beskrivningen av agenten användaren vill skapa, generera en prompt som kan användas för att träna en modell att agera som agenten.
Konfigurera webhooken efter samtalet
Webhooks efter samtal används för att meddela dig när ett samtal avslutas och stegen för analys och dataextrahering har slutförts.
I det här exemplet utför webhooken efter samtalet några steg, nämligen:
- Skapa en anpassad Voice Design baserat på
voice_description. - Skapa en ElevenLabs-agent för användarna baserat på
agent_descriptionsom de angav. - Hämta kunskapsbasdokumenten från konversationstillståndet som lagras i Redis och koppla kunskapsbasen till agenten.
- Skicka ett e-postmeddelande till användaren för att meddela att deras anpassade ElevenLabs-agent är redo att chatta.
När du kör lokalt behöver du ett verktyg som ngrok för att exponera din lokala server på internet.
Gå till inställningarna för Agents Platform och skapa en ny webhook under Post-Call Webhook. Klistra sedan in din ngrok-URL: https://<your-url>.ngrok-free.app/api/convai-webhook.
När du har sparat webhooken får du en webhook-hemlighet. Se till att lagra den säkert eftersom du behöver ange den i din .env-fil senare.
Integrera de avancerade funktionerna
Konfigurera en Redis-databas för att lagra konversationstillståndet
I det här exemplet använder vi Redis för att lagra konversationstillståndet. Det gör att vi kan hämta kunskapsbasdokumenten från konversationstillståndet efter att samtalet har avslutats.
Om du distribuerar till Vercel kan du konfigurera integreringen Upstash for Redis, eller registrera ett kostnadsfritt Upstash-konto och skapa en ny databas.
Konfigurera Resend för att skicka e-post efter samtal
I det här exemplet använder vi Resend för att skicka e-postmeddelandet efter samtalet till användaren. För att göra det behöver du skapa ett kostnadsfritt Resend-konto och konfigurera en ny API-nyckel.
Ange miljövariablerna
Skapa en .env-fil i projektets rot och lägg till följande variabler:
Konfigurera säkerhet och autentisering
För att skydda din ElevenLabs-agent måste du aktivera autentisering på fliken Security i agentkonfigurationen.
När autentisering är aktiverad behöver du skapa en signerad URL i en säker servermiljö för att starta en konversation med agenten. I Next.js kan du göra det genom att konfigurera en ny API-rutt.
Starta konversationssessionen
För att starta konversationen anropar du först din API-rutt för att hämta den signerade URL:en och använder sedan hooken useConversation för att konfigurera konversationssessionen.
Klientverktyg och dynamiska variabler
I agentkonfigurationen tidigare registrerade du klientverktyget set_ui_state så att agenten kan navigera mellan olika UI-lägen. För att sätta ihop allt behöver du skicka implementeringen av klientverktyget till alternativen för conversation.startSession.
Här kan du också skicka dynamiska variabler till konversationen.
Ladda upp dokument till kunskapsbasen
I steget Training ber agenten användaren att ladda upp dokument eller skicka URL:er till offentliga webbplatser med information som ska vara tillgänglig för deras agent. Här kan du använda den nya funktionen after i Next.js 15 för att tillåta uppladdning av dokument i bakgrunden.
Skapa en ny serveråtgärd upload för att hantera skapandet av kunskapsbasen när formuläret skickas in. När alla kunskapsbasdokument har skapats lagrar du konversations-ID:t och kunskapsbas-ID:na i Redis-databasen.
Hantera webhooken efter samtalet
Webhooken efter samtalet utlöses när ett samtal avslutas och stegen för analys och dataextrahering har slutförts.
Här sker några steg, nämligen:
- Verifiera webhook-hemligheten och skapa webhookens payload.
- Skapa en anpassad Voice Design baserat på
voice_description. - Skapa en ElevenLabs-agent för användarna baserat på
agent_descriptionsom de angav. - Hämta kunskapsbasdokumenten från konversationstillståndet som lagras i Redis och koppla kunskapsbasen till agenten.
- Skicka ett e-postmeddelande till användaren för att meddela att deras anpassade ElevenLabs-agent är redo att chatta.
Låt oss gå igenom varje steg i detalj.
Verifiera webhook-hemligheten och skapa webhookens payload
När webhookbegäran tas emot verifierar vi först webhook-hemligheten och skapar webhookens payload.
Skapa en anpassad Voice Design baserat på voice_description
Med voice_description från webhookens payload skapar vi en anpassad Voice Design.
Hämta kunskapsbasdokumenten från konversationstillståndet som lagras i Redis
Uppladdningen av dokumenten kan ta längre tid än webhookens dataanalys, så vi måste fråga efter konversationstillståndet i Redis tills dokumenten har laddats upp.
Skapa en ElevenLabs-agent för användarna baserat på agent_description som de angav
Skapa ElevenLabs-agenten för användaren baserat på agent_description som de angav och koppla den nyligen skapade Voice Design och kunskapsbasen till agenten.
Skicka ett e-postmeddelande till användaren för att meddela att deras anpassade ElevenLabs-agent är redo att chatta
När agenten har skapats kan du skicka ett e-postmeddelande till användaren för att meddela att deras anpassade ElevenLabs-agent är redo att chatta.
Du kan använda new.email, ett praktiskt verktyg från Resend-teamet, för att designa dina e-postmallar med vibe coding. När du är nöjd med mallen skapar du en ny komponent och lägger till agent-ID:t som en prop.
Kör appen
För att köra appen lokalt från början till slut måste du först starta Next.js-utvecklingsservern och sedan köra ngrok-tunneln i en separat terminal för att exponera webhookhanteraren på internet.
- Terminal 1:
- Kör
pnpm devför att starta Next.js-utvecklingsservern.
- Kör
- Terminal 2:
- Kör
ngrok http 3000för att exponera webhookhanteraren på internet.
- Kör
Öppna nu http://localhost:3000 och börja designa din anpassade ElevenLabs-agent med din röst!