Marina published marinarosa/faster-whisper-small-pt-cv11-v5, a
CTranslate2 int8 conversion of jonatasgrosman/whisper-small-pt-cv11-v5
(the PT-BR fine-tune she picked; no CT2 conversion existed on the Hub,
so it was converted locally with a regenerated fast tokenizer). Point
the faster-whisper default, the Space preload, and the
VIVAMAIS_WHISPER_MODEL variable at it, replacing the interim cv13
conversion. The publish script stays in scripts/ for reproducing the
conversion upload.
Make Q&A usable during processing; stream OCR per image
Persist the customer and the deduped conversation at the very start
of the upload flow, so the dashboard can answer questions about the
chat while audio, PDFs, and images are still being processed. Audio
transcriptions are written back through the new
Repository.update_message_text instead of a second save pass, which
also removes the duplicate-prone end-of-run message persistence; the
timeline merges previously stored messages by key.
The OCR-only image path now transcribes and yields one image at a
time instead of batching all OCR before the first result, so the
uncategorized table fills progressively on CPU. PDF extraction folds
in Marina's spaced-letter normalization (gluing "B I L H E T E" back
together) applied only to lines that look spaced. The Q&A context
budget drops to 24k chars: CPU prefill on MiniCPM5 made 80k-char
prompts take minutes per question.
PDF attachments (tickets, reservations sent as documents) were
ignored entirely. Extract their text layer with pypdf before any
image work and surface it in the uncategorized table as filename plus
full text; scanned PDFs without a text layer get a "(sem texto
extraivel)" marker instead of failing the build. webp files are
WhatsApp stickers in practice, so they are dropped from both the
message-driven and directory-walk collection paths.
pypdf joins the runtime dependencies. Order-dependent versions of the
pdf-collection tests were removed; the adapter and webp rules keep
their standalone tests.