Model
Overview
Llumen allows you to configure individual models with specific capabilities and parameters. This enables fine-tuned control over how each AI model behaves.
Basic Configuration
Minimal Example
display_name = "GPT-OSS 20B"
# openrouter suffix are supported
model_id = "openai/gpt-oss-20b:nitro"
If openrouter is used, Llumen will always infer correct value. Feel free to omit [capability].
Complete Example
display_name = "Claude 4.5 Sonnet"
model_id = "anthropic/claude-4.5-sonnet"
[capability]
image = true
audio = false
video = true
tool = true
json = true
reasoning = "high"
[parameter]
temperature = 0.7
top_p = 0.9
top_k = 40
repeat_penalty = 1.1
[media_gen]
image_model = "sourceful/riverflow-v2-fast"
video_model = "google/veo-3.1-lite"
Task Model
You can optionally specify a separate model for internal tasks like title generation. This lets you use a cheaper/faster model for tasks while keeping the primary model for conversations.
display_name = "Claude 4.5 Sonnet"
model_id = "anthropic/claude-4.5-sonnet"
task_model_id = "openai/gpt-4o-mini"
When task_model_id is omitted, the primary model is used for all tasks.
Capability
Configure what features the model supports.
You don't need specify capability if you are using openrouter. Openrouter API allow llumen to detect it for you.
Multi-modality Input
| Field | Type | Description |
|---|---|---|
image | bool | image input |
audio | bool | audio input |
video | bool | video input |
Tool Use
| Field | Type | Description |
|---|---|---|
tool | bool | Enable function calling (search, deep research) |
Controls whether the model can call external functions. When enabled, search and deep research modes become available.
- When
true: search/deep research modes enabled. - When
false: normal mode only. - When not set: Llumen will guess its support.
Structured Output
| Field | Type | Description |
|---|---|---|
json | bool | Enable structured output (JSON mode) |
Controls whether the model supports structured/JSON output. When enabled, deep research mode can enforce structured responses for more reliable parsing.
- When
true: deep research mode will be more accurate. Eliminate error like"Here is research..." is not a valid plan. - When
false: deep research mode will retry once if error. - When not set: Llumen will guess its support.
Thinking
Enable or configure reasoning effort for models that support extended thinking.
Boolean values (backward compatible):
[capability]
reasoning = true # Enable reasoning with default effort
reasoning = false # Disable reasoning
String values (effort levels):
[capability]
reasoning = "low" # Low reasoning effort
reasoning = "medium" # Medium reasoning effort
reasoning = "high" # High reasoning effort
reasoning = "none" # Disable reasoning
reasoning = "auto" # Use provider's default
- When set to
"high","medium","low": Enable reasoning with specified effort level - When set to
"none": Disable reasoning - When set to
"auto": Use the model's default reasoning behavior - When set to
true: Enable reasoning with default effort - When set to
false: Disable reasoning - When not set: Llumen will guess its support, enable if supported
Llumen does not support interleaved thinking due to the limitation of chat completion API.
OCR
[capability]
ocr = "Mistral" # Options: "Native", "Text", "Mistral", "Cloudflare", "Disabled"
All options are case-insensitive.
Engine differences:
"Cloudflare"(free): Converts PDFs to markdown using Cloudflare Workers AI"Mistral": Best for scanned documents or PDFs with images (paid, per 1,000 pages)"Text": Alias for Cloudflare AI (deprecated, redirects to Cloudflare)"Native": Uses model's built-in file input (if supported)
Parameter
Fine-tune inference behavior:
Temperature
[parameter]
temperature = 0.7 # Range: 0.0 - 1.0
Examples:
# For coding assistance
temperature = 0.2
# For creative writing
temperature = 0.7
# For balanced chat
temperature = 0.7
Top P (Nucleus Sampling)
[parameter]
top_p = 0.9 # Range: 0.0 - 1.0
Controls diversity by limiting token selection:
- 0.1 - Very focused, predictable
- 0.5 - Moderate diversity
- 0.9 - High diversity (recommended)
- 1.0 - All tokens considered
Use either temperature OR top_p, not both. OpenRouter recommends top_p.
Top K
[parameter]
top_k = 40 # Range: 0 - 100
Repeat Penalty
[parameter]
repeat_penalty = 1.1 # Range: 1.0 - 2.0
Reduces repetition in responses:
- 1.0 - No penalty (repetitive)
- 1.1 - Light penalty (recommended)
- 1.2-1.3 - Moderate penalty
- 1.5+ - Strong penalty (may affect quality)
Media Generation
Configure dedicated models for image and video generation. When omitted, the primary model is used.
[media_gen]
image_model = "sourceful/riverflow-v2-fast"
video_model = "google/veo-3.1-lite"
Configuring Models in Llumen
Via Web Interface
- Log in to llumen
- Go to Settings -> Openrouter
- Add or edit model configurations
- Save changes