О проекте
Команда: Gyper group
Кейс HackAlem.ai: Коммуникации — Halyk Bank · кейс 2
Стадия: Прототип
Задача кейса: «Voice Router»: голосовой AI, маршрутизирующий звонки в контакт-центре страховой компании
Суть
Двуязычный (рус./каз.) голосовой маршрутизатор обращений для страховой: локальный векторный отбор кандидатов-сценариев и опциональное решение gpt-4o-mini с трассировкой в панели супервизора.
Как устроено
Транскрипт по WebSocket (/ws/router) → hashed-vector косинусный поиск top-3 сценариев из scenarios.json → gpt-4o-mini выбирает сценарий среди кандидатов с промптом под RU/KZ/смешанную речь, извлекает слоты → при низкой уверенности fallback и перевод на оператора. Ответ содержит тайминги stt/retrieval/llm/tts. Без ключа работает локальный быстрый путь.
Ключевые решения
- hashed-vector cosine retrieval
- top-3 кандидатов
- извлечение слотов
- confidence fallback
- handover оператору
- WebSocket-телеметрия
Особенности
Гибридная маршрутизация: дешёвый локальный векторный фильтр сужает выбор LLM до трёх сценариев, а задержка каждого этапа (STT, retrieval, LLM, TTS) измеряется и показывается супервизору.
Стек
Python · WebSocket · Tailwind CSS · JavaScript · Docker Compose
Модели
GPT-4o-mini
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-8f5368cd-gyper-group.
README
README.mdHalyk Voice Router
A bilingual Russian/Kazakh hybrid voice router for HackAlem AI Hackathon demos. It combines an in-memory cosine candidate filter with an optional gpt-4o-mini contextual decision and streams every routing stage to a supervisor dashboard.
Start
docker-compose up --build
Open http://localhost:8001 by default (set PORT=8000 to override). The app works without an API key using its local fast path. To enable LLM adjudication, create .env:
OPENAI_API_KEY=your_key
OPENAI_MODEL=gpt-4o-mini
Architecture
app/core/vector_index.py: local hashed-vector cosine retrieval of top 3 scenarios.app/services/router.py: candidate restriction, RU/KZ/code-switch prompt, slot extraction, confidence fallback, and human handover.app/main.py: WebSocket protocol and response telemetry.app/templates/index.html: voice/text simulator and live supervisor trace.
WebSocket Event
Send {"type":"route","transcript":"Картамды жоғалттым"} to /ws/router. The response contains selected scenario, candidates, reasoning, extracted slots, and stt_ms, candidate_retrieval_ms, llm_routing_ms, tts_ms, and total_ms.
Demo Data
Replace the JSON files in data/ with the full 40-scenario corpus. Each scenario needs id, title_ru, title_kz, description, keywords, and optionally examples.
Авторы коммитов
История коммитов
- 2026-09-23 17:57finaltilanbaev
- 2026-09-23 17:36Style Saqta Insurance brandmeyrzhan
- 2026-09-23 17:33Rename Saqta AI to Saqta Insurancemeyrzhan
- 2026-09-23 17:18Создать адаптивный интерфейс Saqta AImeyrzhan
- 2026-09-23 15:50style(frontend): rebuild interface as a bank messengerZhanbota
- 2026-09-23 15:31feat: add Russian Kazakh and mixed conversation modesZhanbota
- 2026-09-23 15:16style(frontend): rebuild layout with editorial minimalismZhanbota
- 2026-09-23 15:10style(frontend): redesign console with soft glass panels and sculptural heroZhanbota
Все коммиты (21)
- 2026-09-23 14:49fix(frontend): let users edit voice input before sendingZhanbota
- 2026-09-23 14:34fix(frontend): request microphone access before voice inputZhanbota
- 2026-09-23 14:30style changeZhanbota
- 2026-09-23 14:28style(frontend): simplify supervisor console designZhanbota
- 2026-09-23 14:17new codetilanbaev
- 2026-09-23 14:01im deleted all filestilanbaev
- 2026-09-23 13:45Сделал структуру Halyk Voice Routermeyrzhan
- 2026-09-23 11:46commit messageZhanbota
- 2026-09-23 11:47messagetilanbaev
- 2026-09-23 11:45messagemeyrzhan
- 2026-09-23 11:44rtyujkmeyrzhan
- 2026-09-23 11:42committilanbaev
- 2026-09-23 11:35Началиmeyrzhan
Структура репозитория (35 файлов)
.dockerignore .env.example .github/copilot-instructions.md .gitignore Dockerfile README.md app/__init__.py app/config.py app/core/__init__.py app/core/scenario_loader.py app/core/vector_index.py app/main.py app/services/__init__.py app/services/action_executor.py app/services/evaluator.py app/services/router.py app/services/stt_tts.py app/static/css/style.css app/static/css/tailwind.input.css app/static/js/app.js app/templates/index.html data/README.kz.md data/README.md data/README.ru.md data/actions.json data/dev_utterances.json data/dialogs_sample.json data/evaluate.py data/knowledge_base.json data/mock_backend.json data/scenarios.json data/slots.json docker-compose.yml package.json requirements.txt
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.