Configuration
Model Configuration
Control model selection strategy, per-intent overrides, and cost caps.
modelConfig controls which LLM models are used for inference and how cost is managed per request and session.
Schema
{
"modelConfig": {
"strategy": "hybrid",
"default_model": "gpt-4o-mini",
"premium_model": "gpt-4o",
"tool_calling_model": "gpt-4o",
"intent_model_overrides": {
"mock_interview": "gpt-4o",
"candidate_scoring": "gpt-4o"
},
"max_tokens_per_request": 4000,
"max_cost_per_request": 0.10,
"max_cost_per_session": 1.00,
"max_cost_per_day": 100.00,
"max_context_tokens": 4000,
"max_session_messages": 20,
"session_timeout_minutes": 30
}
}Model strategy
strategy
| Value | Behaviour |
|---|---|
hybrid | Standard intents use default_model; premium intents use premium_model (default) |
all-mini | All intents use default_model — lowest cost |
all-standard | All intents use premium_model — highest quality |
Premium intents (default)
In hybrid mode, these intents use premium_model by default:
mock_interviewcoaching_sessioncandidate_prescreencandidate_scoring
Override the premium intent list via featureConfig.premium_intents.
intent_model_overrides
Pin a specific model to a specific intent, overriding strategy:
{
"intent_model_overrides": {
"resume_analysis": "gpt-4o-mini",
"career_transition_planning": "gpt-4o"
}
}Cost limits
| Field | Default | Description |
|---|---|---|
max_cost_per_request | $0.10 | Hard cap per API call — request rejected if estimated cost exceeds this |
max_cost_per_session | $1.00 | Session-level cap — new messages rejected when session cost hits this |
max_cost_per_day | $100.00 | Daily tenant-level cap |
max_tokens_per_request | 4000 | Output token limit per request |
Context limits
| Field | Default | Description |
|---|---|---|
max_context_tokens | 4000 | Token budget for session history injected into context |
max_session_messages | 20 | Maximum messages carried in session memory |
session_timeout_minutes | 30 | Session expires after this period of inactivity |
BYOK and model routing
When you've connected your own provider credentials, model routing defers to your configured provider with automatic fallback if it fails. The strategy, default_model, and premium_model fields still control which model names are requested — but they're sent to your provider, not Liya's. See Models + Router.