🖥️ ИИ-подборщик ПК-комплектующих

Чат-агент, который понимает запрос «как у людей» и находит реальные товары в прайсе поставщика

🎯 Проблема

Менеджер или покупатель ищет товар в большом прайс-листе комплектующих:

  • Поиск по таблице требует точных слов: «видюха 5070 от Palit» или «SSD на терабайт» в Excel ничего не найдут, нужно знать, как позиция названа в прайсе
  • Менеджеры тратят время на рутину: однотипные вопросы «что есть в наличии» отвлекают от продаж
  • Обычный чат-бот на LLM выдумывает: может «предложить» товар, которого нет в каталоге, или неверную цену
  • Слишком широкий запрос: «процессор Intel» возвращает десятки позиций, и непонятно, как сузить выбор

Результат: долгий поиск, ошибки в подборе и потерянные клиенты.

💡 Решение

Чат-агент, который превращает запрос на русском языке в проверенный запрос к каталогу и показывает только реальные товары:

✅ Понимает сленг и приблизительные названия ✅ Только товары из прайса ✅ Уточнение кнопками ✅ Ответ за ~3 секунды ✅ Публичное демо

🔧 Как это работает

Этап Что происходит Результат
1. Каталог Прайс-лист Excel разбирается на категории и характеристики: правила плюс дозаполнение пропусков с помощью LLM с проверкой человеком База из ~1000 товаров в 5 категориях
2. Проверка ввода Пустой ввод, JSON и подозрительные вставки отсекаются ещё до LLM; попытки prompt-injection распознаёт классификатор Защита от мусора и атак
3. Категория LLM определяет, что ищет пользователь, даже по приблизительному названию: «видюха» → видеокарты, «fpu i5» → процессоры. Вопросы не по теме и сборки целого ПК вежливо отклоняются Категория каталога или понятный отказ
4. Поиск Агент вызывает инструменты каталога: фильтры проверяются по справочнику характеристик, при ошибке агент получает подсказки ближайших значений Точный запрос к базе
5. Уточнение Если найдено больше 10 товаров, агент предлагает кнопки с вариантами (бренд, модель, цена) из текущей выборки; лимит сравнивает код, а не модель Выбор сужается за 1 шаг
6. Ответ Товары берутся только из базы, тексты — из готовых шаблонов; каждый ход логируется Карточки с ценой и наличием

💻 Пример интерфейса

1. Приблизительный запрос

Запрос со сленгом

Запрос «видюха 5070 от палит» — агент сам понимает, что речь о видеокартах

2. Уточнение кнопками

Уточнение запроса

Широкий запрос «процессор Intel»: строка «Найдено N…», кнопки вариантов и учтённые фильтры

3. Найденные товары

Карточки товаров

Карточки реальных товаров из прайса с ценой и наличием

✨ Ключевые преимущества

  • Поиск «по-человечески» — не нужно знать, как товар назван в прайсе: сленг, сокращения и опечатки распознаются, если смысл однозначен
  • Никаких выдуманных товаров — модель не пишет список товаров сама, их возвращает только код из базы
  • Контроль качества — поведение проверяется набором реальных запросов с форумов
  • Подходит и менеджерам, и клиентам — внутренний помощник для быстрых ответов или замена обычного поиска на сайте
  • Независимость от провайдера — работает с любым OpenAI-совместимым API (Qwen, OpenAI и др.), модель меняется в конфиге

📈 Метрики

Показатель Значение
Точное совпадение найденных товаров 97,8%
Среднее время ответа ~3 секунды
Размер каталога ~1000 товаров, 5 категорий
💡 Точное совпадение — доля запросов, где агент нашёл ровно тот набор товаров, что и эталонный запрос к базе. Проверка — на реальных запросах пользователей с форумов о комплектующих.
💡 Статус проекта: Пет-проект. Публичное демо ограничено 20 запросами в сутки.

🚀 Варианты улучшения

Направление Что добавить
Сборка ПК Подбор нескольких совместимых комплектующих в одном диалоге (сейчас — одна категория за раз)
Больше категорий Блоки питания, корпуса, охлаждение и другие разделы прайса
Telegram-бот Тот же агент в мессенджере: API уже не зависит от канала
Автообновление прайса Регулярная загрузка нового прайс-листа без ручного запуска
PostgreSQL Переход с SQLite для большой нагрузки (поддержка уже заложена)

🛠️ Технологии

Python FastAPI Jinja2 OpenAI-compatible API Qwen Tool Calling SQLAlchemy SQLite Alembic rapidfuzz Docker Caddy GitHub Actions

🔗 Ссылки

🚀 Открыть демо @ Написать в Telegram

Хотите такого помощника для своего каталога? Напишите мне — обсудим адаптацию под ваш прайс и задачи.