Обогащение

NOTE

Статус: Target service boundary. Документ описывает целевую сервисную границу. Код либо полностью отсутствует, либо существует только как scaffold — смотрите секцию «Статус документа» ниже для точного указания на код. Правила маркировки — в 50-processes/documentation-standard.md.

Этот README описывает целевую сервисную границу enrichment. Читайте его, когда нужно понять, как AI и правила дополняют каталожные данные и подтверждают слабые решения матчинга.

Назначение

AI-обогащение canonical products и support-потоки для вероятностного матчинга: извлечение характеристик, классификация, confidence scoring и human-in-the-loop.

Статус документа

  • Тип знания: target service boundary
  • Статус реализации: отдельный runtime и выделенный код сервиса пока отсутствуют
  • Текущее место кода: в репозитории нет реализации enrichment; существует только минимальный backend-scaffold backend/cmd/api-server и backend/internal/httpserver
  • Что читать дальше: ../../10-business/contexts/enrichment.md, ../matching/README.md, ../../20-architecture/principles.md

Область действия

Входит:

  • LLM-клиент и управление prompt/versioning.
  • Кэш результатов и learned cache.
  • Confidence scoring и маршрутизация в human-in-the-loop.
  • Поддержка enrichment job для search, matching и catalog flows.

Не входит:

  • Прямая запись в canonical data-модели без доменных событий.
  • Управление внешним клиентским API.

Публичный контракт

Вход

  • Запросы от search, matching, meta-search и catalog-related процессов на enrichment/verification.
  • Асинхронные enrichment jobs и события модерации.

Выход

  • Обогащённые данные, confidence scores и решения для downstream сервисов.
  • События или job-status updates в целевом runtime.

Внутренняя архитектура

В целевом состоянии это отдельный доменный модуль с AI adapters, prompt library, policy-слоем и кэшем. Реализация должна изолировать модель-провайдера от прикладной логики и оставлять явный audit trail источников.

Зависимости

  • AI provider или on-prem model runtime.
  • PostgreSQL/объектное хранилище для job-state и артефактов.
  • Kafka для асинхронных событий и job-flow.

Хранилище

  • Конкретные таблицы и хранилища пока не зафиксированы.
  • По мере реализации они должны быть описаны в 20-architecture/schemas/.

Конфигурация

Точный набор env-переменных пока не зафиксирован. Минимально ожидаются:

Env varDefaultОписание
ENRICHMENT_PROVIDERвыбранный LLM/provider
ENRICHMENT_TIMEOUT30sтаймаут одного запроса
ENRICHMENT_LOG_LEVELinfoуровень логирования

Локальный запуск

Выделенного процесса enrichment в текущем репозитории нет. Локально доступен только общий scaffold проекта, без AI-пайплайна.

Тестирование

  • Для целевой реализации обязательны unit-тесты нормализации prompt/result mapping.
  • Нужны integration-тесты adapter-слоя и offline-eval harness на зафиксированном датасете.
  • При интеграции с внешними провайдерами нужны contract tests на моковых ответах.

Наблюдаемость

В целевом состоянии нужны метрики latency, success/error rate, cache hit rate и распределения confidence score. Сейчас выделенной observability-поверхности для enrichment нет.

Открытые вопросы / TODO

  • Выбрать LLM-провайдера: on-prem или cloud.
  • Собрать eval-harness и датасет.
  • Определить границу между enrichment и moderation.

Связанные документы