Files
diarization-ui/doc/api.md

101 lines
3.6 KiB
Markdown
Raw Normal View History

# HTTP-API
Alle Endpunkte werden von `app.py` bereitgestellt. HTML-Seiten geben `text/html` zurück; Daten-Endpunkte geben JSON zurück.
## PWA / System
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | `/` | Upload-Seite |
| GET | `/manifest.webmanifest` | PWA-Manifest |
| GET | `/icon.svg` | App-Icon |
| GET | `/sw.js` | Service Worker |
| GET | `/healthz` | Statuscheck (JSON): API_BASE, OLLAMA_BASE_URL, Modell, DB-Pfad |
## Einstellungen
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | `/settings` | Einstellungsseite |
| POST | `/settings` | Einstellungen speichern |
| GET | `/settings/models` | Verfügbare Ollama-Modelle laden (JSON) |
### `GET /settings/models` Response
```json
{ "ok": true, "models": ["llama3.2:3b", "qwen3.5:9b", ...] }
{ "ok": false, "error": "...", "models": [] }
```
## Projekte
| Methode | Pfad | Beschreibung |
|---|---|---|
| POST | `/projects` | Projekt anlegen (Form: `name`) |
| POST | `/projects/update` | Projekt umbenennen (Form: `id`, `name`) |
| POST | `/projects/{id}/delete` | Projekt löschen (Dokumente → Default) |
| POST | `/projects/create-api` | Projekt anlegen, gibt JSON zurück (für JS-Upload-Flow) |
## Upload
| Methode | Pfad | Beschreibung |
|---|---|---|
| POST | `/upload` | Audio-/Videodatei hochladen (Form: `project_id`, `file`); legt Upload-Job an |
## Library / Dokumente
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | `/library` | Dokumentenliste (Query: `project_id`, `q_title`, `q_content`) |
| GET | `/document/{id}` | Dokument anzeigen |
| GET | `/document/{id}/download.md` | Dokument als Markdown herunterladen |
| POST | `/document/{id}/edit` | Inhalt bearbeiten (Form: `content_md`) |
| POST | `/document/{id}/rename` | Umbenennen (Form: `title`) |
| POST | `/document/{id}/move` | Projekt wechseln (Form: `project_id`) |
| POST | `/document/{id}/delete` | Dokument löschen |
| POST | `/documents/bulk-move` | Mehrere Dokumente verschieben (Form: `ids[]`, `project_id`) |
| POST | `/documents/bulk-delete` | Mehrere Dokumente löschen (Form: `ids[]`) |
## Prompts & Projekte
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | `/prompts` | Prompts- und Projektverwaltung |
| GET | `/prompts/{id}/preview` | Prompt-Vorschau (JSON: `{html}`) |
| POST | `/prompts/add` | Prompt anlegen (Form: `name`, `prompt`) |
| POST | `/prompts/update` | Prompt speichern inkl. KI-Einstellungen (siehe unten) |
| POST | `/prompts/{id}/delete` | Prompt löschen |
### `POST /prompts/update` Felder
| Feld | Typ | Beschreibung |
|---|---|---|
| `id` | int | Prompt-ID |
| `name` | str | Name |
| `prompt` | str | Prompttext |
| `llm_use_default` | int | 1 = globale KI-Einstellungen, 0 = promptspezifisch |
| `llm_model` | str? | Modellname |
| `llm_think` | str? | `"true"` / `"false"` |
| `llm_num_ctx` | str? | Kontextgröße oder `"auto"` |
| `llm_num_predict` | str? | Max. Tokens |
| `llm_repeat_penalty` | str? | |
| `llm_repeat_last_n` | str? | |
## Hintergrundjobs
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | `/jobs` | Job-Übersicht (HTML) |
| GET | `/jobs/data` | Job-Liste als JSON (Query: `limit=200`) |
| GET | `/jobs/{id}/debug-data` | Detail-Daten eines Jobs (JSON) |
| POST | `/jobs/{id}/cancel` | Job abbrechen (JSON-Response) |
| POST | `/jobs/{id}/cancel-form` | Job abbrechen (Redirect) |
| POST | `/jobs/{id}/delete` | Job löschen (JSON-Response) |
| POST | `/jobs/{id}/delete-form` | Job löschen (Redirect) |
## Prompt ausführen
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | `/run` | Formular: Prompt auf Dokument(e) anwenden |
| POST | `/run` | Analyse-Job(s) starten |
| POST | `/run/project` | Analyse-Job für alle Transkripte eines Projekts starten |