Антоха (post-hack)
Today (9:00 MSK — 9:00 MSK)
All Time
Оценка автопроверки CAITO
ℹ️ Стабильность+UX — параллельные запросы (5), скорость ответа (5), удобство интерфейса как инструмента принятия решений (5).
Все категории пройдены (15/15). API стабилен и корректно обрабатывает запросы.
Чат виден сразу на главной странице, layout чистый и современный — тёмная тема, логичная структура с боковой панелью, хедером и зоной ввода. Поле ввода имеет понятный placeholder «Спросите Антоху что-нибудь...», ответ приходит мгновенно (0с), форматирован с markdown (жирный текст, маркированные списки), есть индикатор загрузки и кнопка копирования. Ответ демонстрирует поведение специализированного decision-tool: ассистент честно указывает границы своих данных, приводит релевантные метрики (валовая маржа, EBITDA, доля онлайна), даёт рекомендацию обратиться к финотделу и предлагает альтернативные направления анализа. Дополнительно впечатляет наличие стресс-тест панели с волнами вопросов от разных стейкхолдеров (CEO, CFO, COO, ML-команда, Совет директоров) — это усиливает ощущение инструмента для руководителя.
Commits & Code Churn
31 Jan — 6 Feb 2026PR Activity
31 Jan — 6 Feb 2026Languages
README
BigTechGroup AI Personalization Assistant
ML-driven recommendation/chat agent для крупной e-commerce платформы. Система предоставляет чат-API, которое принимает вопросы пользователей и возвращает AI-сгенерированные ответы.
Архитектура
- Единый LLM-агент с полным контекстом проекта в системном промпте (~21K токенов)
- Персона: Антон Кириллов (CAITO) — отвечает на основе данных, противостоит давлению
- Context stuffing: все 4 источника данных загружаются при старте (ML-метрики, финансы, операционка, коммуникации)
- API: HTTP REST (JSON POST) — спецификация в
web_api_src/api_design.png - UI: Streamlit
- Деплой: Docker Compose за Traefik reverse proxy на
team10.south.aitalenthub.ru:8501
Быстрый старт
# Запуск
docker compose up --build
# Тест запроса
curl -X POST http://localhost:8000/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "Какой сейчас Precision@10?"}'
Параллельная работа через git worktree
Все разработчики работают на одной VM в одном репозитории /home/team10/team10. Чтобы не мешать друг другу, каждый создаёт свой worktree — отдельную рабочую директорию, привязанную к своей ветке.
Текущие worktree
| Разработчик | Директория | Ветка |
|---|---|---|
| Юрий | /home/team10/team10 |
ui-yury |
| Azik | /home/team10/team10-azik |
feature-azik |
Создать worktree
cd /home/team10/team10
git worktree add ../team10-<имя> -b <ветка> main
Рабочий процесс
# 1. Перейти в свою директорию
cd /home/team10/team10-<имя>
# 2. Внести изменения, закоммитить
git add <файлы>
git commit -m "feat: описание изменений"
# 3. Синхронизироваться с main перед пушем
git fetch origin
git merge origin/main
# 4. Запушить
git push -u origin <ветка>
# 5. Создать Pull Request
gh pr create --base main --title "Описание" --body "Что сделано"
# 6. После мерджа — обновить свой worktree
git fetch origin
git merge origin/main
Удалить worktree
cd /home/team10/team10
git worktree remove ../team10-<имя>
git branch -d <ветка>
Полезные команды
git worktree list # все активные worktree
git worktree prune # очистить осиротевшие worktree
Правила
- Основной репозиторий (
/home/team10/team10) — не трогать, если кто-то в нём работает - Одна ветка = один worktree
- Мержить в
main— только через Pull Request - Перед пушем всегда синхронизироваться с
origin/main
Структура проекта
app/
├── api.py # FastAPI — эндпоинты /api/chat, /health и др.
├── models.py # Pydantic-модели запросов/ответов
├── config.py # Конфигурация через env-переменные
├── agent/
│ ├── base.py # Базовый класс агента (ABC)
│ ├── prompts.py # Системный промпт (роль, стейкхолдеры, правила)
│ ├── llm_agent.py # LLM-агент (OpenAI API)
│ └── placeholder_agent.py
└── knowledge/
└── loader.py # Загрузка .md файлов с структурированными заголовками
source_data_md/ # Данные проекта в markdown (на русском)
tests/
└── test_quality.py # Тесты: функциональность, нагрузка, безопасность, стресс
web_api_src/ # API спецификация и дизайн
streamlit_app/ # UI на Streamlit
source_data_raw/ # Исходные файлы (xlsx, docx)
Тестирование
# Все тесты (требует запущенный сервер)
BASE_URL=http://localhost:8000 pytest tests/test_quality.py -v
# Только API-контракт (быстрые, без LLM)
BASE_URL=http://localhost:8000 pytest tests/test_quality.py -v -k "APIContract"
# Только стресс-тест (5 волн давления)
BASE_URL=http://localhost:8000 pytest tests/test_quality.py -v -k "StressWaves"
Тесты покрывают 4 категории из критериев оценки:
- Функциональность — управленческие вопросы с цифрами и обоснованной позицией
- Нагрузочная устойчивость — последовательные и параллельные запросы
- Безопасность — устойчивость к промпт-инъекциям
- Стресс-тест — 5 волн давления от стейкхолдеров (CEO, CFO, COO, ML, совет)