Providers and Models
Parcourse has no model of its own. It talks to providers through LiteLLM, so anything LiteLLM reaches works, and bumping LiteLLM picks up new providers without Parcourse changing.
A provider is connected from Settings, or during first run.
Providers with Worked Examples
Most providers need nothing but an API key. These carry a label, a link to where the key comes from, and a few known-good models to start with:
| Provider | Needs | Models to start with |
|---|---|---|
| OpenRouter | API key | openai/gpt-4o-mini, anthropic/claude-sonnet-4, google/gemini-2.5-flash |
| OpenAI | API key | gpt-4o-mini, gpt-4o, gpt-4.1-mini, gpt-4.1 |
| Anthropic | API key | claude-sonnet-4, claude-haiku-4-5 |
| Google Gemini | API key | gemini-2.5-flash, gemini-2.5-pro |
| Groq | API key | llama-3.3-70b-versatile |
| Mistral | API key | mistral-large-latest, mistral-small-latest |
| DeepSeek | API key | deepseek-chat, deepseek-reasoner |
| Ollama | Server URL | llama3.1, qwen2.5, mistral |
Everything else LiteLLM supports is in the list too, asking for an API key and nothing more unless that provider needs a server URL as well.
Model Names Are Suggestions
The model field stays editable. The lists above are starting points, not limits, and a newer model that is not listed will work as long as the provider serves it under that name.
Nothing validates the name up front. Test connection on the settings page checks it by asking the provider. Use it after changing the model.
Running a Local Model
Point the server URL at your Ollama instance and give it a model you have pulled. If Parcourse is in Docker and Ollama is on the host, localhost inside the container is not your machine, so use an address the container can reach.
vLLM and Xinference also ask for a server URL rather than a key.
Keys Are Stored Encrypted
A key you paste is encrypted with ENCRYPTION_KEY before it is written to the database. It is never shown back to you afterwards.