Models and generation
These environment variables control which deployment new conversations start with, how DIAL Chat runs a generation through DIAL Core, which model names conversations and refines text, and how voice input is transcribed. This reference is for platform engineers who tune Chat's AI behavior; it assumes you know how DIAL Chat is configured.
Default deployment
| Variable | Default | Description |
|---|---|---|
DEFAULT_DEPLOYMENT | — | The ID of the operator's default deployment for new conversations. |
DEFAULT_DEPLOYMENT_PINNED | false | When true, DEFAULT_DEPLOYMENT takes priority over the user's saved selection for new conversations, and is pinned to the top of the model selector. When false, the user's own preference comes first. |
A default deployment tagged with one of HIDDEN_ENTITY_TAGS is skipped; new conversations then start with the user's last-used model, then the first visible deployment. An overlay host's modelId outranks all of these.
Responses API
| Variable | Default | Description |
|---|---|---|
RESPONSES_API_ENABLED | false | Server-only switch for running eligible generations through the OpenAI Responses API. A deployment must also report features.responsesApi=true; otherwise Chat uses Chat Completions. |
RESPONSES_BACKGROUND_ENABLED | false | Server-only switch for running eligible Responses generations as DIAL Core background jobs, so a generation survives a closed tab, a browser refresh, or a BFF restart. It needs RESPONSES_API_ENABLED, a deployment that reports features.responsesApi=true and serves openaiResponses in DIAL Core, and DIAL Core 0.48.0 or later. |
A background generation's first text arrives later than on the stateless path, because the job waits in the provider's queue first. Turning background mode off affects new generations only.
Generation limits
| Variable | Default | Description |
|---|---|---|
MAX_GENERATION_DURATION_MS | 1800000 (30 min) | How long a generation may stay active before Chat requests its cancellation. Independent of the browser connection. |
GENERATION_PREPARATION_TIMEOUT_MS | 30000 | How long Chat may prepare a generation before its stream opens. On expiry the request fails with 503. Minimum 1000. |
GENERATION_FINALIZE_TIMEOUT_MS | 60000 | How long a generation's final save may stay unsettled before its listeners are released. A new generation on the same conversation stays blocked until the save settles. Minimum 1000. |
A generation keeps running when the browser disconnects, and the full answer is saved. A second generation on the same conversation answers 409 while the first one is still running or saving.
Utility model
The utility model names conversations and powers Refine with AI in the editors of skills, scheduled tasks, prompts, toolsets, and applications.
| Variable | Default | Description |
|---|---|---|
UTILITY_MODEL | — | The deployment ID of the utility model. It stays on the server. Unset or blank turns text refinement off. |
LLM_CONVERSATION_NAMING_ENABLED | false | When true and UTILITY_MODEL is set, the BFF renames a conversation after the first assistant reply. Naming also needs DIAL_API_KEY. |
UTILITY_NAMING_TIMEOUT_MS | 10000 | The timeout of a naming request, in milliseconds. |
Text refinement uses the user's own credentials; naming uses DIAL_API_KEY.
Voice input
| Variable | Default | Description |
|---|---|---|
ASR_MODEL | — | The deployment ID of a dedicated speech-to-text model. When set, together with the voice-input UI feature, the microphone button is always shown and recordings are transcribed by this model. When unset, the button appears only for deployments whose inputAttachmentTypes include an audio type, and the selected deployment handles the audio. |
TRANSCRIBE_SIZE_LIMIT_BYTES | 5242880 (5 MB) | The largest recording accepted for transcription. |
Prompt overrides
These server-only variables replace a built-in instruction in full. Unset, empty, or blank values keep the built-in one; a value is used as written, with no placeholders.
| Variable | Operation |
|---|---|
CONVERSATION_NAMING_SYSTEM_PROMPT | Automatic naming and the Rename conversation action |
TEXT_REFINEMENT_SKILL_DESCRIPTION_PROMPT | Refine a skill description |
TEXT_REFINEMENT_SKILL_INSTRUCTIONS_PROMPT | Refine skill instructions |
TEXT_REFINEMENT_SCHEDULED_TASK_DESCRIPTION_PROMPT | Refine a scheduled task description |
TEXT_REFINEMENT_SCHEDULED_TASK_INSTRUCTIONS_PROMPT | Refine scheduled task instructions |
TEXT_REFINEMENT_APPLICATION_DESCRIPTION_PROMPT | Refine an application description |
TEXT_REFINEMENT_TOOLSET_DESCRIPTION_PROMPT | Refine a toolset description |
TEXT_REFINEMENT_PROMPT_DESCRIPTION_PROMPT | Refine a prompt description |
TEXT_REFINEMENT_PROMPT_INSTRUCTIONS_PROMPT | Refine prompt instructions |
TEXT_REFINEMENT_PROJECT_DESCRIPTION_PROMPT | Refine a project description |
TEXT_REFINEMENT_PROJECT_INSTRUCTIONS_PROMPT | Refine project instructions |
TRANSCRIPTION_PROMPT | Transcription through ASR_MODEL. It has no default, so the request carries only the audio; set it only when ASR_MODEL is a general-purpose model that needs an instruction. |
Keep the expected output format in a custom prompt: refinement returns only the rewritten text, naming only a title, and transcription only the recognized speech. Quote a multiline value:
CONVERSATION_NAMING_SYSTEM_PROMPT="Create a concise conversation title.
Return only the title, in the language of the conversation."
Further reading
- Files and limits — upload and archive limits
- Models in DIAL Core — the deployment features Chat reads, such as the Responses API
- Features and UI —
voice-inputand other UI features