Gegevens verzamelen en analyseren met Agents Platform in Next.js
Verzamel en analyseer gegevens in post-call webhooks met Agents Platform en Next.js.
Tutorial · Hierbij wordt ervan uitgegaan dat je de ElevenAgents quickstart hebt voltooid en een Next.js-project hebt ingesteld.
Inleiding
In deze tutorial leer je hoe je een spraakagent bouwt die via een gesprek informatie van de gebruiker verzamelt, de gegevens vervolgens op een gestructureerde manier analyseert en extraheert, en deze via de post-call webhook naar je applicatie verstuurt.
Vereisten
- Een ElevenLabs-account met een API-sleutel.
- Node.js v18 of hoger geïnstalleerd op je computer.
Instellen
Een nieuw Next.js-project maken
We raden aan om onze v0.dev Agents Platform-template als uitgangspunt voor je applicatie te gebruiken. Deze template is een productieklaar Next.js-applicatie waarin de ElevenLabs-agent al is geïntegreerd.
Agents Platform instellen
Volg onze Next.js-handleiding voor de installatie- en configuratiestappen. Kom daarna hier terug om de geavanceerde functies te bouwen.
Agentconfiguratie
Een nieuwe agent maken
Ga naar Agents Platform > Agents en maak een nieuwe agent op basis van de lege template.
Het eerste bericht instellen
Stel het eerste bericht in en geef de dynamische variabele voor het platform op.
De clienttools instellen
Stel de volgende clienttool in om tussen de stappen te navigeren:
- Naam:
set_ui_state- Beschrijving: Gebruik deze client-side tool om tussen de verschillende UI-statussen te navigeren.
- Wachten op antwoord:
true - Responstime-out (seconden): 1
- Parameters:
- Gegevenstype: string
- ID: step
- Vereist: true
- Waardetype: LLM Prompt
- Beschrijving: De stap waarnaar je in de UI wilt navigeren. Gebruik alleen de stappen die in de systeemprompt zijn gedefinieerd!
De stem van je agent instellen
Ga naar het tabblad Voice en stel de stem voor je agent in. In de documentatie over Conversational Voice Design vind je een lijst met aanbevolen stemmen voor Agents Platform.
De evaluatiecriteria instellen
Ga naar het tabblad Analysis en voeg een nieuw evaluatiecriterium toe.
- Naam:
all_data_provided- Prompt: Beoordeel of de gebruiker een beschrijving heeft gegeven van de agent die deze wil genereren, evenals een beschrijving van de stem die de agent moet hebben.
De gegevensverzameling configureren
Je kunt de analyse na het gesprek gebruiken om gegevens uit het gesprek te extraheren. Voeg op het tabblad Analysis, onder Data Collection, de volgende items toe:
- ID:
voice_descriptiondata-type:String- Beschrijving: Genereer op basis van de beschrijving van de stem die de gebruiker voor de agent wil, een beknopte beschrijving van de stem met, indien beschikbaar, de leeftijd, het accent, de toon en het karakter.
- ID:
agent_descriptiondata-type:String- Beschrijving: Genereer op basis van de beschrijving van de agent die de gebruiker wil ontwerpen een prompt waarmee een model kan worden getraind om als de agent te handelen.
De post-call webhook configureren
Post-call webhooks worden gebruikt om je te informeren wanneer een gesprek eindigt en de stappen voor analyse en gegevensextractie zijn voltooid.
In dit voorbeeld voert de post-call webhook enkele stappen uit, namelijk:
- Een aangepast stemontwerp maken op basis van de
voice_description. - Een ElevenLabs-agent voor de gebruikers maken op basis van de
agent_descriptiondie zij hebben opgegeven. - De kennisbankdocumenten ophalen uit de gespreksstatus die in Redis is opgeslagen en de kennisbank aan de agent koppelen.
- De gebruiker een e-mail sturen om te melden dat de aangepaste ElevenLabs-agent klaar is om te chatten.
Wanneer je lokaal werkt, heb je een tool zoals ngrok nodig om je lokale server toegankelijk te maken via internet.
Ga naar de instellingen van Agents Platform en maak onder Post-Call Webhook een nieuwe webhook. Plak daar je ngrok-URL: https://<your-url>.ngrok-free.app/api/convai-webhook.
Nadat je de webhook hebt opgeslagen, ontvang je een webhooksecret. Bewaar dit secret veilig, want je moet het later in je bestand .env instellen.
De geavanceerde functies integreren
Een Redis-database instellen om de gespreksstatus op te slaan
In dit voorbeeld gebruiken we Redis om de gespreksstatus op te slaan. Hierdoor kunnen we de kennisbankdocumenten na afloop van het gesprek uit de gespreksstatus ophalen.
Als je implementeert op Vercel, kun je de integratie Upstash for Redis configureren. Je kunt ook een gratis Upstash-account aanmaken en een nieuwe database maken.
Resend instellen voor het versturen van e-mails na gesprekken
In dit voorbeeld gebruiken we Resend om de e-mail na het gesprek naar de gebruiker te sturen. Hiervoor moet je een gratis Resend-account maken en een nieuwe API-sleutel instellen.
De omgevingsvariabelen instellen
Maak in de hoofdmap van je project een bestand .env en voeg de volgende variabelen toe:
Beveiliging en authenticatie configureren
Om je ElevenLabs-agent te beveiligen, moet je authenticatie inschakelen op het tabblad Security van de agentconfiguratie.
Zodra authenticatie is ingeschakeld, moet je in een beveiligde server-side omgeving een ondertekende URL maken om een gesprek met de agent te starten. In Next.js kun je dit doen door een nieuwe API-route in te stellen.
De gesprekssessie starten
Om het gesprek te starten, roep je eerst je API-route aan om de ondertekende URL op te halen. Gebruik vervolgens de hook useConversation om de gesprekssessie in te stellen.
Clienttool en dynamische variabelen
In de eerdere agentconfiguratie heb je de clienttool set_ui_state geregistreerd, zodat de agent tussen de verschillende UI-statussen kan navigeren. Om alles samen te brengen, moet je de implementatie van de clienttool doorgeven aan de opties van conversation.startSession.
Hier kun je ook de dynamische variabelen aan het gesprek doorgeven.
Documenten uploaden naar de kennisbank
In de stap Training vraagt de agent de gebruiker om documenten te uploaden of URL’s naar openbare websites in te dienen met informatie die beschikbaar moet zijn voor de agent. Hier kun je de nieuwe functie after van Next.js 15 gebruiken om documenten op de achtergrond te uploaden.
Maak een nieuwe server action upload om het maken van de kennisbank bij het verzenden van het formulier af te handelen. Sla de gespreks-ID en de kennisbank-ID’s in de Redis-database op zodra alle kennisbankdocumenten zijn gemaakt.
De post-call webhook verwerken
De post-call webhook wordt geactiveerd wanneer een gesprek eindigt en de stappen voor analyse en gegevensextractie zijn voltooid.
Hier gebeuren enkele stappen, namelijk:
- Het webhooksecret verifiëren en de webhookpayload samenstellen.
- Een aangepast stemontwerp maken op basis van de
voice_description. - Een ElevenLabs-agent voor de gebruikers maken op basis van de
agent_descriptiondie zij hebben opgegeven. - De kennisbankdocumenten ophalen uit de gespreksstatus die in Redis is opgeslagen en de kennisbank aan de agent koppelen.
- De gebruiker een e-mail sturen om te melden dat de aangepaste ElevenLabs-agent klaar is om te chatten.
Laten we elke stap in detail doornemen.
Het webhooksecret verifiëren en de webhookpayload samenstellen
Wanneer het webhookrequest wordt ontvangen, verifiëren we eerst het webhooksecret en stellen we de webhookpayload samen.
Een aangepast stemontwerp maken op basis van de voice_description
Met de voice_description uit de webhookpayload maken we een aangepast stemontwerp.
De kennisbankdocumenten ophalen uit de gespreksstatus die in Redis is opgeslagen
Het uploaden van de documenten kan langer duren dan de data-analyse van de webhook. Daarom moeten we de gespreksstatus in Redis blijven pollen totdat de documenten zijn geüpload.
Een ElevenLabs-agent voor de gebruikers maken op basis van de agent_description die zij hebben opgegeven
Maak de ElevenLabs-agent voor de gebruiker op basis van de opgegeven agent_description en koppel het zojuist gemaakte stemontwerp en de kennisbank aan de agent.
De gebruiker een e-mail sturen om te melden dat de aangepaste ElevenLabs-agent klaar is om te chatten
Zodra de agent is gemaakt, kun je de gebruiker een e-mail sturen om te melden dat de aangepaste ElevenLabs-agent klaar is om te chatten.
Je kunt new.email, een handige tool van het Resend-team, gebruiken om je e-mailsjablonen op gevoel te ontwerpen. Zodra je tevreden bent met de template, maak je een nieuw component en voeg je de agent-ID als prop toe.
De app uitvoeren
Om de app lokaal van begin tot eind uit te voeren, moet je eerst de Next.js-ontwikkelserver starten en vervolgens in een aparte terminal de ngrok-tunnel uitvoeren om de webhookhandler toegankelijk te maken via internet.
- Terminal 1:
- Voer
pnpm devuit om de Next.js-ontwikkelserver te starten.
- Voer
- Terminal 2:
- Voer
ngrok http 3000uit om de webhookhandler toegankelijk te maken via internet.
- Voer
Open nu http://localhost:3000 en begin met het ontwerpen van je aangepaste ElevenLabs-agent, met je eigen stem!