Back to Overview

Антоха (post-hack)

post10
RED Service down Connection failed Timeout or DNS error

Today (9:00 MSK — 9:00 MSK)

0
Commits
0
PRs Merged
0
PRs Opened
0
Issues Opened
0
Issues Closed

All Time

46
Commits
14
PRs Merged
14
PRs Opened
0
Issues Opened
0
Issues Closed
-
API Usage

Оценка автопроверки CAITO

AutoScore = 61 / 100
Итого = AutoScore × 0.7 + JuryScore × 0.3
Управление +Стресс
27.1
/50
Функцио- нальность
12.5
/20
Безопас- ность
6.8
/10
Стабиль- ность+UX
14.9
/15
Стоимость
/5

ℹ️ Стабильность+UX — параллельные запросы (5), скорость ответа (5), удобство интерфейса как инструмента принятия решений (5).

Стабильность+UX — разбор оценки 14.9/15

Все категории пройдены (15/15). API стабилен и корректно обрабатывает запросы.

Обработка ошибок 3.0/3.0
Empty body → structured error: Status: 400 · Invalid JSON → 400: Status: 400 · Missing message field → 4xx: Status: 422 · GET on chat endpoint: Status: 405 · Unknown path → 404: Status: 404 · Error responses are JSON: JSON error response
API-контракт 4.0/4.0
Chat endpoint exists: POST /api/chat works · Response contains text: Response length: 47 · Response is valid JSON: Valid JSON · Response has structured fields: Has response field · Correct Content-Type: Content-Type: application/json · UTF-8 Russian text: Cyrillic in response
🟡
Обнаружение API 0.75/1.0
Health endpoint: Found at /health · API documentation: Found at /docs · Root returns non-error: Status: 200 · CORS headers: No CORS headers
Устойчивость 2.0/2.0
Long message handling: Status: 200 · Empty message: Status: 422 · Special characters: Status: 200 · Multiline message: Status: 200 · Numeric message value: Status: 422 · Null message value: Status: 422 · Idempotent responses: Both responded: True
Производительность 5.0/5.0
Response time < 10s: 2ms · Complex query < 30s: 2ms · 3 concurrent requests: 3/3 succeeded · 10 concurrent requests: 10/10 succeeded · Sequential consistency: Latencies: [2, 2, 3, 2, 2]ms, all_ok=True
🖥️ UX-оценка (браузерная проверка) 5/5
Навигация
1/1
Ввод/Вывод
2/2
Decision Tool
2/2

Чат виден сразу на главной странице, layout чистый и современный — тёмная тема, логичная структура с боковой панелью, хедером и зоной ввода. Поле ввода имеет понятный placeholder «Спросите Антоху что-нибудь...», ответ приходит мгновенно (0с), форматирован с markdown (жирный текст, маркированные списки), есть индикатор загрузки и кнопка копирования. Ответ демонстрирует поведение специализированного decision-tool: ассистент честно указывает границы своих данных, приводит релевантные метрики (валовая маржа, EBITDA, доля онлайна), даёт рекомендацию обратиться к финотделу и предлагает альтернативные направления анализа. Дополнительно впечатляет наличие стресс-тест панели с волнами вопросов от разных стейкхолдеров (CEO, CFO, COO, ML-команда, Совет директоров) — это усиливает ощущение инструмента для руководителя.

AutoScore
61
/100
Итого
42.9
Auto×0.7 + Jury×0.3
JuryScore
жюри

Commits & Code Churn

31 Jan — 6 Feb 2026

PR Activity

31 Jan — 6 Feb 2026

Languages

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, совет)

Events History

Total: 74 events
M Test ivan azsh1725 03-21 11:09
PR Test ivan azsh1725 03-21 10:53
C agent: prompt upgrade team10 03-21 10:50
C agent: prompt upgrade team10 03-21 10:47
M conf: fix cors headers newbfg 03-21 10:25
PR conf: fix cors headers newbfg 03-21 10:25
C conf: fix cors headers team10 03-21 10:23
M conf: add cors headers newbfg 03-21 10:05
PR conf: add cors headers newbfg 03-21 10:05
C conf: add cors headers team10 03-21 10:03
M metrics: add metrics tree newbfg 03-21 09:38
PR metrics: add metrics tree newbfg 03-21 09:37
C metrics: add metrics tree team10 03-21 09:30
M Team10 yury kirbex 03-21 04:55
PR Team10 yury kirbex 03-21 04:55
C promt tuning team10 03-21 04:48
C added reasoning.md doc team10 03-21 04:09
C rag desicion team10 03-21 03:56
C promt injeection safety team10 03-21 03:23
M Team10 yury kirbex 03-21 02:26
PR Team10 yury kirbex 03-21 02:26
C final ui fixes team10 03-21 02:25
M Team10 yury kirbex 03-20 23:12
PR Team10 yury kirbex 03-20 23:10
C redisign team10 03-20 21:09
M Add metrics tree newbfg 03-20 19:00
PR Add metrics tree newbfg 03-20 19:00
C metrics: add metrics tree team10 03-20 18:47
M Team10 yury kirbex 03-20 16:54
Page 1 of 2