Skip to content

Set or clear an LLM role override

PUT
/api/v1/config/llm-roles/{roleId}
curl --request PUT \
--url http://localhost:11044/api/v1/config/llm-roles/example \
--header 'Content-Type: application/json' \
--header 'X-Embabel-Api-Key: <X-Embabel-Api-Key>' \
--data '{ "description": "example", "model": "example", "reasoningEffort": "example", "role": "example", "temperature": 1 }'

Maps a role (e.g. code_best) to a model for this world, with an optional reasoning effort every call naming the role runs at (none, minimal, low, medium, high, xhigh; none turns a thinking model’s reasoning off). The effort changes only when the body names reasoningEffort: a value sets it, an empty string clears it, omitting it keeps it. Send a body with model, role and effort all blank to clear the override (inherit the deployment default).

roleId
required
string

The role to override, such as code_best — the name realms resolve a model by

The model, role and reasoning effort the role resolves to. All blank clears the override

Media typeapplication/json

How one purpose, or one role override, picks its model: by role or by pinned model, with optional temperature and reasoning effort. Read and written by the /config/llms, /config/chat and /config/llm-roles endpoints

object
description

What a custom role in llmRoles is for, since built-in roles are described by the catalogue; unused on a purpose setting

string
model

Model name to pin. For a purpose, used only when no role is set; in an llmRoles entry, the model the role resolves to. Null or blank pins nothing

string
reasoningEffort

Reasoning effort: none, minimal, low, medium, high or xhigh (none turns a thinking model’s reasoning off); null leaves the provider’s default

string
role

Role id to select the model by (e.g. chat_best, code_best); for a purpose it takes precedence over model. Not used in an llmRoles entry

string
temperature

Sampling temperature; null keeps the default’s temperature

number format: double

Example generated

{
"description": "example",
"model": "example",
"reasoningEffort": "example",
"role": "example",
"temperature": 1
}

Role override updated

Media type*/*

A role override as saved, or cleared

object
model

The model the request named, or null when it named none

string
roleId
required

The role that was changed, as named in the path

string
status
required

Always updated, including when the override was cleared

string

Example

updated

Unsupported reasoning effort, or a model this deployment cannot serve; the message names the models it can

Media type*/*

A refusal from the world administration surface: what went wrong, and the word error so a client reading the body need not consult the status code

object
message
required

What was refused and why, written to be shown. Names the offending value where there is one — the unknown mode, the out-of-range threshold, the invalid cron expression

string
status
required

Always error. Present because the map this replaces carried it and a consumer may branch on it

string

Example

error