98 lines
2.6 KiB
Markdown
98 lines
2.6 KiB
Markdown
# Endpointy přepisu
|
|
|
|
Audio se posílá jako proměnná `file` (multipart/form-data). Všechny ostatní parametry
|
|
jsou form fields v POST. API klíče jsou v X- hlavičkách. Výstup je vždy JSON.
|
|
|
|
## Hlavičky (secrets)
|
|
|
|
| Hlavička | Nutná | Popis |
|
|
|----------|-------|-------|
|
|
| `X-Deepgram-Api-Key` | ano | Deepgram API klíč |
|
|
| `X-OpenAI-Api-Key` | ano | OpenAI API klíč (Whisper + slučovací chat) |
|
|
|
|
## POST /transcribe/dual
|
|
|
|
Paralelní přepis dvěma engine. Vrací dva nezávislé texty.
|
|
|
|
### Form parametry
|
|
|
|
| Pole | Typ | Default | Popis |
|
|
|------|-----|---------|-------|
|
|
| `file` | soubor | — | Audio k přepisu (povinné) |
|
|
| `deepgram_model` | text | `nova-2` | Deepgram model |
|
|
| `whisper_model` | text | `whisper-1` | OpenAI přepisový model |
|
|
| `language` | text | `cs` | Jazyk (ISO kód) |
|
|
| `diarize` | bool | `true` | Deepgram diarizace |
|
|
| `smart_format` | bool | `true` | Deepgram smart formatting |
|
|
|
|
### Odpověď
|
|
|
|
```json
|
|
{
|
|
"text1": "přepis z Deepgramu",
|
|
"text2": "přepis z OpenAI Whisper",
|
|
"deepgram_model": "nova-2",
|
|
"whisper_model": "whisper-1",
|
|
"language": "cs"
|
|
}
|
|
```
|
|
|
|
### Příklad (curl)
|
|
|
|
```bash
|
|
curl -X POST https://services.csbot.cz/apps/audio-transcription/transcribe/dual \
|
|
-H "X-Deepgram-Api-Key: <DEEPGRAM_KEY>" \
|
|
-H "X-OpenAI-Api-Key: <OPENAI_KEY>" \
|
|
-F "file=@nahravka.mp3" \
|
|
-F "language=cs"
|
|
```
|
|
|
|
## POST /transcribe/combined
|
|
|
|
Jako `dual`, navíc oba přepisy sloučí přes OpenAI Chat do jednoho výsledku (`merged`).
|
|
|
|
### Form parametry
|
|
|
|
Vše z `dual`, plus:
|
|
|
|
| Pole | Typ | Default | Popis |
|
|
|------|-----|---------|-------|
|
|
| `combine_prompt` | text | výchozí „Czech Transcript Merger“ | System prompt pro sloučení |
|
|
| `chat_model` | text | `gpt-4o` | OpenAI chat model pro sloučení |
|
|
|
|
Nezadá-li se `combine_prompt`, použije se výchozí prompt z `app/prompts.py`.
|
|
|
|
### Odpověď
|
|
|
|
```json
|
|
{
|
|
"text1": "přepis z Deepgramu",
|
|
"text2": "přepis z OpenAI Whisper",
|
|
"merged": "sloučený, co nejpřesnější výsledný přepis",
|
|
"deepgram_model": "nova-2",
|
|
"whisper_model": "whisper-1",
|
|
"chat_model": "gpt-4o",
|
|
"language": "cs"
|
|
}
|
|
```
|
|
|
|
### Příklad (curl)
|
|
|
|
```bash
|
|
curl -X POST https://services.csbot.cz/apps/audio-transcription/transcribe/combined \
|
|
-H "X-Deepgram-Api-Key: <DEEPGRAM_KEY>" \
|
|
-H "X-OpenAI-Api-Key: <OPENAI_KEY>" \
|
|
-F "file=@nahravka.mp3"
|
|
```
|
|
|
|
## Chybové stavy
|
|
|
|
| HTTP | Kdy |
|
|
|------|-----|
|
|
| 400 | Chybí / prázdný audio soubor |
|
|
| 401 | Chybí `X-Deepgram-Api-Key` nebo `X-OpenAI-Api-Key` |
|
|
| 502 | Chyba upstream API (Deepgram / OpenAI) |
|
|
| 500 | Neočekávaná chyba serveru |
|
|
|
|
Všechny chyby se logují (bez secrets), žádné tiché selhání.
|