Zbieranie i analiza danych z Agents Platform w Next.js
Zbieraj i analizuj dane w webhookach po rozmowie z użyciem Agents Platform i Next.js.
Samouczek · Zakłada, że masz już za sobą szybki start z ElevenAgents i skonfigurowany projekt Next.js.
Wprowadzenie
W tym samouczku dowiesz się, jak stworzyć agenta głosowego, który zbiera informacje od użytkownika podczas rozmowy, a następnie analizuje je, wyodrębnia dane w ustrukturyzowany sposób i wysyła je do aplikacji przez webhook po rozmowie.
Wymagania
- Konto ElevenLabs z kluczem API.
- Node.js v18 lub nowszy zainstalowany na twoim komputerze.
Konfiguracja
Utwórz nowy projekt Next.js
Zalecamy użycie naszego szablonu Agents Platform na v0.dev jako punktu wyjścia dla aplikacji. To gotowa do wdrożenia aplikacja Next.js z już zintegrowanym agentem ElevenLabs.
Skonfiguruj Agents Platform
Wykonaj kroki instalacji i konfiguracji z naszego przewodnika po Next.js. Następnie wróć tutaj, aby dodać zaawansowane funkcje.
Konfiguracja agenta
Skonfiguruj narzędzia klienta
Skonfiguruj poniższe narzędzie klienta do przechodzenia między krokami:
- Nazwa:
set_ui_state- Opis: Użyj tego narzędzia po stronie klienta, aby przechodzić między różnymi stanami interfejsu.
- Czekaj na odpowiedź:
true - Limit czasu odpowiedzi (sekundy): 1
- Parametry:
- Typ danych: string
- Identyfikator: step
- Wymagane: true
- Typ wartości: LLM Prompt
- Opis: Krok, do którego ma przejść interfejs. Używaj tylko kroków zdefiniowanych w prompcie systemowym!
Ustaw głos agenta
Przejdź do karty Voice i ustaw głos dla agenta. Listę polecanych głosów dla Agents Platform znajdziesz w dokumentacji Conversational Voice Design.
Ustaw kryteria oceny
Przejdź do karty Analysis i dodaj nowe kryterium oceny.
- Nazwa:
all_data_provided- Prompt: Oceń, czy użytkownik podał opis agenta, którego chce stworzyć, oraz opis głosu, jaki powinien mieć agent.
Skonfiguruj zbieranie danych
Możesz użyć analizy po rozmowie, aby wyodrębnić dane z konwersacji. W karcie Analysis, w sekcji Data Collection, dodaj poniższe elementy:
- Identyfikator:
voice_descriptiondata-type:String- Opis: Na podstawie opisu głosu, jaki użytkownik chce nadać agentowi, wygeneruj zwięzły opis głosu, uwzględniając wiek, akcent, ton i charakter, jeśli są dostępne.
- Identyfikator:
agent_descriptiondata-type:String- Opis: Na podstawie opisu agenta, którego użytkownik chce zaprojektować, wygeneruj prompt, który można wykorzystać do wytrenowania modelu działającego jako ten agent.
Skonfiguruj webhook po rozmowie
Webhooki po rozmowie służą do powiadamiania cię, gdy rozmowa się kończy oraz gdy analiza i wyodrębnianie danych zostaną ukończone.
W tym przykładzie webhook po rozmowie wykonuje kilka kroków:
- Tworzy własny Voice Design na podstawie
voice_description. - Tworzy agenta ElevenLabs dla użytkowników na podstawie podanego przez nich
agent_description. - Pobiera dokumenty bazy wiedzy ze stanu rozmowy zapisanego w Redis i dołącza bazę wiedzy do agenta.
- Wysyła użytkownikowi e-mail z informacją, że jego własny agent ElevenLabs jest gotowy do rozmowy.
Podczas pracy lokalnie potrzebujesz narzędzia takiego jak ngrok, aby udostępnić lokalny serwer w internecie.
Przejdź do ustawień Agents Platform i w sekcji Post-Call Webhook utwórz nowy webhook, a następnie wklej adres URL ngrok: https://<your-url>.ngrok-free.app/api/convai-webhook.
Po zapisaniu webhooka otrzymasz sekret webhooków. Przechowuj go bezpiecznie, ponieważ później musisz ustawić go w pliku .env.
Zintegruj zaawansowane funkcje
Skonfiguruj bazę danych Redis do przechowywania stanu rozmowy
W tym przykładzie używamy Redis do przechowywania stanu rozmowy. Dzięki temu po zakończeniu rozmowy możemy pobrać dokumenty bazy wiedzy ze stanu rozmowy.
Jeśli wdrażasz aplikację na Vercel, możesz skonfigurować integrację Upstash for Redis albo założyć darmowe konto Upstash i utworzyć nową bazę danych.
Skonfiguruj Resend do wysyłania e-maili po rozmowie
W tym przykładzie używamy Resend do wysyłania użytkownikowi e-maila po rozmowie. Aby to zrobić, musisz utworzyć darmowe konto Resend i skonfigurować nowy klucz API.
Ustaw zmienne środowiskowe
W katalogu głównym projektu utwórz plik .env i dodaj poniższe zmienne:
Skonfiguruj zabezpieczenia i uwierzytelnianie
Aby zabezpieczyć agenta ElevenLabs, włącz uwierzytelnianie na karcie Security w konfiguracji agenta.
Po włączeniu uwierzytelniania musisz utworzyć podpisany URL w bezpiecznym środowisku po stronie serwera, aby rozpocząć rozmowę z agentem. W Next.js możesz to zrobić, konfigurując nową trasę API.
Rozpocznij sesję rozmowy
Aby rozpocząć rozmowę, najpierw wywołaj trasę API, aby uzyskać podpisany URL, a następnie użyj hooka useConversation, aby skonfigurować sesję rozmowy.
Narzędzie klienta i zmienne dynamiczne
W konfiguracji agenta wcześniej zarejestrowałeś narzędzie klienta set_ui_state, aby umożliwić agentowi przechodzenie między różnymi stanami interfejsu. Aby wszystko połączyć, musisz przekazać implementację narzędzia klienta w opcjach conversation.startSession.
W tym miejscu możesz też przekazać do rozmowy zmienne dynamiczne.
Przesyłanie dokumentów do bazy wiedzy
Na etapie Training agent poprosi użytkownika o przesłanie dokumentów lub podanie adresów URL publicznych stron z informacjami, które powinny być dostępne dla jego agenta. Możesz tu użyć nowej funkcji after z Next.js 15, aby umożliwić przesyłanie dokumentów w tle.
Utwórz nową akcję serwera upload, która obsłuży tworzenie bazy wiedzy po wysłaniu formularza. Gdy wszystkie dokumenty bazy wiedzy zostaną utworzone, zapisz identyfikator rozmowy i identyfikatory bazy wiedzy w bazie Redis.
Obsługa webhooka po rozmowie
Webhook po rozmowie uruchamia się po zakończeniu rozmowy oraz zakończeniu analizy i ekstrakcji danych.
Dzieje się tu kilka rzeczy:
- Weryfikacja sekretu webhooka i utworzenie ładunku webhooka.
- Utworzenie własnego projektu głosu na podstawie
voice_description. - Utworzenie agenta ElevenLabs dla użytkownika na podstawie podanego przez niego
agent_description. - Pobranie dokumentów bazy wiedzy ze stanu rozmowy zapisanego w Redis i dołączenie bazy wiedzy do agenta.
- Wysłanie użytkownikowi e-maila z informacją, że jego własny agent ElevenLabs jest gotowy do rozmowy.
Omówmy każdy krok szczegółowo.
Zweryfikuj sekret webhooka i utwórz ładunek webhooka
Po otrzymaniu żądania webhooka najpierw weryfikujemy jego sekret i tworzymy ładunek webhooka.
Utwórz własny projekt głosu na podstawie voice_description
Na podstawie voice_description z ładunku webhooka tworzymy własny projekt głosu.
Pobierz dokumenty bazy wiedzy ze stanu rozmowy zapisanego w Redis
Przesyłanie dokumentów może trwać dłużej niż analiza danych webhooka, więc musimy odpytywać stan rozmowy w Redis, aż dokumenty zostaną przesłane.
Utwórz agenta ElevenLabs dla użytkownika na podstawie podanego agent_description
Utwórz agenta ElevenLabs dla użytkownika na podstawie podanego przez niego agent_description i dołącz do niego nowy projekt głosu oraz bazę wiedzy.
Wyślij użytkownikowi e-mail z informacją, że jego własny agent ElevenLabs jest gotowy do rozmowy
Gdy agent zostanie utworzony, możesz wysłać użytkownikowi e-mail z informacją, że jego własny agent ElevenLabs jest gotowy do rozmowy.
Możesz użyć new.email, przydatnego narzędzia zespołu Resend, do swobodnego projektowania szablonów e-maili. Gdy szablon będzie gotowy, utwórz nowy komponent i dodaj identyfikator agenta jako prop.
Uruchom aplikację
Aby uruchomić aplikację lokalnie end-to-end, najpierw uruchom serwer deweloperski Next.js, a potem w osobnym terminalu tunel ngrok, aby udostępnić handler webhooka w internecie.
- Terminal 1:
- Uruchom
pnpm dev, aby włączyć serwer deweloperski Next.js.
- Uruchom
- Terminal 2:
- Uruchom
ngrok http 3000, aby udostępnić handler webhooka w internecie.
- Uruchom
Teraz otwórz http://localhost:3000 i zacznij projektować własnego agenta ElevenLabs swoim głosem!