docs: add project documentation (architecture, API, interfaces, config, deployment)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
104
doc/interfaces.md
Normal file
104
doc/interfaces.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# Externe Schnittstellen
|
||||
|
||||
## Transcription-API (`API_BASE`)
|
||||
|
||||
Wird für Audio-/Videotranskription mit Diarisierung verwendet.
|
||||
|
||||
**Standard-URL:** `http://gx10.aquantico.lan:8093`
|
||||
|
||||
### `POST /transcribe-diarize`
|
||||
|
||||
Upload der Mediendatei als `multipart/form-data`.
|
||||
|
||||
**Request:**
|
||||
```
|
||||
Content-Type: multipart/form-data
|
||||
field: file (binary, application/octet-stream)
|
||||
```
|
||||
|
||||
Unterstützte Formate: alle gängigen Audio- und Videoformate (MP3, WAV, M4A, OGG, MP4, MKV, MOV, …). Die API extrahiert den Audiotrack selbst.
|
||||
|
||||
**Response (JSON):**
|
||||
```json
|
||||
{
|
||||
"formatted_text": "Speaker 1: Hallo...\nSpeaker 2: ...",
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Das Feld `formatted_text` wird als Markdown-Inhalt des `transcript`-Dokuments gespeichert. Die vollständige JSON-Antwort landet in `documents.raw_json`.
|
||||
|
||||
**Timeout:** 1800 s (30 Minuten, für lange Aufnahmen)
|
||||
|
||||
---
|
||||
|
||||
## Ollama (`OLLAMA_BASE_URL`)
|
||||
|
||||
Wird für die LLM-Analyse von Transkripten verwendet.
|
||||
|
||||
**Standard-URL:** `http://gx10.aquantico.lan:11434`
|
||||
|
||||
### `POST /api/generate`
|
||||
|
||||
**Request (JSON):**
|
||||
```json
|
||||
{
|
||||
"model": "qwen3.5:9b",
|
||||
"prompt": "...",
|
||||
"stream": true,
|
||||
"think": true,
|
||||
"options": {
|
||||
"num_ctx": 16384,
|
||||
"num_predict": 16384,
|
||||
"repeat_penalty": 1.15,
|
||||
"repeat_last_n": 128
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- `stream: true` — Antwort wird zeilenweise als JSON-Objekte gestreamt
|
||||
- `think` — aktiviert Extended Thinking / Chain-of-Thought (modellabhängig)
|
||||
- `num_ctx` — wird dynamisch berechnet (`_estimate_num_ctx`) oder aus den Einstellungen gelesen
|
||||
- Alle `options`-Parameter sind über die Einstellungsseite oder pro Prompt konfigurierbar
|
||||
|
||||
**Response (NDJSON-Stream):**
|
||||
```json
|
||||
{"response": "Teil der Antwort", "thinking": "...", "done": false}
|
||||
...
|
||||
{"response": "", "done": true, "total_duration": ...}
|
||||
```
|
||||
|
||||
Chunks werden in `_JOB_STREAMS[job_id]` gepuffert für die Live-Anzeige auf der Jobs-Seite.
|
||||
|
||||
**Timeout:** 1200 s
|
||||
|
||||
### `GET /api/tags`
|
||||
|
||||
Wird von `GET /settings/models` aufgerufen, um verfügbare Modelle zu listen.
|
||||
|
||||
**Response (JSON):**
|
||||
```json
|
||||
{
|
||||
"models": [
|
||||
{ "name": "qwen3.5:9b", ... },
|
||||
...
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**Timeout:** 5 s
|
||||
|
||||
---
|
||||
|
||||
## KI-Einstellungen (Prioritäten)
|
||||
|
||||
Beim Analyse-Job gelten folgende Prioritäten für die LLM-Parameter:
|
||||
|
||||
```
|
||||
Prompt-spezifische Einstellungen (llm_use_default=0)
|
||||
→ Werte aus prompts.llm_* Spalten
|
||||
Globale Einstellungen (llm_use_default=1, Standard)
|
||||
→ Werte aus der settings-Tabelle
|
||||
Fallback
|
||||
→ Umgebungsvariablen (OLLAMA_MODEL, OLLAMA_THINK, …)
|
||||
```
|
||||
Reference in New Issue
Block a user