ор.Ольга
Решетняк
Обсудить задачу

Ассистент, который
не выдумывает числа.

Инженер спрашивает свободным текстом. Ассистент подбирает позиции с артикулами, объясняет ограничения и указывает страницу каталога для каждого факта.

CatalogRagPython · SQLite · Qdrant

Задача и ограничение

Неверное число здесь — это неверно заказанный аппарат.

Основной каталог производителя электротехники — 545 страниц: серии, номиналы, полюса, характеристики и коды заказа. Закупщик ищет артикул, инженер знает параметры, монтажник говорит жаргоном.

Ответ целиком от модели может исказить число. Обычный RAG по кускам PDF теряет колонки таблиц и не умеет надёжно проверять диапазоны параметров.

Извлечение из PDF

Гибридный парсер использует линии таблиц и группировку слов. Каждая строка проверяется грамматикой серии: код заказа дублирует параметры в колонках, и это позволяет проверить их согласованность.

  1. PDF
  2. Таблицы
  3. Грамматика серии
  4. Валидация
  5. SQLite
Строк прошло проверку554 / 556
Найдено опечаток каталога2

Две отклонённые строки оказались опечатками самого каталога: в одной ток в коде противоречит скобкам, в другой ток утечки расходится с колонкой.

Матричные таблицы проверяются геометрически: артикул должен стоять в своей ячейке. Остальные страницы доступны через постраничный семантический индекс.

Состояние проекта 08.07.2026. Основной каталог — 545 страниц, Optima — 1 009; 1 120 SKU, 2 380 параметров. Источник: README.md и лист фактов CatalogRag.

Как выглядит ответ

Позиции собираются из базы; комментарий проходит проверку: упомянутые артикулы должны входить в найденное множество. Иначе комментарий отбрасывается.

Автомат 16 А, однополюсный

Найдены позиции на 16 А, 1 полюс, характеристика C. Отличаются отключающей способностью.

ПозицияАртикулИсточник
ВА47-29-1C16-УХЛ3 · 4,5 кА318196Стр. 12
ВА47-100-1C16-УХЛ3 · 10 кА318102Стр. 15
Той же серии, но помощнее

Следующий номинал по току: ВА47-29-1C20-УХЛ3, 20 А, 4,5 кА. Артикул 318198, страница 12.

Макет диалога по валидированной базе, а не запись работы ассистента. Источник: data/eval/sku_pool_va47.json, 08.07.2026.

Как измерялось

Выдача непуста, и все артикулы входят в эталонное множество.

Eval-набор содержит 73 запроса семи типов. Эталоны берутся из базы, каждая позиция которой прошла проверку при загрузке. Прогон использует два каталога.

Сохранённый прогон71 / 73
Лучший прогон72 / 73

Между прогонами результат меняется на один запрос из-за недетерминизма облачной модели. В сохранённом прогоне остались лишние артикулы на жаргоне и на «4,5 кА» из свободного текста.

Правки касались нормализации имён параметров и операторов, доменного правила для однофазного дифавтомата и ослабления серии. Промпт почти не менялся.

08.07.2026. README.md, eval_harness/report.md. Простой запрос: 17/18; жаргон: 9/10; остальные группы без провалов. Лучший прогон не является гарантией качества на новых запросах.

Стек и границы

СлойИнструмент
Парсинг, правила, проверкиPython
Структурированные параметрыSQLite · EAV
Семантический поискbge-m3 · Qdrant
Намерение и комментарийLLM с пост-проверкой

Границы

Маршрут через визуальную модель для повёрнутых таблиц спроектирован, но не реализован. Полный маппинг брендов требует подключения следующих каталогов.

Что переносится на другой каталог

Грамматика на серию, проверка по избыточности, EAV-схема и eval-набор — общий каркас. Меняются правила серий и доменные правила. Каждый ответ сохраняет ссылку на источник, а числа берутся из базы.

Другой проектПлатформа A7

Расскажите,
что нужно
сделать.

Для первого сообщения достаточно описать, что уже работает и что хочется изменить.

Написать в Telegram@tgtoolga

Можно начать с небольшой задачи. Объём, сроки и результат согласуем до начала этапа.

ИП · договор · счета · NDA
ор.
© 2026 Ольга РешетнякИП Решетняк Ольга Валентиновна

Платформа A7 — продукт
компании A7Systems

Наверх