НИИСТРОМ Подбор аналогов продукции по характеристикам

Веб-программирование
16 просмотров
07.07.2025
Рисунок1.jpg

Моя роль: Full-Stack Developer / Архитектор бизнес-логики
Технологии: Laravel 11, PHP 8.2, PostgreSQL, Redis.

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


Проблемы

  • Один и тот же параметр мог называться по-разному: Длина, Length, Размер (Д)

  • Значения были в произвольной форме: до 10 м, 10m, около 10.0

  • Форматы файлов — Excel и CSV от разных поставщиков

Необходима была гибкость и масштабируемость, так как источников — десятки

Что было сделано

  • Разработал структуру маппинга между характеристиками разных компаний

  • Создал таблицы соответствий параметров и значений (с поддержкой синонимов, диапазонов, единиц измерения)

  • Написал парсер Excel/CSV, который:

    • Автоматически определяет, где идут параметры и значения

    • Преобразует их в нормализованный JSON-формат

  • Реализовал в Laravel:

    • Сравнение параметров на основе маппинга

    • Обработка чисел через регулярные выражения

    • Учет допустимых отклонений по числовым значениям

  • Вывел формулу:

  • Ввел Redis для кеширования результатов сопоставлений

  • Учет больших объёмов (десятки тысяч товаров)

Система работает за <200 мс на выборке из 10 000+ товаров

Результат

  • Визуальное отображение оригинального товара и его аналогов с рейтингом соответствия

  • Гибкость под любого поставщика — добавляется только маппинг

  • Ускорение ручной работы в 10 раз+

  • Основа для дальнейшей интеграции с AI (например, автоматическое извлечение чисел и единиц с помощью LLM)