Search, chat and research over parliamentary speeches and documents
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

92 lines
3.7 KiB

# Copy to providers.yaml and edit. providers.yaml is gitignored.
#
# This file lists the chat models a user can pick in the web UI. It does NOT
# configure embeddings — those are separate and set via environment variables.
# See docs/SETUP.md.
#
# Every provider must speak the OpenAI chat-completions protocol. That includes
# vLLM, Ollama, llama.cpp, LM Studio, OpenRouter, Berget, OpenAI, Together,
# Groq, and Google Gemini's compatibility endpoint.
#
# Fields the application reads — anything else is ignored:
#
# id required. Stable identifier used in API requests.
# name required. Shown in the model picker.
# base_url required. Include the /v1 suffix if the provider uses one.
# user_api_key required. true = the user supplies their own key in the browser.
# false = the server's key is used, from server_api_key_env.
# server_api_key_env optional. NAME of an environment variable holding the key.
# Never put the key itself here.
# supports_thinking optional, default false. Whether the model can emit reasoning.
# models optional. Assigns roles; without it the app falls back to
# LLM_MODEL_SMART / LLM_MODEL_FAST from .env.
# role: smart -> orchestration and final answers
# role: fast -> summarising tool output; a smaller model is fine
providers:
# ── Self-hosted, no API key ────────────────────────────────────────────────
# vLLM: fastest option on a machine with a GPU.
# vllm serve Qwen/Qwen3-8B --port 8000
- id: vllm
name: Local vLLM
base_url: http://localhost:8000/v1
user_api_key: false
supports_thinking: true
models:
- id: Qwen/Qwen3-8B
role: smart
- id: Qwen/Qwen3-4B
role: fast
# Ollama: easiest option, runs on CPU, slower.
# ollama serve && ollama pull qwen3:8b
# The /v1 suffix matters — Ollama's native API is not OpenAI-compatible, its /v1 is.
- id: ollama
name: Ollama
base_url: http://localhost:11434/v1
user_api_key: false
supports_thinking: false
models:
- id: qwen3:8b
role: smart
- id: qwen3:4b
role: fast
# ── Hosted, user brings their own key ──────────────────────────────────────
# The key is entered in the browser, held only for the request, and never
# written to the database or to logs.
- id: openrouter
name: OpenRouter
base_url: https://openrouter.ai/api/v1
user_api_key: true
supports_thinking: true
- id: openai
name: OpenAI
base_url: https://api.openai.com/v1
user_api_key: true
supports_thinking: true
# Berget AI — Swedish provider, EU-hosted. Relevant where data residency matters.
- id: berget
name: Berget AI
base_url: https://api.berget.ai/v1
user_api_key: true
supports_thinking: true
# Google Gemini via its OpenAI-compatibility endpoint. The trailing slash matters.
- id: googlegemini
name: Google Gemini
base_url: https://generativelanguage.googleapis.com/v1beta/openai/
user_api_key: true
supports_thinking: true
# ── Hosted, paid for by the server ─────────────────────────────────────────
# With user_api_key: false, every user spends your credit. Only do this behind
# authentication.
# - id: openai-server
# name: OpenAI (server key)
# base_url: https://api.openai.com/v1
# user_api_key: false
# server_api_key_env: OPENAI_API_KEY
# supports_thinking: true