Settings are the runtime-configurable properties of AI services, including things like the model, voice, language, temperature, and other provider-specific options. Every service exposes aDocumentation Index
Fetch the complete documentation index at: https://docs.pipecat.ai/llms.txt
Use this file to discover all available pages before exploring further.
Settings class that you can use in two ways:
- Configure at initialization: pass a
settings=argument when constructing a service. - Update at runtime: push an
*UpdateSettingsFramethrough the pipeline to change settings mid-conversation.
Configuring settings at initialization
Pass asettings= argument to any service constructor using that service’s Settings class:
Common settings by service type
Each service type has a base set of settings. Individual services may extend these with provider-specific fields.LLM settings
| Setting | Type | Description |
|---|---|---|
model | str | Model identifier (e.g. "gpt-4o", "claude-sonnet-4-5-20250929") |
system_instruction | str | System prompt for the model. See Context Management for how this interacts with developer messages and context system messages. |
temperature | float | Sampling temperature |
max_tokens | int | Maximum tokens to generate |
top_p | float | Nucleus sampling probability |
top_k | int | Top-k sampling parameter |
frequency_penalty | float | Frequency penalty |
presence_penalty | float | Presence penalty |
seed | int | Random seed for reproducibility |
TTS settings
| Setting | Type | Description |
|---|---|---|
model | str | TTS model identifier |
voice | str | Voice identifier or name |
language | Language | str | Language for speech synthesis |
STT settings
| Setting | Type | Description |
|---|---|---|
model | str | STT model identifier |
language | Language | str | Language for speech recognition |
Individual services extend these base settings with provider-specific fields.
For example, Deepgram STT adds
endpointing, smart_format, diarize, and
more. See the individual service
documentation for the full list of
available settings.Updating settings at runtime
You can change service settings while the pipeline is running by pushing an update settings frame. This is useful for scenarios like switching languages, changing voices, or adjusting LLM parameters mid-conversation. Use these frame types:| Frame | Target |
|---|---|
LLMUpdateSettingsFrame | LLM services |
TTSUpdateSettingsFrame | TTS services |
STTUpdateSettingsFrame | STT services |
Update settings frames are uninterruptible. They will always be processed even
if a user interruption occurs.
Service-specific settings
Services can extend the base settings with provider-specific fields. For example:- Cartesia TTS adds
generation_config(volume, speed, emotion) andpronunciation_dict_id - OpenAI TTS adds
instructionsandspeed - Deepgram STT adds
endpointing,smart_format,diarize,punctuate, and many more - OpenAI LLM adds
max_completion_tokens
Passing extra parameters
Every Settings class includes anextra dict for passing provider-specific parameters that Pipecat doesn’t have a dedicated field for. This is useful when a provider supports options that haven’t been explicitly added to the Settings dataclass yet:
extra are passed through to the underlying API call. You can also update extra at runtime:
The
extra dict is merged on updates — new keys are added and existing keys
are overwritten, but keys not present in the delta are left unchanged.