Vývoj hlasového AI asistenta pro reálný čas: zkušenosti backend týmu
Hlasový AI asistent "Suflé" je určen pro podporu manažerů prodeje během hovorů. Systém klasifikuje služby, detekuje námitky, využívá RAG pro vyhledávání relevantních dat a generuje textové nápady. Vstupem jsou textové segmenty ze streamovacího rozhraní Voximplant API. Požadovaná zpoždění: 1,5–2 sekundy. Technologický stack: Python, FastAPI, PostgreSQL, fine-tunované BERT modely, lokální Qwen 8B. Nasazení on-premise kvůli požadavkům bezpečnosti informací.
Tým 12 backend vývojářů bez ML zkušeností zvládl základy za 6 měsíců a spustil produkt v pilotní fázi.
Počáteční prototyp za tři týdny
Během prvních tří týdnů byl vytvořen proof-of-concept:
- Zpracování transkripcí hovorů jako vstupních dat.
- Dva BERT klasifikátory: pro více než 15 služeb a více než 15 typů námitků, trénované na 1500 příkladech.
- FAISS vektorové databáze s popisy služeb a skripty.
- Integrace prostřednictvím promptů s GPT.
- Rozhraní na Django pro zobrazení nápadů.
Prototyp ukázal zpoždění 10–15 sekund, ale přesvědčil podnikatelskou stranu o životaschopnosti nápadu.
Evoluce architektury: odstranění nadbytečné složitosti
Původní monolit obsahoval vlastní audio kanál na Whisper, několik klasifikátorů, fine-tuning LLM, vektorovou DB s uzavřenou smyčkou zpětné vazby. Odhad: 12–18 měsíců vývoje s vysokým rizikem.
Odstranění fine-tuningu. Místo doobučení Qwen/Llama na skriptech bylo zvoleno RAG: model získává relevantní data z databáze při dotazu. Snížilo se halucinace a ušetřilo se čas na označování dat.
Integrace připraveného transkriptoru. Voximplant poskytuje textové segmenty přes REST. Vyšlo to bez dvou měsíců na vlastní audio proces.
Zjednodušení klasifikátorů. Multiklasifikační detektor námitků byl nahrazen binárním (ano/ne). LLM analyzuje detaily námitků při generaci. Spuštění na GPU serveru zrychlilo inference.
Hledání v JSON místo vektorové DB. Databáze znalostí (služby, skripty) jsou strukturované JSON v paměti. Rychlejší než FAISS/Weaviate, žádné síťové volání.
Lokální LLM místo cloudu. GPT/DeepSeek dávaly 7–20 sekund zpoždění + zakázán přístup k externím službám. Qwen 8B na GPU serveru: ~2 sekundy, koncizní odpovědi.
Rychlé rozhraní. Django stránka s výstupem nápadů místo integrace do migrující CRM.
Finální zpracovací řetězec
Systém:
- Přijímá text z Voximplant.
- Binární klasifikace BERT (služba + námitka).
- RAG vyhledávání v JSON databázi.
- Generování promptu pro Qwen 8B.
- Zobrazení nápadů v rozhraní.
Celkové zpoždění se vejde do 2 sekund.
Označování dat: přechod k praktičnosti
Označení 200 rozhovorů týmem vývojářů trvalo týdny kvůli nutnosti kontextové analýzy. Manažeři byli rychlejší, ale nebyli dostatečně k dispozici.
Řešení: zaměření na binární detekci. LLM zpracovává detaily námitků. Iterace s daty byly zkráceny.
Zpoždění jako pevný limit
Reálný čas rozhovoru vyžaduje <2 sekundy. Cloudová API jsou nestabilní. Lokální Qwen 8B (vs 32B) obětuje detailnost za rychlost.
Bezpečnost a perimetr
Plný cyklus on-premise:
- Transkripce z Voximplant (jediný vnější krok).
- Zpracování a klasifikace na servery.
- Generování lokální modelem.
Odmítnutí maskování PII: +200–500 ms, riziko zkreslení, měsíc vývoje.
Co je důležité
- RAG místo fine-tuning zrychlí spuštění a minimalizuje potřebu označování dat.
- Binární klasifikace + LLM zjednoduší detekci námitků bez ztráty kvality.
- Lokální Qwen 8B vyváží rychlost a přesnost pro reálný čas.
- Hledání v JSON je pro malé znalostní báze efektivnější než vektorové DB.
- On-premise řeší zároveň bezpečnost i zpoždění.
— Editorial Team
Zatím žádné komentáře.