Skip to main content

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​

VariableDefaultDescription
DEFAULT_DEPLOYMENT—The ID of the operator's default deployment for new conversations.
DEFAULT_DEPLOYMENT_PINNEDfalseWhen 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​

VariableDefaultDescription
RESPONSES_API_ENABLEDfalseServer-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_ENABLEDfalseServer-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​

VariableDefaultDescription
MAX_GENERATION_DURATION_MS1800000 (30 min)How long a generation may stay active before Chat requests its cancellation. Independent of the browser connection.
GENERATION_PREPARATION_TIMEOUT_MS30000How long Chat may prepare a generation before its stream opens. On expiry the request fails with 503. Minimum 1000.
GENERATION_FINALIZE_TIMEOUT_MS60000How 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.

VariableDefaultDescription
UTILITY_MODEL—The deployment ID of the utility model. It stays on the server. Unset or blank turns text refinement off.
LLM_CONVERSATION_NAMING_ENABLEDfalseWhen 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_MS10000The timeout of a naming request, in milliseconds.

Text refinement uses the user's own credentials; naming uses DIAL_API_KEY.

Voice input​

VariableDefaultDescription
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_BYTES5242880 (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.

VariableOperation
CONVERSATION_NAMING_SYSTEM_PROMPTAutomatic naming and the Rename conversation action
TEXT_REFINEMENT_SKILL_DESCRIPTION_PROMPTRefine a skill description
TEXT_REFINEMENT_SKILL_INSTRUCTIONS_PROMPTRefine skill instructions
TEXT_REFINEMENT_SCHEDULED_TASK_DESCRIPTION_PROMPTRefine a scheduled task description
TEXT_REFINEMENT_SCHEDULED_TASK_INSTRUCTIONS_PROMPTRefine scheduled task instructions
TEXT_REFINEMENT_APPLICATION_DESCRIPTION_PROMPTRefine an application description
TEXT_REFINEMENT_TOOLSET_DESCRIPTION_PROMPTRefine a toolset description
TEXT_REFINEMENT_PROMPT_DESCRIPTION_PROMPTRefine a prompt description
TEXT_REFINEMENT_PROMPT_INSTRUCTIONS_PROMPTRefine prompt instructions
TEXT_REFINEMENT_PROJECT_DESCRIPTION_PROMPTRefine a project description
TEXT_REFINEMENT_PROJECT_INSTRUCTIONS_PROMPTRefine project instructions
TRANSCRIPTION_PROMPTTranscription 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​