---
title: "Model Configurations"
description: "Voice Agents need AI Models to work, like LLM (Large Language Model), TTS (Voice) and STT (Transcriber). You can use any of your faviourite providers with Dograh Platform to run your Voice Agent."
---

## How Model Configuration Works

Dograh uses a **two-level configuration system** for AI models:

1. **Global configuration** — A single set of model settings (LLM, TTS, STT) that applies to **all agents** by default.
2. **Agent-level overrides** — Optional per-agent settings that override the global configuration for specific services.

If no overrides are set for an agent, it uses the global configuration as-is.

<Note>
Agent-level overrides are **selective** — you can override only the services you want to change. For example, you can override just the LLM provider for a specific agent while keeping the global TTS and STT settings. There is no need to reconfigure every service.
</Note>

## Global Configuration

The global configuration is the default model setup shared across all your agents. Dograh ships with its own models by default — when you sign up on https://app.dograh.com or set up the platform on your self-hosted infrastructure, you get some Dograh model credits to start with.

To configure the global models, go to **Model Configurations** in your dashboard:
- **Hosted:** `https://app.dograh.com/model-configurations`
- **Self-hosted:** `http://localhost:3010/model-configurations`

![Model Configuration](../images/service-configuration.png)

From here you can configure each service:

| Service | What it does |
|---------|-------------|
| **LLM** | The language model that generates responses (e.g., OpenAI GPT-4.1, Anthropic Claude) |
| **TTS (Voice)** | The text-to-speech model that converts responses to spoken audio (e.g., ElevenLabs, Cartesia) |
| **STT (Transcriber)** | The speech-to-text model that transcribes user speech (e.g., Deepgram, AssemblyAI) |
| **Realtime** | A single speech-to-speech model that handles LLM, TTS, and STT in one (e.g., Gemini Live) |

Select a provider from the dropdown and configure the API key, model, and any provider-specific settings. For Dograh's own models, see [Service Keys](api-keys) for instructions on creating Service Keys.

## Agent-Level Model Overrides

You can override the global model configuration for any individual agent. This is useful when different agents have different requirements — for example, a customer support agent might use a faster, cheaper LLM while a sales agent uses a more capable one.

### Configuring overrides

1. Open the agent you want to customize.
2. Go to **Settings** in the agent detail page.
3. Select the **Model Overrides** tab.
4. You will see tabs for each service: **LLM**, **Voice** (TTS), and **Transcriber** (STT).
5. Toggle **Override** on for the service you want to change.
6. Configure the provider, model, and other settings as needed.
7. Save your changes.

### Selective overrides

Each service can be toggled independently. When an override is **off** for a service, the agent inherits the global setting for that service. When an override is **on**, the agent uses the override setting instead.

| LLM Override | TTS Override | STT Override | Result |
|---|---|---|---|
| Off | Off | Off | Agent uses global config for all services |
| On | Off | Off | Agent uses custom LLM, global TTS and STT |
| Off | On | Off | Agent uses global LLM and STT, custom TTS |
| On | On | On | Agent uses custom config for all services |

For example, if you only want to change the voice for a specific agent:
1. Leave the LLM and Transcriber overrides **off**.
2. Toggle the Voice override **on**.
3. Select a different TTS provider or voice.
4. The agent will use your custom voice while still using the global LLM and STT.

### Realtime mode override

You can also switch an individual agent to use a **Realtime** provider (such as Gemini Live) even if the global configuration uses standard LLM + TTS + STT. Toggle the **Realtime** switch in the Model Overrides tab, then configure the realtime provider, model, and voice.

<Note>
When an agent uses a Realtime provider, it replaces the separate TTS and STT services with a single speech-to-speech model. An **LLM** is still required alongside the Realtime model — it's used for out-of-band tasks like variable extraction and QA analysis, which the realtime service does not handle. Context compaction is not applicable in Realtime mode and is ignored if enabled.
</Note>

## Gemini 3.1 Live

Gemini 3.1 Live is Google's realtime multimodal API that handles both LLM and voice in a single model. Instead of configuring separate LLM, TTS, and STT services, Gemini Live acts as an all-in-one realtime provider — it processes speech input, generates a response, and speaks it back, all over a single streaming connection.

Dograh supports Gemini 3.1 Live as a **Realtime** provider. The default model is `gemini-3.1-flash-live-preview`.

### Available Voices

You can choose from the following built-in voices:

| Voice | Description |
|-------|-------------|
| Puck | Default voice |
| Charon | — |
| Kore | — |
| Fenrir | — |
| Aoede | — |

### Getting a Gemini API Key

To use Gemini 3.1 Live with Dograh, you need a Google Gemini API key. Follow these steps:

1. Go to [Google AI Studio](https://aistudio.google.com/).
2. Sign in with your Google account.
3. Click on **Get API Key** in the left sidebar.
4. Click **Create API Key**.
5. Select an existing Google Cloud project or create a new one.
6. Copy the generated API key and store it securely.

<Note>
  The Gemini API key is different from a Google Cloud service account key. You specifically need a **Gemini API key** from Google AI Studio for use with Dograh.
</Note>

### Configuring Gemini 3.1 Live in Dograh

1. Go to **Model Configurations** in your Dograh dashboard (`https://app.dograh.com/model-configurations` for hosted or `http://localhost:3010/model-configurations` for local).
2. Under the **Realtime** section, select `google_realtime` as the provider.
3. Paste your Gemini API key.
4. Select the model (`gemini-3.1-flash-live-preview` is available by default, or you can enter a model name manually).
5. Choose a voice from the dropdown (default is `Puck`).
6. Select the language (currently `en` is supported).

<Note>
  When using a Realtime provider like Gemini Live, you do not need to configure separate TTS and STT services — the realtime model handles speech in and out. However, you **must** still configure an **LLM** under the LLM tab: it powers variable extraction and QA analysis, which the realtime service does not perform.
</Note>