Covers: overview, setup, API reference, configuration, testing, deployment, and known quirks.
109 lines
2.8 KiB
Markdown
109 lines
2.8 KiB
Markdown
# Configuration
|
||
|
||
All configuration is driven by environment variables. There are no config files.
|
||
|
||
## LLM Provider Settings
|
||
|
||
### `LLM_PROVIDER`
|
||
|
||
- **Values:** `openai` | `anthropic`
|
||
- **Default:** `openai`
|
||
- Determines which adapter to use for API calls. Use `openai` for Ollama, LM Studio, and any OpenAI-compatible API. Use `anthropic` for MiniMax or any Anthropic-compatible API.
|
||
|
||
### `LLM_BASE_URL`
|
||
|
||
- **Default:** `http://ollama.internal.henryhosted.com:9292/v1`
|
||
- The base URL for the LLM API. Must include the `/v1` (OpenAI format) or `/anthropic` (Anthropic format) suffix as appropriate.
|
||
|
||
### `LLM_API_KEY`
|
||
|
||
- **Default:** `none`
|
||
- API key for the LLM provider. Set to `none` for local Ollama instances that don't require authentication.
|
||
|
||
### `LLM_MODEL`
|
||
|
||
- **Default:** `qwen2.5-7b-instruct.q4_k_m`
|
||
- The model name. Must match a model available on the target LLM backend.
|
||
|
||
### `LLM_TEMPERATURE`
|
||
|
||
- **Default:** `0.1`
|
||
- Sampling temperature (0.0–1.0). Lower values produce more deterministic outputs. A value around `0.1` is recommended for classification tasks.
|
||
|
||
### `LLM_TIMEOUT_SECONDS`
|
||
|
||
- **Default:** `60`
|
||
- Request timeout in seconds.
|
||
|
||
### `LLM_MAX_RETRIES`
|
||
|
||
- **Default:** `3`
|
||
- Maximum number of retries when a classification attempt fails to parse or returns an invalid result.
|
||
|
||
## Deduplication Settings
|
||
|
||
### `EMAIL_CLASSIFIER_DB_PATH`
|
||
|
||
- **Default:** `.data/email_classifier.db`
|
||
- Path to the SQLite database used for deduplication tracking. The directory will be created automatically.
|
||
|
||
---
|
||
|
||
## Provider-Specific Examples
|
||
|
||
### Ollama (local, OpenAI-compatible)
|
||
|
||
```bash
|
||
export LLM_PROVIDER=openai
|
||
export LLM_BASE_URL=http://localhost:11434/v1
|
||
export LLM_API_KEY=none
|
||
export LLM_MODEL=qwen2.5-7b-instruct.q4_k_m
|
||
export LLM_TEMPERATURE=0.1
|
||
```
|
||
|
||
### MiniMax (Anthropic-compatible API)
|
||
|
||
```bash
|
||
export LLM_PROVIDER=anthropic
|
||
export LLM_BASE_URL=https://api.minimax.io/anthropic
|
||
export LLM_API_KEY=your_minimax_key
|
||
export LLM_MODEL=MiniMax-M2.7
|
||
export LLM_TEMPERATURE=0.1
|
||
```
|
||
|
||
### LM Studio (local, OpenAI-compatible)
|
||
|
||
```bash
|
||
export LLM_PROVIDER=openai
|
||
export LLM_BASE_URL=http://localhost:1234/v1
|
||
export LLM_API_KEY=none
|
||
export LLM_MODEL=your-loaded-model-name
|
||
export LLM_TEMPERATURE=0.1
|
||
```
|
||
|
||
### OpenAI (cloud)
|
||
|
||
```bash
|
||
export LLM_PROVIDER=openai
|
||
export LLM_BASE_URL=https://api.openai.com/v1
|
||
export LLM_API_KEY=sk-...
|
||
export LLM_MODEL=gpt-4o-mini
|
||
export LLM_TEMPERATURE=0.1
|
||
```
|
||
|
||
---
|
||
|
||
## Per-Request Overrides
|
||
|
||
Any LLM setting can be overridden per-request by passing the field in the request body. This is useful when a single client needs to route to different providers dynamically (e.g., different email accounts with different LLM backends).
|
||
|
||
```json
|
||
{
|
||
"email_data": { "subject": "...", "body": "..." },
|
||
"provider": "anthropic",
|
||
"base_url": "https://api.minimax.io/anthropic",
|
||
"api_key": "minimax_key_here",
|
||
"model": "MiniMax-M2.7"
|
||
}
|
||
```
|