fern/docs/pages/configuration/advanced.mdx
Use a model profile when you need more detailed control over model behavior than auto-discovery provides.
This workflow lets you configure model-specific settings such as:
context_windowtokenizerUse it when you want PrivateGPT to know the exact limits and capabilities of each model, or when you need to override what your provider exposes automatically.
This workflow is supported from the source-based Local with uv install:
settings-model.yaml from your running LLM server.PGPT_PROFILES=model.Generate a profile from the models exposed by your OpenAI-compatible server:
<Tabs> <Tab title="macOS / Linux"> ```bash OPENAI_API_BASE=http://localhost:11434/v1 \ make auto-discover-models # or directly: OPENAI_API_BASE=http://localhost:11434/v1 \ uv run python scripts/auto_discover_models.py --out settings-model.yaml ``` </Tab> <Tab title="Windows (PowerShell)"> ```powershell $env:OPENAI_API_BASE = "http://localhost:11434/v1" uv run python scripts/auto_discover_models.py --out settings-model.yaml ``` </Tab> <Tab title="Windows (CMD)"> ```cmd set OPENAI_API_BASE=http://localhost:11434/v1 uv run python scripts/auto_discover_models.py --out settings-model.yaml ``` </Tab> </Tabs>This creates settings-model.yaml with all discovered models as a starting point for detailed configuration.
Open settings-model.yaml and adjust the fields you care about. This is where you explicitly define how PrivateGPT should treat each model. Example:
llm:
default_model: qwen3.5:35b
embedding:
default_model: mxbai-embed-large
models:
- name: qwen3.5:35b
type: llm
mode: openai
context_window: 32768
tokenizer: Qwen/Qwen3.5-35B-A3B
support_tools: true
support_reasoning: true
support_image: 0
sampling_params:
temperature: 0.6
top_p: 0.95
top_k: 20
min_p: 0.0
- name: mxbai-embed-large
type: embedding
mode: openai
context_window: 512
Once settings-model.yaml exists, start PrivateGPT with PGPT_PROFILES=model.