Files
audio-transcription/documentation/transcribe.md
T
2026-07-10 09:54:05 +02:00

2.5 KiB

Endpoint přepisu

Jediná metoda, která udělá vše najednou: přepis Deepgramem + OpenAI (whisper-1) a jejich AI sloučení. Audio se posílá jako proměnná file (multipart/form-data), 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-1 přepis + slučovací chat)

POST /dual-with-merge

Form parametry

Pole Typ Default Popis
file soubor Audio k přepisu (povinné)
combine_prompt text výchozí „Czech Transcript Merger“ System prompt pro sloučení
deepgram_model text nova-2 Deepgram model
whisper_model text whisper-1 OpenAI přepisový model
chat_model text gpt-4o OpenAI chat model pro sloučení
language text cs Jazyk (ISO kód)
diarize bool true Deepgram diarizace
smart_format bool true Deepgram smart formatting

Nezadá-li se combine_prompt, použije se výchozí prompt z app/prompts.py.

Odpověď

{
  "gpt": "přepis z OpenAI (whisper-1)",
  "deepgram": "přepis z Deepgramu",
  "merge": "sloučený, co nejpřesnější výsledný přepis"
}

Příklad (curl)

curl -X POST https://services.csbot.cz/apps/audio-transcription/dual-with-merge \
  -H "X-Deepgram-Api-Key: <DEEPGRAM_KEY>" \
  -H "X-OpenAI-Api-Key: <OPENAI_KEY>" \
  -F "file=@nahravka.mp3" \
  -F "language=cs"

Chybové stavy

Chybové odpovědi jsou JSON: {"error": "<TypChyby>", "message": "...", "detail": "<text z upstreamu>"}.

HTTP Kdy
400 Chybí / prázdný audio soubor; nepodporovaný nebo poškozený audio formát (Deepgram/OpenAI vrátí 400/415/422)
401 Chybí X-Deepgram-Api-Key / X-OpenAI-Api-Key, nebo upstream odmítl API klíč (Deepgram/OpenAI 401/403)
429 Rate limit na Deepgram nebo OpenAI
502 Výpadek / neočekávaná chyba upstreamu (5xx, síťová chyba, timeout, neočekávaná struktura odpovědi)
500 Neočekávaná chyba serveru

Mapování dělá raise_for_upstream v app/errors.py. Špatný typ souboru se pozná až z odpovědi Deepgramu/OpenAI (bytes validují oni) a mapuje se na 400, ne na 502. Všechny chyby se logují (bez secrets), žádné tiché selhání.