docs: add project documentation (architecture, API, interfaces, config, deployment)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
100
doc/api.md
Normal file
100
doc/api.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# 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 |
|
||||
Reference in New Issue
Block a user