Dicto configures model catalogs in server YAML under ai. The backend keeps
provider credentials; clients receive the appropriate authorized catalog.
| Field | Meaning |
|---|---|
id | Stable Dicto catalog ID used by the app |
name | Human-readable model name |
provider_model | Model string sent to the provider or gateway alias |
base_url |
Complete provider API root, including /v1 or other prefix |
api_key | Credential for that endpoint, usually an environment reference |
is_default | Default selection in that capability's catalog |
Model-level base_url and api_key override capability defaults. References
such as "${CHAT_API_KEY}" must be complete server YAML string values; do not
assume a global OPENAI_API_KEY implicitly configures every service. Desktop
app YAML does not use the server's environment-substitution mechanism.
Separate the capabilities#
-
transcription: audio upload to/audio/transcriptions; verify real audio and the desired response format. -
chat: text-generation requests; verify the APIs, streaming, tools and output formats the consuming feature actually uses. -
embeddingsandreranking: independent optional model/services for selected retrieval features, with their own model/dimension compatibility. -
realtime_speechand optional transcription realtime/diarization: independent contracts, not implied by a successful batch transcription.
The reference file uses gateway alias
whisper for transcription and llm-default for chat. The
route file maps them to upstream
models. Change all relevant layers together when replacing a model.
Do not enable supports_token_logprobs, realtime or diarization flags merely
because an endpoint calls itself OpenAI-compatible. The portable Whisper example
does not include the maintained deployment's token-logprob patch. Keep optional
reasoning efforts/summaries absent unless the selected model/provider supports
them. The generated server schema describes the
exported configuration contract; the deployed server performs final validation.
