> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Språkidentifiering

## Översikt

Systemverktyget `language detection` låter din ElevenLabs-agent byta utmatningsspråk till vilket språk som helst som agenten stöder.
Det här systemverktyget aktiveras inte automatiskt. Beskrivningen kan anpassas efter ditt specifika användningsfall.

> **Note**
>
> Där det är möjligt rekommenderar vi att du aktiverar alla språk för en agent och aktiverar systemverktyget för
> språkidentifiering.

Vårt verktyg för språkidentifiering utlöser språkbyte i två fall, båda baserade på det mottagna ljudets identifierade språk och innehåll:

* `detection` om en användare talar ett annat språk än det aktuella utmatningsspråket utlöses ett byte
* `content` om användaren ber på det aktuella språket att byta till ett nytt språk utlöses ett byte

**Syfte**: Växla automatiskt till användarens identifierade språk under samtal.

**Utlösande villkor**: LLM:en ska anropa det här verktyget när:

* Användaren talar ett annat språk än det aktuella samtalsspråket
* Användaren uttryckligen ber om att byta språk
* Samtalet behöver stöd för flera språk

**Parametrar**:

* `reason` (sträng, krävs): Anledningen till språkbytet
* `language` (sträng, krävs): Språkkoden att byta till (måste finnas i listan över språk som stöds)

**Format för funktionsanrop**:

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

**Implementering**: Konfigurera språk som stöds i agentinställningarna och lägg till systemverktyget för språkidentifiering. Agenten växlar automatiskt röst och svar så att de matchar de identifierade språken.

## Aktivera språkidentifiering

#### Konfigurera språk som stöds

Språken som agenten kan byta till måste definieras på fliken med inställningar för `Agent`.

![Agentspråk](/docs/_fern-img/633707d54276febd3baa054c4f41b186225b74f606307a46e8262607befc8381.webp)

#### Lägg till verktyget för språkidentifiering

Aktivera språkidentifiering genom att välja det förkonfigurerade systemverktyget bland agentens verktyg på fliken `Agent`.
Det finns automatiskt tillgängligt som ett alternativ när du väljer `add tool`.

![Systemverktyg](/docs/_fern-img/3d17048ab2bc1a0547c49056abb98f624caf866927ff1714af27f898b06ab18f.webp)

#### Konfigurera verktygsbeskrivningen

Lägg till en beskrivning som anger när verktyget ska anropas

![Beskrivning](/docs/_fern-img/3bebc9fe07dba7121bce7793f3793858c710fc8ea1c221347604eb05929271df.webp)

## Begränsa byten till början av samtalet

I ett långt samtal kan bakgrundstal eller en ovanlig accent ibland utlösa ett byte som
uppringaren inte avsåg. Genom att aktivera `only_at_conversation_start` begränsas byten till de två första
användarturerna.

Om språket inte byts under de två turerna inaktiveras språkidentifieringen för resten
av samtalet: varje senare försök misslyckas och agenten fortsätter att tala det aktuella språket. Om
språket byts inom det fönstret förblir byten tillgängliga under resten av
samtalet, så att en felaktig identifiering fortfarande kan korrigeras.

Alternativet är inaktiverat som standard.

#### Uppdatera via instrumentpanelen

Välj verktyget **Identifiera språk** på fliken **Verktyg** och aktivera **Endast i början av samtalet**.

#### Uppdatera via CLI

#### Hämta agentkonfigurationen

```bash
elevenlabs agents pull
```

#### Redigera \`agent\_configs/\<agent-name>.json\`

Ange `only_at_conversation_start` för verktyget för språkidentifiering. Omgivande fält
har utelämnats för korthetens skull.

```json
{
  "conversation_config": {
    "agent": {
      "prompt": {
        "built_in_tools": {
          "language_detection": {
            "type": "system",
            "name": "language_detection",
            "params": {
              "system_tool_type": "language_detection",
              "only_at_conversation_start": true
            }
          }
        }
      }
    }
  }
}
```

#### Överför dina ändringar

```bash
elevenlabs agents push
```

#### Uppdatera via API:t

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "agent": {
            "prompt": {
                "built_in_tools": {
                    "language_detection": {
                        "type": "system",
                        "name": "language_detection",
                        "params": {
                            "system_tool_type": "language_detection",
                            "only_at_conversation_start": True,
                        },
                    }
                }
            }
        }
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    agent: {
      prompt: {
        builtInTools: {
          languageDetection: {
            type: "system",
            name: "language_detection",
            params: {
              systemToolType: "language_detection",
              onlyAtConversationStart: true,
            },
          },
        },
      },
    },
  },
});
```

> **Note**
>
> När byte blockeras returnerar verktyget ett fel till LLM:et med instruktionen att fortsätta tala
> det aktuella språket. Orsaken visas inte för uppringaren.

## API-implementering

När du skapar en agent via API:t kan du lägga till verktyget `language detection` i agentkonfigurationen. Det ska definieras som ett systemverktyg:

```python
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,
    ),
)
```

```javascript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient({
  apiKey: "YOUR_API_KEY",
});

await elevenlabs.conversationalAi.agents.create({
  conversationConfig: {
    agent: {
      firstMessage: "Hi, how are you?",
      prompt: {
        builtInTools: {
          languageDetection: {
            type: "system",
            name: "language_detection",
            description: "", // Optional: Customize when the tool should be triggered
            params: { systemToolType: "language_detection" },
          },
        },
      },
    },
    languagePresets: {
      nl: { overrides: { agent: { firstMessage: "Hoi, hoe gaat het met je?" } } },
      fi: {
        overrides: { agent: { firstMessage: "Hei, kuinka voit?" } },
        firstMessageTranslation: {
          sourceHash: '{"firstMessage":"Hi how are you?","language":"en"}',
          text: "Hei, kuinka voit?",
        },
      },
      tr: { overrides: { agent: { firstMessage: "Merhaba, nasılsın?" } } },
      ru: { overrides: { agent: { firstMessage: "Привет, как ты?" } } },
      pt: { overrides: { agent: { firstMessage: "Oi, como você está?" } } },
      ar: { overrides: { agent: { firstMessage: "مرحبًا كيف حالك؟" } } },
    },
  },
});
```

```bash
curl -X POST https://api.elevenlabs.io/v1/convai/agents/create \
     -H "xi-api-key: YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
  "conversation_config": {
    "agent": {
      "first_message": "Hi how are you?",
      "prompt": {
        "built_in_tools": {
          "language_detection": {
            "type": "system",
            "name": "language_detection",
            "description": "",
            "params": { "system_tool_type": "language_detection" }
          }
        }
      }
    },
    "language_presets": {
      "nl": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Hoi, hoe gaat het met je?",
            "language": null
          },
          "tts": null
        }
      },
      "fi": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Hei, kuinka voit?",
            "language": null
          },
          "tts": null
        }
      },
      "tr": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Merhaba, nasılsın?",
            "language": null
          },
          "tts": null
        }
      },
      "ru": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Привет, как ты?",
            "language": null
          },
          "tts": null
        }
      },
      "pt": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Oi, como você está?",
            "language": null
          },
          "tts": null
        }
      },
      "ar": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "مرحبًا كيف حالك؟",
            "language": null
          },
          "tts": null
        }
      }
    }
  }
}'
```

> **Tip**
>
> Lämna beskrivningen tom för att använda standardprompten för språkidentifiering.