Модуль: Scout / Architecture
Версия: 1.0
Дата: Январь 2026
1.1 Обзор архитектуры
Принципы проектирования
| Принцип | Описание |
|---|---|
| Data Aggregation | Объединение данных из множества источников |
| Async Processing | Асинхронный сбор данных для минимизации времени ответа |
| Caching | Кэширование трендов и статистики категорий |
| Hybrid AI | GPT-5 mini для рутины, Claude Opus 4.5 для вердикта |
| History First | Сохранение всех анализов для отслеживания динамики |
Общая схема
1.2 Компоненты модуля
1.2.1 Input Parser
Назначение: Разбор и нормализация входных данных от пользователя. Поддерживаемые URL-паттерны:| Маркетплейс | Паттерн категории | Паттерн поиска |
|---|---|---|
| Wildberries | wildberries.ru/catalog/{path} | wildberries.ru/catalog/0/search.aspx?search={query} |
| Ozon | ozon.ru/category/{slug}-{id} | ozon.ru/search/?text={query} |
| Яндекс.Маркет | market.yandex.ru/catalog--{slug}/{id} | market.yandex.ru/search?text={query} |
1.2.2 Trend Miner
Назначение: Сбор и анализ данных о динамике спроса. Структура TrendResult:1.2.3 Competitor Analyzer
Назначение: Анализ конкурентной среды в категории. Структура CompetitorResult:1.2.4 Unit Calculator
Назначение: Расчёт unit-экономики для оценки маржинальности. Структура UnitEconomics:1.2.5 AI Verdict Engine
Назначение: Формирование итогового вердикта с использованием AI. Логика определения вердикта:1.2.6 History Manager
Назначение: Сохранение и управление историей анализов. Функции:| Функция | Описание |
|---|---|
save_analysis() | Сохранение результата анализа |
get_analysis(id) | Получение анализа по ID |
list_analyses(filters) | Список анализов с фильтрацией |
compare_analyses(id1, id2) | Сравнение двух анализов одной ниши |
get_niche_history(query) | История анализов по запросу |
get_accuracy_stats() | Статистика точности прогнозов (v2.0) |
1.2.7 Export Service
Назначение: Генерация отчётов в различных форматах. Поддерживаемые форматы:| Формат | Содержание | Использование |
|---|---|---|
| Полный отчёт с графиками | Для презентаций, архива | |
| Excel | Таблицы с данными | Для дальнейшего анализа |
| JSON | Сырые данные | Для интеграций |
- Титульная страница (запрос, дата, вердикт)
- Executive Summary (светофор + ключевые метрики)
- Trend Analysis (графики динамики)
- Competitor Analysis (ТОП продавцы, цены)
- Unit Economics (расчёт маржи)
- Recommendations (рекомендации AI)
- Raw Data (приложение с данными)
1.3 Схема потока данных
1.4 Интеграции
1.4.1 ADOLF Watcher
Используемые endpoints Watcher:| Endpoint | Метод | Описание |
|---|---|---|
/api/v1/watcher/category/analysis | GET | Агрегированные данные по категории |
/api/v1/watcher/prices/history | GET | История цен (для трендов) |
/api/v1/watcher/competitors/top | GET | ТОП продавцов категории |
1.4.2 Внешние API
Яндекс.Wordstat
| Параметр | Значение |
|---|---|
| Метод | API или парсинг через Watcher Agent |
| Данные | Частотность запросов за 3 месяца |
| Rate Limit | 10 req/min (API) |
| Кэширование | 24 часа |
Ozon Analytics API
| Параметр | Значение |
|---|---|
| Endpoint | /v1/analytics/data |
| Данные | Статистика категорий, тренды |
| Rate Limit | 60 req/min |
| Кэширование | 24 часа |
Wildberries Analytics
| Параметр | Значение |
|---|---|
| Метод | Парсинг через Watcher Agent |
| Данные | Статистика категорий |
| Кэширование | 24 часа |
Внешние сервисы (SimilarWeb, Serpstat)
| Параметр | Значение |
|---|---|
| Метод | REST API |
| Данные | Поисковые тренды, конкуренция |
| Rate Limit | Зависит от тарифа |
| Кэширование | 7 дней |
1.4.3 AI-сервисы
| Сервис | Модель | Назначение | Примерный объём |
|---|---|---|---|
| Timeweb AI | GPT-5 mini | Нормализация данных, агрегация | ~500 tokens/запрос |
| Anthropic | Claude Opus 4.5 | Финальный вердикт, рекомендации | ~2000 tokens/запрос |
1.5 Зависимости от Core
1.5.1 Middleware
| Функция | Использование |
|---|---|
| Авторизация | Проверка роли (Senior+) |
| Роутинг | Маршрутизация к Scout API |
| Rate Limiting | Ограничение запросов на анализ |
| Logging | Аудит действий пользователя |
1.5.2 PostgreSQL
| Таблица | Назначение |
|---|---|
scout_analyses | История анализов |
scout_marketplace_rates | Ставки расходов МП |
scout_trend_cache | Кэш трендов (долгосрочный) |
settings | Пороги светофора |
1.5.3 Celery
| Задача | Очередь | Расписание |
|---|---|---|
scout.update_trend_data | default | Ежедневно 06:00 |
scout.refresh_category_stats | default | Ежедневно 08:00 |
scout.cleanup_old_analyses | heavy | Воскресенье 03:00 |
scout.recalculate_verdicts | heavy | 1-е число месяца |
scout.analyze_niche | default | On-demand |
scout.export_analysis | default | On-demand |
1.5.4 Redis
| Ключ | Назначение | TTL |
|---|---|---|
scout:trend:{query_hash} | Кэш трендов | 24 часа |
scout:category:{url_hash} | Кэш категорий | 12 часов |
scout:rates:{marketplace} | Кэш ставок | 1 час |
scout:analysis:{id}:status | Статус async-анализа | 1 час |
1.6 Безопасность
1.6.1 Авторизация
| Уровень | Механизм |
|---|---|
| API | JWT через Middleware |
| Роли | Senior, Director, Administrator |
| Данные | Фильтрация не требуется (данные не брендозависимы) |
1.6.2 Внешние API
| Сервис | Хранение ключей |
|---|---|
| Wordstat | Environment variables |
| Ozon Analytics | api_tokens таблица |
| Внешние сервисы | Environment variables |
1.6.3 Rate Limiting
| Ресурс | Лимит | Период |
|---|---|---|
| Анализ ниши | 20 запросов | 1 час |
| Экспорт | 10 запросов | 1 час |
| История | 100 запросов | 1 час |
1.7 Производительность
1.7.1 Целевые показатели
| Операция | Целевое время | Максимум |
|---|---|---|
| Анализ ниши (cache hit) | < 10 сек | 30 сек |
| Анализ ниши (cache miss) | < 60 сек | 120 сек |
| Получение истории | < 1 сек | 3 сек |
| Экспорт PDF | < 5 сек | 15 сек |
1.7.2 Оптимизации
| Оптимизация | Описание |
|---|---|
| Параллельный сбор | Trend, Competitor, Unit — параллельно |
| Кэширование трендов | Redis TTL=24h |
| Кэширование категорий | Redis TTL=12h |
| Batch API calls | Группировка запросов к внешним API |
| Async processing | Celery для тяжёлых анализов |
1.8 Мониторинг
1.8.1 Метрики
| Метрика | Описание |
|---|---|
scout.analyses.total | Общее количество анализов |
scout.analyses.by_verdict | Распределение по вердиктам |
scout.processing_time | Время обработки |
scout.cache_hit_rate | Процент попаданий в кэш |
scout.api_errors | Ошибки внешних API |
1.8.2 Алерты
| Событие | Уровень | Действие |
|---|---|---|
| API недоступен > 5 мин | critical | Уведомление Admin |
| Cache hit rate < 50% | warning | Проверка TTL |
| Avg processing time > 60s | warning | Проверка источников |
1.9 Структура файлов модуля
Документ подготовлен: Январь 2026
Версия: 1.0
Статус: Черновик