LXC-Frontend (FastAPI + HTML/JS): - Audio-Upload (MP3/WAV/M4A/MP4/OGG/FLAC, max. 500 MB) - SQLite Job-Store, BackgroundTask-Pipeline - Job-Liste mit Live-Status, Downloads (DOCX + JSON) - Mac-Health-Indicator im UI Mac-Worker (FastAPI): - /api/transcribe (lightning-whisper-mlx | faster-whisper | mock) - /api/summarize + /api/protocol via Ollama (llama3.1:8b) - /api/export/docx via python-docx Deploy: - systemd-Service, Nginx Reverse-Proxy - deploy/install.sh: idempotentes LXC-Setup Doku: README.md, lxc-frontend/README.md, mac-worker/README.md
45 lines
1.3 KiB
Markdown
45 lines
1.3 KiB
Markdown
# Voice-Agent — LXC-Frontend
|
|
|
|
FastAPI + statisches HTML/JS. Läuft im LXC-Container, stellt die Weboberfläche, verwaltet Jobs (SQLite) und ruft den Mac-Worker per HTTP an. Macht selbst **keine** AI-Verarbeitung.
|
|
|
|
## Lokal starten (Entwicklung)
|
|
|
|
```bash
|
|
cd lxc-frontend
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate
|
|
pip install -r requirements.txt
|
|
cp .env.example .env
|
|
# Für lokalen Test ohne Mac kann der Mac-Worker mit WHISPER_ENGINE=mock laufen
|
|
uvicorn app.main:app --reload --port 8000
|
|
```
|
|
|
|
Öffnen: http://localhost:8000
|
|
|
|
## Auf LXC deployen
|
|
|
|
`deploy/install.sh` macht alles: Repo klonen, venv anlegen, systemd-Service und Nginx einrichten. Siehe Haupt-`README.md`.
|
|
|
|
## API
|
|
|
|
| Methode | Pfad | Zweck |
|
|
|---|---|---|
|
|
| GET | `/` | Web-UI |
|
|
| GET | `/health` | LXC-Health |
|
|
| GET | `/api/mac/health` | Mac-Worker-Erreichbarkeit |
|
|
| POST | `/api/jobs` | multipart: `audio`, `title` → Job anlegen |
|
|
| GET | `/api/jobs` | Liste aller Jobs |
|
|
| GET | `/api/jobs/{id}` | Job-Detail |
|
|
| GET | `/api/jobs/{id}/download/{kind}` | `kind` ∈ `docx`, `transcript`, `summary`, `protocol` |
|
|
|
|
## Datenfluss
|
|
|
|
```
|
|
Upload → SQLite-Job → BackgroundTask
|
|
→ Mac: /api/transcribe (multipart)
|
|
→ Mac: /api/summarize (JSON)
|
|
→ Mac: /api/protocol (JSON)
|
|
→ Mac: /api/export/docx (JSON) → DOCX
|
|
→ Ergebnisse landen in /var/lib/voice-agent/results/{job_id}/
|
|
```
|