66 lines
2.6 KiB
Markdown
66 lines
2.6 KiB
Markdown
# audio-transcription — přehled
|
|
|
|
Stateless FastAPI služba v AppFactory. Přijme audio + parametry v POST a vrátí JSON
|
|
s přepisy. Přepis běží dvěma engine paralelně (Deepgram + OpenAI Whisper) a volitelně
|
|
se oba texty sloučí přes OpenAI Chat do jednoho co nejpřesnějšího přepisu.
|
|
|
|
Vychází z původní .NET implementace `CallCenterController` (dual/combined přepis).
|
|
Napojení na Twilio bylo vynecháno — audio se posílá přímo jako proměnná (upload).
|
|
|
|
## Architektura
|
|
|
|
```
|
|
app/
|
|
main.py # FastAPI app, root_path, Swagger, exception handlers
|
|
config.py # env konfigurace + defaulty (žádné secrets)
|
|
logging_config.py # logging (bez secrets)
|
|
errors.py # typované výjimky + handlery (žádná tichá selhání)
|
|
credentials.py # X- hlavičky → přihlašovací údaje (stateless)
|
|
prompts.py # výchozí slučovací prompt (Czech Transcript Merger)
|
|
clients/
|
|
deepgram_client.py # Deepgram pre-recorded REST (httpx)
|
|
openai_client.py # OpenAI Whisper + Chat Completions (httpx)
|
|
routers/
|
|
meta.py # /health, /version
|
|
transcribe.py # /transcribe (vše najednou)
|
|
```
|
|
|
|
Žádné SDK — upstream API se volají přímo přes `httpx`, aby služba nebyla závislá na
|
|
verzích knihoven. Nic se neukládá; služba je multi-tenant a stateless.
|
|
|
|
## Reverse proxy
|
|
|
|
Běží za `/apps/audio-transcription`. `root_path` se čte z env `ROOT_PATH`, takže
|
|
OpenAPI `servers` i Swagger „Try it out“ míří na správný prefix.
|
|
|
|
## Endpointy
|
|
|
|
| Metoda | Cesta | Popis |
|
|
|--------|-------|-------|
|
|
| GET | `/health` | Health check (200) |
|
|
| GET | `/version` | Verze + root_path |
|
|
| POST | `/dual-with-merge` | Deepgram + OpenAI přepis + AI sloučení (vše najednou) |
|
|
|
|
Detaily viz [transcribe.md](transcribe.md).
|
|
|
|
## Přihlašovací údaje
|
|
|
|
Secrets se předávají v hlavičkách u každého requestu (nikdy v těle/URL, nikdy se
|
|
nelogují ani neukládají):
|
|
|
|
- `X-Deepgram-Api-Key`
|
|
- `X-OpenAI-Api-Key`
|
|
|
|
## Konfigurace (env)
|
|
|
|
| Proměnná | Default | Popis |
|
|
|----------|---------|-------|
|
|
| `ROOT_PATH` | `""` | Prefix reverse proxy (`/apps/audio-transcription`) |
|
|
| `DEFAULT_DEEPGRAM_MODEL` | `nova-2` | Výchozí Deepgram model |
|
|
| `DEFAULT_WHISPER_MODEL` | `whisper-1` | Výchozí OpenAI přepisový model |
|
|
| `DEFAULT_CHAT_MODEL` | `gpt-4o` | Výchozí chat model pro sloučení |
|
|
| `DEFAULT_LANGUAGE` | `cs` | Výchozí jazyk |
|
|
| `UPSTREAM_TIMEOUT_SECONDS` | `300` | Timeout upstream volání |
|
|
| `DEEPGRAM_BASE_URL` | `https://api.deepgram.com/v1` | Base URL Deepgram |
|
|
| `OPENAI_BASE_URL` | `https://api.openai.com/v1` | Base URL OpenAI |
|