docs: add project documentation (architecture, API, interfaces, config, deployment)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 12:02:47 +02:00
parent 21712c972d
commit 2db89bc33a
6 changed files with 475 additions and 0 deletions

42
doc/configuration.md Normal file
View File

@@ -0,0 +1,42 @@
# Konfiguration
## Umgebungsvariablen
Werden beim Start ausgewertet und dienen als Fallback-Werte, wenn keine DB-Einstellung vorhanden ist.
| Variable | Standard | Beschreibung |
|---|---|---|
| `API_BASE` | `http://gx10.aquantico.lan:8093` | URL der Transcription-API |
| `OLLAMA_BASE_URL` | `http://gx10.aquantico.lan:11434` | URL der Ollama-Instanz |
| `OLLAMA_MODEL` | `qwen3.5:9b` | Standard-LLM-Modell (Fallback) |
| `OLLAMA_NUM_PREDICT` | `16384` | Max. Ausgabe-Tokens (Fallback) |
| `OLLAMA_THINK` | `true` | Extended Thinking aktivieren (Fallback) |
| `DB_PATH` | `/data/ui.db` | Pfad zur SQLite-Datenbank |
| `JOB_DIR` | `/data/jobs` | Verzeichnis für temporäre Upload-Dateien |
## Laufzeiteinstellungen (DB)
Überschreiben die Umgebungsvariablen. Werden über die Einstellungsseite (`/settings`) gesetzt und in der `settings`-Tabelle gespeichert.
| Key | Beschreibung | Mögliche Werte |
|---|---|---|
| `ollama_model` | Aktives LLM-Modell | z.B. `qwen3.5:9b`, `llama3.2:3b` |
| `ollama_think` | Extended Thinking | `true` / `false` |
| `ollama_num_ctx` | Kontextfenstergröße | `auto`, `4096`, `8192`, `16384`, `32768`, `65536`, `131072` |
| `ollama_num_predict` | Max. Ausgabe-Tokens | Integer, z.B. `16384` |
| `ollama_repeat_penalty` | Wiederholungsstrafe | Float, z.B. `1.15` |
| `ollama_repeat_last_n` | Repeat-Fenster (Tokens) | Integer, z.B. `128` |
## Promptspezifische KI-Einstellungen
Jeder Prompt kann eigene LLM-Parameter haben (Spalten `llm_*` in der `prompts`-Tabelle). Solange `llm_use_default=1` (Standard), werden die globalen DB-Einstellungen verwendet.
## `num_ctx`-Automatik
Bei `ollama_num_ctx = "auto"` (Standard) wird die Kontextgröße dynamisch berechnet:
```python
needed = len(prompt) // 3 + 2048 # grobe Token-Schätzung + Antwortpuffer
# wählt kleinstes passendes aus: 4096, 8192, 16384, 32768, 65536
# Fallback: 65536
```