AI-дедупликатор — 50K записей, 95% точность, часы вместо месяцев
Сеть общественного питания
AI находит дубликаты в каталоге из 50 000 позиций: понимает, что «Борщ» и «Борщ украинский» — одно блюдо. 95%+ точность. Смотреть кейс →
О проекте
Когда в сети ресторанов накапливаются тысячи рецептур от разных поставщиков, разобраться в них вручную невозможно. Система за считанные часы анализирует весь каталог, находит дубликаты и вариации, группирует их в кластеры и предлагает объединить. Оператор только подтверждает решения AI.
Функциональность
Мультимодельный AI
Комбинация Gemini и Ollama: облачный AI для сложных задач, локальный для конфиденциальных данных.
Векторный поиск
pgvector + sentence-transformers: семантический поиск похожих блюд по смыслу, а не по тексту.
Продвинутый UI
React 18 SPA: интерактивные таблицы, bulk-операции, визуализация кластеров дубликатов.
Batch-обработка
Загрузка Excel/CSV, массовая обработка, очереди задач с прогрессом.
Роли и права
Система ролей: оператор, аналитик, администратор. Аудит всех действий.
Аналитика
Дашборды: статистика дубликатов, качество каталога, тренды нормализации.
Ключевые процессы
Пользовательские сценарии и потоки данных
Batch-обработка каталога
Полный цикл загрузки и анализа каталога рецептур.
Проверка дубликата
Workflow принятия решения по кластеру дубликатов.
Роли и интерфейсы
Оператор
Загрузка каталогов, проверка кластеров дубликатов, подтверждение решений AI
Аналитик
Просмотр дашбордов, статистика качества каталога, отчёты по нормализации
Администратор
Настройка параметров AI, управление пользователями, аудит действий
Технологический стек
Backend
- Python 3.12
- FastAPI 0.115.6
- SQLAlchemy 2.0
- Pydantic v2
- Celery
Frontend
- React 18.3
- TypeScript
- Ant Design
- TanStack Query
- Recharts
AI/ML
- Google Gemini
- Ollama (локальный)
- sentence-transformers
- pgvector
Данные
- PostgreSQL 17
- pgvector extension
- Redis
- Alembic
DevOps
- Docker Compose
- Nginx
- pytest
- Poetry
Объём кода
Безопасность
- Локальная обработка конфиденциальных данных через Ollama — ничего не уходит в облако
- Полный аудит действий: кто, когда и что изменил
- Ролевая модель доступа: оператор, аналитик, администратор
- Версионирование изменений каталога с возможностью отката
AI-функции
- Gemini для контекстного анализа сложных случаев
- Ollama для локальной обработки конфиденциальных данных
- sentence-transformers для генерации эмбеддингов
- pgvector для быстрого поиска по косинусному сходству
- Автоматическая кластеризация дубликатов
- AI-подсказки для операторов при ручной проверке
⚠️Проблема
Каталог рецептур разросся до 50 000 позиций. В нём точно есть дубликаты, но найти их руками нереально.
Одно блюдо записано десятками способов: "Борщ", "Борщ украинский", "Борщ с мясом", "Борщ домашний" — простой поиск по названию не поможет.
Данные приходят из разных источников: от поставщиков в Excel, от франчайзи в CSV, из 1С — везде разные форматы.
Нужна не просто таблица дубликатов, а полноценная система: загрузка, проверка, история, роли сотрудников.
💡Решение
AI понимает смысл, а не буквы — система знает, что "Борщ украинский" и "Борщ с мясом" похожи, даже если названия разные.
Два AI-мозга — облачный Gemini для сложных случаев, локальный Ollama для конфиденциальных данных (ничего не уходит наружу).
Загрузил файл — получил результат — система сама парсит Excel и CSV любых форматов, находит дубликаты, группирует.
Оператор только подтверждает — AI предлагает решение, человек проверяет и одобряет. Никакой ручной работы.
Полная история — кто что изменил, когда, почему. Для аудита и разбора ситуаций.
✅Результаты
- Каталог из 50 000 позиций обрабатывается за несколько дней (с подтверждением человеком) вместо месяцев ручной работы.
- Точность определения дубликатов — 95%+. Меньше ошибок, чем у живых сотрудников.
- Данные из любых источников загружаются автоматически, без ручного форматирования.
- Прозрачная история всех изменений для аудита и compliance.
Вот представьте...
История одного запроса
«У нас в меню "Борщ украинский", а в системе три варианта: "Борщ", "Борщ с мясом", "Борщ домашний". Какой ставить?» И таких звонков — каждый день. А у вас 50 000 позиций в каталоге.
Пробовали выгрузить всё в таблицу. Открыли. Закрыли. Руками это не разобрать — названия разные, а блюда те же. "Салат Цезарь", "Цезарь с курицей", "Caesar salad". Три записи. Одно блюдо.
Загрузили каталог. Система прочитала не буквы — смысл. Через час выдала: «Вот 3,000 кластеров дубликатов. Первый кластер: 47 вариантов борща. Выберите главную запись.»
За неделю вместо месяцев. 95% точность — лучше, чем живые сотрудники. Конфиденциальные рецепты остались внутри — Ollama работает локально. Франчайзи больше не звонят.
Глоссарий AI-терминов
Ключевые понятия для понимания проекта
GEO-оптимизация(GEO)
Оптимизация контента для AI-поисковиков (ChatGPT, Perplexity, Claude).
AI-агенты(AI-AGENTS)
Автономные AI-системы, выполняющие задачи самостоятельно без контроля человека.
E-E-A-T(EEAT)
Критерии Google: опыт, экспертиза, авторитетность, надёжность. Важны для SEO и GEO.
LLM (Large Language Model)(LLM)
Нейросеть для понимания и генерации текста (GPT-4, Claude, Gemini).
RAG (Retrieval-Augmented Generation)(RAG)
Технология для работы AI с вашими данными: документами, базами знаний.
Промпт (Prompt)(PROMPT)
Текстовая инструкция для AI. Качество промпта = качество результата.
MVP (Minimum Viable Product)(MVP)
Минимальная версия продукта для проверки гипотезы на пользователях.
Технологический стек(TECH-STACK)
Набор технологий проекта: языки, фреймворки, базы данных, облако.
Интеграция(INTEGRATION)
Связывание AI с системами компании: CRM, ERP, 1C, мессенджеры.
Развёртывание (Deployment)(DEPLOYMENT)
Запуск решения в production с мониторингом и масштабированием.
Частые вопросы
Как AI понимает, что "Борщ" и "Борщ украинский" — это одно блюдо?
Система использует векторные представления (эмбеддинги) текста через sentence-transformers и pgvector. AI сравнивает не буквы, а семантический смысл названий, учитывая контекст и типичные вариации.
Можно ли использовать систему для конфиденциальных данных?
Да. Для конфиденциальных рецептур используется локальная модель Ollama — данные не покидают ваш сервер. Облачный Gemini применяется только для публичных данных или когда требуется повышенная точность.
Какой объём каталога система может обработать?
Система протестирована на каталогах до 50 000 позиций. Обработка занимает от нескольких часов до нескольких дней в зависимости от объёма и необходимости ручной верификации кластеров.
Что делать, если AI неправильно объединил записи?
Все решения AI требуют подтверждения оператором. Если ошибка обнаружена после объединения, система хранит полную историю изменений с возможностью отката.
Нужен похожий проект?
Расскажите о вашей задаче — обсудим, как мы можем помочь. Рекомендации предоставляем по запросу.
Обсудить проект