Wykrywanie języka

Pozwól agentowi automatycznie przełączyć się na odpowiedni język

Przegląd

Narzędzie systemowe language detection pozwala agentowi ElevenLabs przełączyć język odpowiedzi na dowolny język obsługiwany przez agenta. To narzędzie systemowe nie jest włączane automatycznie. Jego opis możesz dostosować do swojego przypadku użycia.

Gdy to możliwe, zalecamy włączyć dla agenta wszystkie języki oraz narzędzie systemowe wykrywania języka.

Nasze narzędzie wykrywania języka uruchamia zmianę języka w dwóch przypadkach, oba zależą od wykrytego języka i treści odebranego audio:

  • detection — jeśli użytkownik mówi w języku innym niż obecny język odpowiedzi, nastąpi przełączenie
  • content — jeśli użytkownik poprosi w obecnym języku o zmianę na nowy język, nastąpi przełączenie

Cel: Automatyczne przełączanie 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ęzyka
  • language (string, wymagany): Kod języka, na który ma nastąpić przełączenie (musi znajdować się na liście obsługiwanych języków)

Format wywołania funkcji:

{
"type": "function",
"function": {
"name": "language_detection",
"arguments": "{\"reason\": \"User requested Spanish\", \"language\": \"es\"}"
}
}

Wdrożenie: 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 wykrytych języków.

Włączanie wykrywania języka

1

Skonfiguruj obsługiwane języki

Języki, na które agent może się przełączać, musisz zdefiniować na karcie ustawień Agent.

Języki agenta

2

Dodaj narzędzie wykrywania języka

Włącz wykrywanie języka, dodając do narzędzi agenta gotowe narzędzie systemowe na karcie Agent. Opcja jest dostępna automatycznie po wybraniu add tool.

Narzędzie systemowe

3

Skonfiguruj opis narzędzia

Dodaj opis określający, kiedy wywołać narzędzie

Opis

Ograniczanie przełączania do początku rozmowy

W długiej rozmowie mowa w tle lub nietypowy akcent mogą czasem wywołać zmianę, której rozmówca nie zamierzał. Włączenie only_at_conversation_start ogranicza przełączanie do dwóch pierwszych wypowiedzi użytkownika.

Jeśli język nie zmieni się podczas tych dwóch wypowiedzi, wykrywanie języka zostanie wyłączone do końca rozmowy: każda późniejsza próba się nie powiedzie, a agent będzie nadal mówił w obecnym języku. Jeśli język zmieni się w tym czasie, przełączanie pozostanie dostępne do końca rozmowy, więc błędne wykrycie nadal można poprawić.

Opcja jest domyślnie wyłączona.

Wybierz narzędzie Detect language na karcie Tools i włącz Only at start of conversation.

Gdy przełączenie jest zablokowane, narzędzie zwraca do LLM błąd z instrukcją, by nadal mówił w obecnym języku. Rozmówca nie widzi powodu.

Implementacja API

Podczas tworzenia agenta przez API możesz dodać narzędzie language detection do konfiguracji agenta. Powinno być zdefiniowane jako narzędzie systemowe:

from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs
elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")
# Create language presets
language_presets = {
"nl": {"overrides": {"agent": {"first_message": "Hoi, hoe gaat het met je?"}}},
"fi": {"overrides": {"agent": {"first_message": "Hei, kuinka voit?"}}},
"tr": {"overrides": {"agent": {"first_message": "Merhaba, nasılsın?"}}},
"ru": {"overrides": {"agent": {"first_message": "Привет, как ты?"}}},
"pt": {"overrides": {"agent": {"first_message": "Oi, como você está?"}}},
}
response = elevenlabs.conversational_ai.agents.create(
conversation_config=ConversationalConfig(
agent=AgentConfig(
first_message="Hi how are you?",
prompt={
"built_in_tools": {
"language_detection": {
"type": "system",
"name": "language_detection",
# Optional: customize when the tool should be triggered
"description": "",
"params": {"system_tool_type": "language_detection"},
}
},
},
),
language_presets=language_presets,
),
)
Pozostaw opis pusty, aby użyć domyślnego promptu wykrywania języka.