105 lines
2.4 KiB
Markdown
105 lines
2.4 KiB
Markdown
|
|
# 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, …)
|
||
|
|
```
|