Podłącz własny model
Podłącz własny model
Połącz agenta z własnym LLM lub hostuj własny serwer.
Custom LLM pozwala połączyć rozmowy z własnym LLM przez zewnętrzny endpoint. ElevenLabs obsługuje też natywnie zintegrowane LLM
Własne LLM pozwalają użyć własnego klucza OpenAI API lub uruchomić całkowicie własny serwer LLM.
Omówienie
Domyślnie używamy własnych danych logowania do popularnych modeli, takich jak OpenAI. Aby użyć własnego serwera LLM, musi on być zgodny z jedną z poniższych struktur żądań i odpowiedzi OpenAI:
- Chat Completions API (
/v1/chat/completions) - Responses API (
/v1/responses)
Responses API to nowszy format API OpenAI, obsługujący dodatkowe funkcje. Oba formaty API są w pełni obsługiwane przy integracji z własnym LLM.
Poniższe przewodniki obejmują oba przypadki:
- Użyj własnego klucza OpenAI: użyj własnego klucza OpenAI API na naszej platformie.
- Własny serwer LLM: hostuj i podłącz własną implementację serwera LLM.
Dowiesz się, jak:
- Zapisać klucz OpenAI API w ElevenLabs
- Hostować serwer odtwarzający endpoint Chat Completions lub Responses od OpenAI
- Skierować ElevenLabs do własnego endpointu
- W razie potrzeby przekazywać dodatkowe parametry do LLM
Podsumowanie rozumowania
Endpoint musi zwracać rozumowanie oddzielnie od końcowej odpowiedzi. ElevenLabs nie generuje rozumowania na podstawie końcowej odpowiedzi.
Aby żądać rozumowania z obsługiwanego endpointu, włącz Podsumowanie rozumowania w ustawieniach LLM agenta lub ustaw enable_reasoning_summary przez API.
Zwracanie rozumowania
Użyj formatu zgodnego z endpointem:
Chat Completions API
Responses API
Przesyłaj strumieniowo rozumowanie w polu reasoning lub reasoning_content każdej delty odpowiedzi.
W przypadku endpointów zgodnych z Gemini ElevenLabs żąda przemyśleń za pomocą
google.thinking_config.include_thoughts i odczytuje treść oznaczoną jako
extra_content.google.thought.
Więcej informacji o przechowywaniu, dostarczaniu i ograniczeniach znajdziesz w Podsumowaniu rozumowania.
Używanie własnego klucza OpenAI
Aby zintegrować własny klucz OpenAI, zaktualizuj ustawienia agenta w panelu ElevenLabs, aby wskazywały własny serwer LLM, i utwórz sekret zawierający OPENAI_API_KEY:
W ustawieniach agenta w panelu ElevenLabs wybierz “Custom LLM” z menu rozwijanego “LLM” po prawej stronie.

Własny serwer LLM
Aby użyć własnego serwera LLM, skonfiguruj zgodny endpoint serwera w stylu OpenAI. Możesz wdrożyć Chat Completions API (/v1/chat/completions) albo Responses API (/v1/responses).
Oba endpointy muszą zwracać odpowiedzi w formacie SSE (Server-Sent Events) z Content-Type: text/event-stream.
Chat Completions API
Responses API
Chat Completions API używa endpointu /v1/chat/completions.
Każdy fragment musi mieć format data: {json}\n\n, a strumień musi kończyć się na data: [DONE]\n\n.
Oto przykładowa implementacja serwera:
Uruchom ten kod lub kod własnego serwera.

Konfiguracja publicznego URL serwera
Aby udostępnić serwer, utwórz publiczny URL za pomocą narzędzia do tunelowania, takiego jak ngrok:

Konfiguracja CustomLLM ElevenLabs
Następnie zaktualizuj ustawienia agenta w panelu ElevenLabs, aby wskazywały własny serwer LLM.

Skieruj URL serwera do endpointu ngrok i ustaw “Limit token usage” na 5000.
Możesz teraz zacząć korzystać z agenta z własnym serwerem LLM.
Optymalizacja pod kątem wolnych modeli LLM
Jeśli twój własny LLM przetwarza dane wolno (na przykład przez rozumowanie agentowe lub wymagania dotyczące wstępnego przetwarzania), możesz poprawić płynność rozmowy, stosując słowa buforujące w odpowiedziach strumieniowych. Ta technika pomaga zachować naturalną prozodię mowy, gdy LLM generuje pełną odpowiedź.
Słowa buforujące
Gdy LLM potrzebuje więcej czasu na przetworzenie pełnej odpowiedzi, zwróć początkową odpowiedź kończącą się na "... " (wielokropek, po którym następuje spacja). Dzięki temu system Text to Speech zachowuje naturalną płynność, a rozmowa pozostaje dynamiczna.
Tworzy to naturalne pauzy, które dobrze łączą się z kolejną treścią, nad którą LLM może dłużej się zastanawiać. Dodatkowa spacja jest kluczowa, aby kolejna treść nie została dołączona do „…”, co może powodować zniekształcenia dźwięku.
Implementacja
Tak zmodyfikujesz serwer własnego LLM, aby używać słów buforujących:
Integracja narzędzi systemowych
Twój własny LLM może uruchamiać narzędzia systemowe, aby kontrolować przebieg i stan rozmowy. Gdy skonfigurujesz je w agencie, narzędzia te są automatycznie dodawane do parametru tools w żądaniach ukończenia czatu.
Jak działają narzędzia systemowe
- Decyzja LLM: Twój własny LLM decyduje, kiedy wywołać te narzędzia na podstawie kontekstu rozmowy
- Odpowiedź narzędzia: LLM odpowiada wywołaniami funkcji w standardowym formacie OpenAI
- Przetwarzanie backendu: ElevenLabs przetwarza wywołania narzędzi i aktualizuje stan rozmowy
Więcej informacji o narzędziach systemowych znajdziesz w naszym przewodniku
Dostępne narzędzia systemowe
Zakończenie rozmowy
Cel: Automatyczne kończenie rozmów po spełnieniu odpowiednich warunków.
Warunki wywołania: LLM powinien wywołać to narzędzie, gdy:
- Główne zadanie zostało wykonane, a użytkownik jest zadowolony
- Rozmowa naturalnie dobiegła końca za obopólną zgodą
- Użytkownik wyraźnie wskazuje, że chce zakończyć rozmowę
Parametry:
reason(string, wymagany): Powód zakończenia rozmowymessage(string, opcjonalny): Wiadomość pożegnalna wysyłana użytkownikowi przed zakończeniem rozmowy
Format wywołania funkcji:
Implementacja: Skonfiguruj jako narzędzie systemowe w ustawieniach agenta. LLM otrzyma szczegółowe instrukcje, kiedy wywołać tę funkcję.
Dowiedz się więcej: Narzędzie do kończenia rozmowy
Wykrywanie języka
Cel: Automatyczna zmiana na wykryty język użytkownika podczas rozmowy.
Warunki wywołania: LLM powinien wywołać to narzędzie, gdy:
- Użytkownik mówi w języku innym niż bieżący język rozmowy
- Użytkownik wyraźnie prosi o zmianę języka
- Rozmowa wymaga obsługi wielu języków
Parametry:
reason(string, wymagany): Powód zmiany językalanguage(string, wymagany): Kod języka, na który ma nastąpić zmiana (musi być na liście obsługiwanych języków)
Format wywołania funkcji:
Implementacja: Skonfiguruj obsługiwane języki w ustawieniach agenta i dodaj narzędzie systemowe wykrywania języka. Agent automatycznie zmieni głos i odpowiedzi, aby pasowały do wykrytego języka.
Dowiedz się więcej: Narzędzie do wykrywania języka
Przekazanie do agenta
Cel: Przekazywanie rozmów między wyspecjalizowanymi agentami AI zależnie od potrzeb użytkownika.
Warunki wywołania: LLM powinien wywołać to narzędzie, gdy:
- Prośba użytkownika wymaga specjalistycznej wiedzy lub innych możliwości agenta
- Obecny agent nie może odpowiednio obsłużyć zapytania
- Przebieg rozmowy wskazuje na potrzebę innego typu agenta
Parametry:
reason(string, opcjonalny): Powód przekazania do agentaagent_number(integer, wymagany): Numer od zera agenta, do którego ma zostać przekazana rozmowa (na podstawie skonfigurowanych reguł przekazywania)
Format wywołania funkcji:
Implementacja: Zdefiniuj reguły przekazywania, które mapują warunki na konkretne identyfikatory agentów. Skonfiguruj, do których agentów obecny agent może przekazywać rozmowy. W konfiguracji przekazywania agenci są wskazywani numerami od zera.
Dowiedz się więcej: Narzędzie do przekazywania do agenta
Przekazanie do człowieka
Cel: Płynne przekazywanie rozmów operatorom, gdy pomoc AI nie wystarcza.
Warunki wywołania: LLM powinien wywołać to narzędzie, gdy:
- Problem jest złożony i wymaga ludzkiej oceny
- Użytkownik wyraźnie prosi o pomoc człowieka
- AI osiąga granice swoich możliwości w przypadku konkretnej prośby
- Uruchomione zostają procedury eskalacji
Parametry:
reason(string, opcjonalny): Powód przekazaniatransfer_number(string, wymagany): Numer telefonu, na który ma zostać przekazana rozmowa (musi odpowiadać skonfigurowanym numerom)client_message(string, wymagany): Wiadomość odczytywana klientowi podczas oczekiwania na przekazanieagent_message(string, wymagany): Wiadomość dla operatora odbierającego rozmowę
Format wywołania funkcji:
Implementacja: Skonfiguruj numery telefonów i warunki przekazywania. Zdefiniuj wiadomości zarówno dla klienta, jak i operatora przejmującego rozmowę. Działa z Twilio i trunkingiem SIP.
Dowiedz się więcej: Narzędzie do przekazywania do człowieka
Pominięcie tury
Cel: Pozwala agentowi zrobić pauzę i czekać na dane od użytkownika bez mówienia.
Warunki wywołania: LLM powinien wywołać to narzędzie, gdy:
- Użytkownik wskazuje, że potrzebuje chwili („Daj mi sekundę”, „Muszę się zastanowić”)
- Użytkownik prosi o pauzę w rozmowie
- Agent wykrywa, że użytkownik potrzebuje czasu na przetworzenie informacji
Parametry:
reason(string, opcjonalny): Dowolny powód wyjaśniający, dlaczego potrzebna jest pauza
Format wywołania funkcji:
Implementacja: Nie wymaga dodatkowej konfiguracji. Narzędzie po prostu sygnalizuje agentowi, że ma zachować ciszę, dopóki użytkownik ponownie się nie odezwie.
Dowiedz się więcej: Narzędzie do pomijania tury
Wykrywanie poczty głosowej
Parametry:
reason(string, wymagany): Powód wykrycia poczty głosowej (np. „wykryto automatyczne powitanie”, „brak odpowiedzi człowieka”)
Format wywołania funkcji:
Dowiedz się więcej: Narzędzie do wykrywania poczty głosowej
Przykładowe żądanie z narzędziami systemowymi
Gdy narzędzia systemowe są skonfigurowane, twój własny LLM otrzyma żądania obejmujące narzędzia w standardowym formacie OpenAI:
Twój własny LLM musi obsługiwać wywoływanie funkcji, aby korzystać z narzędzi systemowych. Upewnij się, że model może generować prawidłowe odpowiedzi wywołań funkcji w formacie OpenAI.
Dodatkowe funkcje
Parametry własnego LLM
Możesz przekazać dodatkowe parametry do implementacji własnego LLM.
