AAYMA
RU
Войти

Halyk Voice Router / Saqta Insurance

Двуязычный (рус./каз.) голосовой маршрутизатор обращений для страховой: локальный векторный отбор кандидатов-сценариев и опциональное решение…

Прототип
Команда «Gyper group» 11💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: 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.md

Halyk 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.

Звёзды
⭐ 0
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
21
Авторы
3
Файлы
35
Ветки
1

Авторы коммитов

Zhanbota 9meyrzhan 7tilanbaev 5

История коммитов

  • 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 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.