Skip to content

Раздел 1: Архитектура

Проект: Интеллектуальная система управления репутацией
Модуль: Reputation
Версия: 2.1
Дата: Январь 2026


1.1 Назначение модуля

Цели модуля

Adolf Reputation — функциональный модуль системы Adolf, обеспечивающий автоматизированное управление репутацией на маркетплейсах Wildberries, Ozon и Яндекс.Маркет.

Основные цели:

ЦельОписаниеМетрика успеха
Сокращение времени ответаАвтоматическая генерация ответов на отзывы и вопросыВремя реакции < 30 минут
Повышение качества ответовПерсонализированные ответы на основе данных о товареСнижение возвратов на 15%
Аналитика тональностиАвтоматическая классификация отзывов95% точность классификации

Задачи модуля

  1. Агрегация данных — периодический сбор отзывов и вопросов с маркетплейсов
  2. AI-анализ — классификация тональности, выявление тем
  3. Генерация ответов — создание персонализированных ответов с учётом данных о товаре
  4. Валидация — предоставление менеджеру интерфейса для утверждения/редактирования
  5. Публикация — отправка утверждённых ответов через API маркетплейсов
  6. Аналитика — сбор статистики по обработанным обращениям

Целевые пользователи

РольДоступФункции
ManagerСвой брендОбработка отзывов, утверждение ответов
SeniorВсе брендыОбработка + аналитика + настройки
DirectorВсе брендыПолный доступ + отчётность
AdministratorВсе брендыУправление конфигурацией

1.2 Границы модуля

Входит в модуль Reputation

КомпонентОписание
Polling ServiceПериодический сбор отзывов и вопросов через API маркетплейсов
AI PipelineКлассификация, анализ тональности
Response GeneratorГенерация ответов с использованием RAG (Knowledge API)
Marketplace AdaptersУнифицированный интерфейс к API WB, Ozon, YM
REST APIEndpoints для управления отзывами и вопросами
Open WebUI AgentИнтерфейс @Adolf_Reputation для менеджеров
Celery TasksФоновые задачи polling, анализа, отправки

Не входит в модуль Reputation

КомпонентГде реализованоТип взаимодействия
Авторизация пользователейADOLF Core (Middleware)Используется готовая
База знаний о товарахADOLF KnowledgeAPI-запросы
Хранение пользователейADOLF Core (PostgreSQL)Чтение таблицы users
Система уведомленийADOLF Core (Notifications)Event Bus
Векторный поискTimeweb KB (OpenSearch)Через Knowledge API
Генерация текста (LLM)Timeweb AI Agent / OpenAIAPI-вызовы

Функционал v2.0 (будущее)

КомпонентОписание
Vision AnalyzerАнализ фото на брак и дефекты (GPT-4o Vision)
Cross-Sell EngineРекомендации сопутствующих товаров
Media DownloaderСкачивание фото/видео из отзывов

1.3 Зависимости от ADOLF Core

1.3.1 Middleware (FastAPI)

Используемые возможности:

ВозможностьПрименение в Reputation
АвторизацияПроверка role >= manager для доступа к функциям
ИдентификацияПолучение user_id, brand_id из заголовков
РоутингРегистрация endpoints /api/v1/reputation/*
АудитЛогирование действий в audit_log
Webhook APIОтправка алертов через /api/v1/webhooks/alerts

Расширение Middleware:

middleware/
├── routes/
│   └── reputation.py          # API endpoints
├── models/
│   └── reputation.py          # SQLAlchemy models
└── services/
    └── reputation/            
        ├── __init__.py
        ├── review_service.py
        ├── question_service.py
        └── response_generator.py

1.3.2 Celery Workers

Задачи Reputation:

ЗадачаОчередьПериодичностьОписание
reputation.poll_wb_reviewsdefault*/5 :00Сбор отзывов Wildberries
reputation.poll_wb_questionsdefault*/5 :50Сбор вопросов Wildberries
reputation.poll_ozon_reviewsdefault*/5 1:40Сбор отзывов Ozon
reputation.poll_ozon_questionsdefault*/5 2:30Сбор вопросов Ozon
reputation.poll_ym_reviewsdefault*/5 3:20Сбор отзывов Яндекс.Маркет
reputation.poll_ym_questionsdefault*/5 4:10Сбор вопросов Яндекс.Маркет
reputation.analyze_itemdefaultПо событиюAI-анализ отзыва/вопроса
reputation.generate_responsedefaultПо событиюГенерация ответа
reputation.send_responsedefaultПо событиюПубликация ответа
reputation.retry_failed_publishdefaultКаждый часПовторная отправка failed
reputation.calculate_daily_analyticsdefault01:00Ежедневная аналитика
reputation.archive_old_itemsdefault02:00Архивация старых записей

Расширение структуры tasks:

tasks/
└── reputation_tasks.py        # Реализация задач

1.3.3 PostgreSQL

Новые таблицы:

ТаблицаНазначение
reputation_itemsОтзывы и вопросы
reputation_responsesСгенерированные и отправленные ответы
polling_stateСостояние polling по платформам
reputation_analyticsАгрегированная статистика

Используемые таблицы Core:

ТаблицаИспользование
usersПолучение role, brand_id для фильтрации
audit_logЗапись действий пользователей
notificationsСоздание уведомлений о новых отзывах

1.3.4 Redis

Использование:

ПрименениеОписание
Celery BrokerОчередь задач polling и обработки
Rate LimitingКонтроль частоты запросов к API маркетплейсов
Circuit BreakerСостояние circuit breaker для API

1.3.5 Notification System

Типы событий для уведомлений:

СобытиеУровеньПолучателиОписание
review.newinfoManager (по бренду)Новый отзыв
question.newinfoManager (по бренду)Новый вопрос
review.negativewarningManager (по бренду)Негативный отзыв (1-2 звезды)

1.3.6 Environment Variables

Credentials для API маркетплейсов:

bash
# Wildberries
WB_API_TOKEN=xxx
WB_API_TOKEN_EXPIRES=2026-06-01T00:00:00Z

# Ozon
OZON_CLIENT_ID=xxx
OZON_API_KEY=xxx

# Яндекс.Маркет
YM_OAUTH_TOKEN=xxx
YM_CAMPAIGN_ID=xxx

1.4 Компоненты модуля

1.4.1 Структура компонентов

1.4.2 API Layer

Endpoints:

MethodEndpointОписание
GET/api/v1/reputation/itemsСписок отзывов и вопросов
GET/api/v1/reputation/items/{id}Детали отзыва/вопроса
POST/api/v1/reputation/items/{id}/approveУтвердить ответ
POST/api/v1/reputation/items/{id}/editРедактировать и утвердить
POST/api/v1/reputation/items/{id}/skipПропустить (не отвечать)
POST/api/v1/reputation/items/{id}/escalateЭскалация
POST/api/v1/reputation/items/{id}/regenerateПерегенерировать ответ
POST/api/v1/reputation/items/bulk-approveМассовое утверждение
GET/api/v1/reputation/statsСтатистика по отзывам
GET/api/v1/reputation/analyticsРасширенная аналитика

1.4.3 Service Layer

ReviewService / QuestionService:

МетодОписание
get_items(filters)Получение списка с фильтрацией
get_item(id)Получение по ID
update_status(id, status)Изменение статуса
assign_manager(id, user_id)Назначение ответственного

ResponseGenerator:

МетодОписание
generate(item)Генерация ответа с RAG
regenerate(item, instructions)Перегенерация с указаниями

1.4.4 Adapter Layer

Интерфейс MarketplaceAdapter (абстрактный):

python
class MarketplaceAdapter(ABC):
    @abstractmethod
    async def get_reviews(self, params: PollParams) -> List[Review]: ...
    
    @abstractmethod
    async def get_questions(self, params: PollParams) -> List[Question]: ...
    
    @abstractmethod
    async def send_review_response(self, review_id: str, text: str) -> bool: ...
    
    @abstractmethod
    async def send_question_response(self, question_id: str, text: str) -> bool: ...

1.4.5 Open WebUI Agent

Агент: @Adolf_Reputation

Функции (Tools):

ToolОписание
get_pending_itemsПолучить список ожидающих обработки
get_item_detailsДетали отзыва с анализом и черновиком
approve_responseУтвердить ответ
edit_and_approveРедактировать и утвердить
regenerate_responseПерегенерировать ответ
escalateЭскалация
get_statsСтатистика за период
bulk_approveМассовое утверждение (5 звёзд без текста)

1.5 Архитектурная диаграмма

Общая схема модуля


1.6 Потоки данных

1.6.1 Поток 1: Сбор отзывов (Polling)

1.6.2 Поток 2: Обработка отзыва (AI Pipeline)

1.6.3 Поток 3: Утверждение и публикация


1.7 Обработка ошибок

Единая политика

ПараметрЗначение
Timeout запроса30 секунд
Retry стратегияExponential backoff: 1с → 2с → 4с
Максимум попыток3
Circuit breaker открытиеПосле 5 последовательных ошибок
Circuit breaker reset60 секунд

Обработка ошибок публикации


1.8 Масштабирование

Горизонтальное масштабирование

КомпонентСпособ масштабирования
Celery WorkersУвеличение количества воркеров
APIРепликация контейнеров за Nginx
PostgreSQLRead replicas (при необходимости)

Рекомендации по нагрузке

ПараметрЗначение v4.0Предел
Отзывов в день~50500
Polling interval5 минут1 минута
Celery workers28
API replicas14

Приложение А: Контрольные точки

КритерийПроверка
Polling работаетЛоги Celery показывают задачи poll_*
ДедупликацияПовторный polling не создаёт дубликатов
AI-анализПоле ai_analysis заполняется
Генерация ответовПоле draft_text создаётся
ПубликацияОтветы появляются на маркетплейсе
УведомленияСобытия приходят в Open WebUI

Приложение Б: Расширение в v2.0

При переходе на v2.0 планируется добавление:

КомпонентОписание
VisionAnalyzerАнализ фото на брак (GPT-4o Vision)
CrossSellServiceРекомендации сопутствующих товаров
MediaDownloaderСкачивание и хранение фото/видео
response_quality_reviewsОценка качества ответов менеджерами

Документ подготовлен: Январь 2026
Версия: 2.1
Статус: Согласовано

Документация ADOLF Platform