feature/aimaq-zhanna-persona-language-choice
Parametrize ai_operator_default_config() via AI_OPERATOR_* env vars, falling back to the existing hardcoded defaults so the other two stacks (call-center, sales-call-center) that share this code are unaffected. Set aimaq-only overrides matching the client-provided script (Скрипт ии-оператора КГА.docx): agent renamed to Жанна, company to Казакгаз Аймак, the voice greeting now asks the caller whether Russian or Kazakh is more convenient before anything else, and the base system prompt instructs the model to commit to whichever language the caller picks for the rest of the call, ask how to address them, and confirm there's nothing else before saying goodbye.
Merge pull request 'feat: L1->L2 agent pool and routing engine for voice escalation' (#4) from feature/l1-l2-routing-engine into main
call-center
Омниканальный контакт-центр: телефония (Asterisk), Telegram, WhatsApp, веб-чат, email — плюс встроенный голосовой ИИ-оператор (распознавание речи → LLM → синтез речи). Написан на Python (FastAPI), ~25 сервисов вокруг одной SQLAlchemy-схемы, локально работает на SQLite, в проде — на PostgreSQL.
Документация
| Документ | Про что |
|---|---|
docs/architecture/overview.md |
Обзор микросервисов и их ролей |
docs/architecture/voice-ai.md |
Голосовой ИИ-оператор подробно |
docs/architecture/real-time-voice-service.md |
Рантайм голосового моста (AudioSocket, TTS/ASR) |
docs/architecture/event-schemas.md |
Схемы событий шины (RabbitMQ) |
docs/runbooks/local-setup.md |
Как поднять проект локально (демо-режим и ручной запуск) |
docs/runbooks/deployment.md |
Как разворачивать (Docker Compose / Kubernetes) |
longread.md |
Сквозной архитектурный ревью репозитория — что реально есть, где технический долг |
Быстрый старт
Подробности — в docs/runbooks/local-setup.md. Коротко:
python -m pip install -r requirements.txt
cp .env.example .env # по умолчанию SQLite, без Docker
python scripts/migrate_core_db.py
uvicorn gateway.app:app --reload --port 8080
Точки входа (после старта gateway): /operator, /supervisor, /admin, /analyst на http://localhost:8080.
Демо-режим одной командой (поднимает весь стек + тестовые данные): scripts/prepare_demo.ps1.
Тесты
pytest -q
Частые задачи
- Поменять greeting/system prompt голосового бота Айнур — правится в коде:
services/shared/ai_operator_config.py→ai_operator_default_config(), коммит и деплой; сервис сам синкает значение в БД при старте.
Languages
Python
74.2%
JavaScript
18.8%
HTML
3.4%
CSS
2.9%
PowerShell
0.4%
Other
0.3%