Векторный поиск в 1С без облаков: локальный AI-сервис для прайсов поставщиков

14.01.26

Задачи пользователя - Поиск данных

Практический кейс исследовательской разработки (R&D) с использованием искусственного интеллекта и нейросетей в 1С для поиска по прайсам поставщиков. Рассматривается гибридный поиск (Hybrid Search: векторный + полнотекстовый), позволяющий находить товары по смыслу, а не по буквам — даже при сленге, опечатках и разном написании. Решение работает полностью локально, без облаков, и интегрируется с 1С.

Как найти нужный товар за 0.1 секунды среди миллионов позиций поставщиков, когда у всех разные названия, артикулы и сокращения? Кейс интеграции локального AI (Hybrid Search) в 1С для мгновенного поиска по “сырым” прайс-листам.

Классическая ситуация в отделе продаж: звонит клиент и спрашивает условный “Перфоратор Бош на аккумуляторе, желтый”.

Менеджер открывает 1С, смотрит остатки — нет в наличии. Что происходит дальше в 90% компаний?

  1. Менеджер говорит: “Нет в наличии”. Компания теряет деньги.

  2. Менеджер начинает судорожно открывать 10-20 прайс-листов поставщиков в Excel, нажимать Ctrl+F и перебирать варианты: “Bosch”, “Бош”, “Перф. аккум”, “GBH”… Это долго, неудобно, и клиент часто уходит, не дождавшись.

Для решения этой проблемы был выбран принципиально иной подход. Вместо попыток “нормализовать” и загружать в справочник Номенклатуры весь массив данных из прайсов (забивая базу), разработан умный поисковый движок, который работает поверх этих файлов.

В этой статье рассматривается архитектура AI - Price Search — локального микросервиса для 1С, который позволяет искать товары по смыслу, а не только по точному совпадению букв.

 

Главная идея: Продавай то, чего у тебя нет

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

 

Принцип работы для пользователя:

  1. В систему (через веб-интерфейс или 1С) загружаются “сырые” прайсы поставщиков (Excel/CSV). Объем данных практически не ограничен.

  2. Нейросеть “читает” их и превращает названия в векторы смыслов.

  3. Менеджер в 1С вводит запрос так, как слышит от клиента (даже на сленге): “акум для шурика бош”.

  4. Система за доли секунды выдает список: у кого из поставщиков есть этот товар, как он там называется и сколько стоит.

 

Ключевая особенность — системе всё равно, как товар назван у поставщика. В приводимом примере в запросе нет ни одного слова, которое бы совпадало с результатом по буквам!

  • Запрос: “акум для шурика бош”

  • Найдено (Топ-1): “Аккумулятор для шуруповерта BOSCH 2.0Ah 14.4V Ni-Cd”

  • Найдено (Топ-2): “Аккумулятор для шуруповерта BOSCH 1.5Ah 12V Ni-Cd”

 

Программа успешно распознает профессиональный сленг:

  • “акум”“Аккумулятор”

  • “шурик”“шуруповерт”

  • “бош” (кириллица) ≈ “BOSCH” (латиница)

 

 

Менеджер мгновенно видит лучшую цену, делает наценку и продает товар, даже не создавая его карточку в базе до момента сделки.

 

Ликбез для 1С-ника: Векторный поиск, метаданные и «склейка» полей

Многие 1С-специалисты воспринимают нейросети как некий «чёрный ящик», где результат получается непредсказуемо. На практике в прикладных задачах всё гораздо прозаичнее: нейросеть — это всего лишь способ по-другому представить строку, чтобы потом строго математически сравнивать её с другими строками.

В нашем решении используются три базовых концепции, которые легко ложатся на привычное мышление 1С-разработчика.

 

1. Гибридный вектор: смысл + точность

Для 1С строка — это последовательность символов. Запрос вида: ПОДОБНО "%Герметик%" ищет совпадение букв, но ничего не знает о смысле.

Векторный поиск работает иначе: строка преобразуется в набор чисел, которые описывают её смысловое положение в многомерном пространстве. Чтобы одновременно решать две задачи — понимать смысл запроса и не терять точные артикулы, мы используем гибридный подход (Hybrid Search), где работают две модели параллельно. С точки зрения архитектуры 1С это можно воспринимать как дополнительный поисковый индекс, который работает не по символам, а по смыслу строки.

 

Модель смысла (Dense Vector)

Компактная нейросеть преобразует наименование товара в вектор из 384 чисел. Это практичный компромисс между качеством и скоростью: такой размер позволяет работать на обычном сервере без GPU и при этом уверенно различать смысловые категории товаров.

С точки зрения 1С-ника это можно сравнить с ситуацией, когда разные строки фактически относятся к одному логическому виду номенклатуры, даже если совпадений по символам нет. Например, модель понимает, что:

  • «Смартфон Apple»

  • «Apple iPhone»

  • «Айфон 15»

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

 

Модель точности (Sparse Vector)

Вторая модель работает как страховка. Она выделяет редкие и значимые токены — артикулы, коды, уникальные обозначения брендов.

По сути, это «умный аналог полнотекстового индекса»: если в запросе есть конкретный код (GBH-2-26, 08346, 2900001871), система гарантированно поднимет именно его, а не просто «похожий по смыслу» товар.

 

Как происходит поиск (без магии)

Ключевая идея — математическая близость векторов. Упрощённо представим, как система «видит» товары:

Товар A: «Герметик санитарный» → [0.10, 0.90, ...]

Товар B: «Силикон для ванной» → [0.12, 0.88, ...]

Товар C: «Клей ПВА» → [0.80, 0.10, ...]

Теперь представим, что пользователь вводит поисковый запрос: «герметик». Этот запрос также преобразуется в вектор, например: [0.11, 0.89, ...]`.

Первые два товара находятся рядом в одном смысловом кластере («материалы для герметизации»). Третий — в совершенно другой области.

При поиске:

  1. Запрос пользователя преобразуется в векторы теми же моделями.

  2. База данных считает расстояние между векторами.

  3. Результаты сортируются с учётом:

  • смысловой близости;

  • точных совпадений по ключевым токенам.

Итог: «Силикон для ванной» окажется выше «Клея ПВА», даже если слово «герметик» в названии отсутствует.

 

2. Векторные базы данных: где это хранится

Обычные SQL-СУБД не предназначены для быстрого расчёта расстояний между тысячами или миллионами векторов. Поэтому используются два подхода:

  • Специализированные векторные БД (Qdrant, Chroma, Weaviate) — отдельные движки, оптимизированные под такие операции. В текущей реализации используется этот вариант.

  • Расширения для классических БД (например, pgvector для PostgreSQL), когда векторы хранятся рядом с обычными данными.
     

3. Payload и «склейка» полей: куда делись цены и остатки

Частый вопрос:

«Если всё превратили в цифры, как система знает цену и остаток?»

Ответ простой — векторы и данные хранятся отдельно. Каждая запись состоит из:

  • Вектора — для поиска.

  • Payload (метаданных) — исходных колонок прайса в виде JSON (цена, остаток, срок поставки, комментарии и т.д.).

При загрузке прайса:

  1. Формируется поисковый образ — склеенная строка: Наименование + Артикул + Бренд + Штрихкод.

  2. Именно она преобразуется в векторы.

  3. Все колонки сохраняются в Payload без изменений.

Когда поиск находит нужный вектор, система сразу возвращает весь Payload — без дополнительных SQL-запросов и повторного поиска.

 

Итог для 1С-специалиста

Если упростить до привычных терминов 1С:

  • Вектор — это нормализованное представление строки для поиска по смыслу.

  • Hybrid Search — сочетание семантического поиска и строгого отбора по артикулам и кодам.

  • Payload — обычные данные прайса, которые не участвуют в поиске, но всегда возвращаются в результатах.

 

Где этот подход не нужен

Важно понимать, что векторный поиск — не замена всем сценариям.

Этот подход избыточен, если:

  • номенклатура уже полностью нормализована и строго заведена;
  • поиск всегда идет по точному артикулу или штрихкоду;
  • объем данных небольшой и не меняется.

В таких случаях классический полнотекстовый поиск будет проще и дешевле.

Данный инструмент ориентирован именно на работу с «сырыми», разнородными прайсами поставщиков, где традиционные методы перестают быть эффективными.

 

Умный алгоритм ранжирования (Ranking)

Чтобы обеспечить предсказуемость работы системы в бизнес-задачах, была выстроена жесткая иерархия ранжирования (версия 2.6). Это предотвращает “галлюцинации” ИИ.

При поиске система проверяет кандидатов по 4 уровням приоритета:

  • Уровень 1: Точная фраза (Phrase Match). Если введен запрос “Айфон 15 черный”, и в прайсе есть строка, содержащая эти слова именно в таком порядке — этот товар получает безусловный приоритет.

  • Уровень 2: Все слова (Word Coverage). Если слова в прайсе перепутаны местами (“15 черный айфон”), но присутствуют все — позиция занимает второе место в выдаче.

  • Уровень 3: Точный код/Артикул. Если введен набор цифр/букв (например, 2900001871), и он найден в артикуле — товар поднимается в топ.

  • Уровень 4: Семантика (Магия AI). Если точных совпадений нет, задействуется нейросеть для поиска товаров, близких по векторному представлению. Например, по запросу “телефон яблоко” будет найден “Smartphone Apple”.

 

Технический стек

  • Backend: Python + FastAPI (обработка запросов).

  • AI Engine: PyTorch + модели E5 (для смысла) и SPLADE (для точности).

  • База данных: Qdrant (векторная БД, обеспечивающая поиск по миллионам товаров за 0.05 сек).

  • Frontend: Внешняя обработка 1С (через HTML-поле) или Web-интерфейс.
     

Примеры из жизни (Кейсы)

Система прошла тестирование на базе из 100 000+ товаров (строительные материалы, электроника, запчасти).

Кейс 1: “Менеджер не знает, как это пишется”

Запрос: колодки опель В прайсах поставщиков часто встречается разнородное написание: Opel, GM, множество лишних цифр и кодов. Результат: Алгоритм отсеивает “мусорные” коды, определяет контекст (автозапчасти) и выдает релевантный список тормозных колодок именно для Opel, игнорируя похожие слова в описании масел или фильтров.

 

 

Кейс 2: Семантический поиск и перевод (Zero-shot match)

Запрос менеджера: телефон айфон 15 желтый 256. В прайсе поставщика эта позиция заведена на английском, а слова “телефон” вообще нет: Smartphone Apple iPhone 15 256Gb Yellow.

Результат: Для обычного символьного поиска это разные товары (нет совпадений русских слов). Для нейросети это 100% смысловое попадание:

  • телефонSmartphone

  • айфон ≈ Apple iPhone

  • желтый ≈ Yellow

Менеджер находит товар мгновенно, хотя в запросе все слова отличаются от названия в базе.

 

 

Кейс 3: “Шпаклевка” или “Шпатлевка”? (Вариативность написания)

Запрос: шпаклевка (через “к”). В прайсах поставщиков этот товар может быть записан как угодно: Шпатлевка, Шпаклёвка, или даже с опечатками. Для обычного строгого поиска это разные слова.

Результат: AI-модель понимает семантическую суть продукта. По запросу с буквой “к” она уверенно находит позиции, написанные через “т” (Шпатлевка универсальная), так как векторное представление (смысл) у этих слов практически идентично. Пользователю не нужно угадывать, как именно кладовщик поставщика завел карточку товара.

 

 

Кейс 4: Гибридный запрос (Точный код + Подбор аналогов)

Часто возникает задача не просто найти конкретную деталь по артикулу, но и подобрать к ней сопутствующие товары или аналоги (cross-sell).

Запрос: 08346 амортизатор ваз 2180 Здесь 08346 — это точный артикул из прайса, а остальной текст задает контекст поиска.

Результат: Система работает комплексно.

  1. На первом месте выдается точное совпадение по артикулу (благодаря алгоритму Sparse/Keyword).

  2. Следом идут семантически близкие позиции (благодаря Dense-вектору): передние левый и правый амортизаторы на ту же модель автомобиля.

Менеджер получает возможность предложить клиенту не только одну запчасть, но и полный комплект (“в круг”).

Пример выдачи:

  1. [ТОЧНО] Амортизатор ВАЗ 2180… задний… 083463 850 ? (Искомая деталь)

  2. [93%] Амортизатор ВАЗ 2180… передний… левый…5 560 ? (Допродажа)

  3. [93%] Амортизатор ВАЗ 2180… передний… правый…5 560 ? (Допродажа)

 

 

Производительность: Нужна ли видеокарта?

Проект находится в стадии R&D, поэтому производительность отдельных этапов напрямую зависит от доступных вычислительных ресурсов.

Поиск:
После построения индекса поиск работает быстро (~0.1 сек) даже на обычном CPU. Для работы менеджеров видеокарта не требуется.

Загрузка прайсов (векторизация и индексация):
На этапе загрузки и переиндексации больших прайс-листов видеокарта даёт существенное преимущество.
Например, индексация прайса объёмом ~9 000 строк с длинными наименованиями:

  • на GPU занимает порядка 1–2 минут;
  • на CPU может занимать 10–15 минут.

Скорость напрямую зависит от длины и сложности наименований. Простые прайсы с короткими названиями обрабатываются заметно быстрее.

Вывод:
Для повседневной работы и поиска GPU не требуется.
Однако при регулярной загрузке и переиндексации крупных прайс-листов наличие видеокарты становится существенным преимуществом.

Возможным направлением дальнейшего развития является вынесение этапа векторизации в отдельный сервис с возможностью выбора между локальной и удалённой (облачной) обработкой.
 

Зачем это нужно бизнесу?

  1. Скорость ответа клиенту. Возможность ответить на запрос моментально, удерживая клиента.

  2. Расширение ассортимента. Продажа товаров со складов поставщиков происходит так же уверенно, как со собственного склада.

  3. Снижение порога входа. Новым сотрудникам не требуется учить наизусть специфические названия в базе, поиск возможен “своими словами”.
     

Интеграция с 1С: Готовое API и внешняя обработка

Несмотря на статус R&D, архитектура системы изначально строилась как API-first. Это значит, что любые функции (поиск, загрузка, управление) доступны для внешних систем, и система готова к бесшовной интеграции.

Уже сейчас разработана внешняя обработка для 1С. Она подключается к локальному сервису по REST API и выводит результаты поиска прямо в нативный интерфейс 1С Предприятие.
 

Как это выглядит сейчас:

  1. Менеджер открывает обработку в 1С.

  2. Вводит поисковый запрос.

  3. Получает таблицу с ценами и остатками поставщиков, не переключаясь в браузер или Excel.

На текущий момент в обработке реализован интерфейс Поиска. Загрузка прайсов осуществляется через веб-интерфейс, однако API для переноса функционала загрузки внутрь 1С уже полностью готов.

 

 

Заключение и вопросы к профессиональному сообществу

На данный момент проект находится в стадии активного R&D и представляет собой рабочий прототип, в рамках которого исследуется архитектурный подход к использованию локальных нейросетей, векторных баз данных и гибридного поиска. Задача работы с прайсами поставщиков используется как наглядный прикладной сценарий для проверки и оценки этого подхода.

В текущем виде реализованы:

  • загрузка прайсов в форматах Excel/CSV;
  • построение гибридного индекса (векторный + полнотекстовый поиск);
  • поиск с учетом морфологии, синонимов и смысловой близости;
  • интеграция с 1С через HTTP-сервисы.

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

Чтобы превратить текущий прототип в полноценное тиражное решение (production-ready), потребуются дополнительные ресурсы и время, поэтому дальнейшее развитие напрямую зависит от практической востребованности подхода.

В связи с этим особенно важна обратная связь от профессионального сообщества:

  1. Насколько в вашей практике актуальна задача поиска по «сырым», разнородным прайсам поставщиков?
  2. Насколько критична скорость загрузки и переиндексации прайсов при работе с большими объёмами данных?
  3. Есть ли в вашей инфраструктуре GPU, или предпочтительнее вариант с вынесением ресурсоёмких этапов (векторизации) в облачный сервис?
  4. Видите ли вы практический смысл доводить такой прототип до состояния «коробочного» решения?

Буду признателен за любые мнения, опыт и конструктивную критику в комментариях.

Вступайте в нашу телеграмм-группу Инфостарт

Искусственный интеллект AI Нейросети Умный поиск Поиск по прайсам Векторный поиск Hybrid Search Qdrant Docker Автоматизация продаж Обработка прайс-листов

См. также

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

15250 руб.

25.08.2025    37546    77    19    

89

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36600 руб.

28.08.2025    5428    2    2    

5

Поиск данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

13420 руб.

14.05.2012    166434    356    253    

587

Нейросети 1С 8.3 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Обработка подключения фотокамер Canon и Nikon к Управление торговлей 11.4 для потоковой загрузки фотографий в карточки товаров с автоматическим удалением фона

23180 руб.

24.06.2021    11456    5    7    

16

Нейросети Мастера заполнения 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ GigaChat от Сбера. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ.

5084 руб.

08.11.2023    6219    19    0    

29

Мастера заполнения Нейросети 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

Расширение для заполнения описания товара (номенклатуры) с помощью модели ИИ ChatGPT с ключевыми словами. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ. Прошло аудит на 1cfresh.com. Версия для автоматического заполнения

5000 руб.

13.03.2023    22449    51    50    

80

Нейросети Рефакторинг и качество кода Программист Бесплатно (free)

Некоторые задачи можно и нужно делегировать ИИ, а простые задачи можно отдавать бесплатным моделям. В статье коротко рассказываю про расширение roocode для vscode, инструмент openrouter и реальную задачу по рефакторингу кода.

вчера в 17:40    2343    Ibrogim    14    

27
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3211 14.01.26 14:37 Сейчас в теме
Интересно, а сколько времени будет индексироваться прайс из 1кк строк?
2. Prepod2003 318 14.01.26 14:44 Сейчас в теме
(1)
Интересно, а сколько времени будет индексироваться прайс из 1кк строк?

Если ориентироваться на текущие замеры, то порядок цифр можно прикинуть линейно.
В прототипе индексация ~9–10 тыс. строк на GPU занимает около 1–2 минут.
Это даёт примерно 6–12 тыс. строк в минуту.
Соответственно, прайс объёмом ~1 000 000 строк — это порядка 80–160 минут (1.5–3 часа) на GPU при тех же условиях.
На CPU время будет существенно больше.
Важно учитывать, что это оценка для текущего R&D-прототипа и без оптимизаций под такие объёмы (batching, параллелизм, распределение, вынос в отдельный сервис). Для промышленных объёмов архитектура индексации требует отдельной проработки.
3. starik-2005 3211 14.01.26 15:17 Сейчас в теме
(2)
Для промышленных объёмов
А количество памяти сколько примерно нужно на те же 10к строк? Правильно ли я понимаю, что на 1кк строк нужно в 100 раз больше этой памяти? Или память кушает какая-то модель, которая уже содержит вектора и по ним уже формируется векторная база, т.е. эмбеддинги, которые уже в процессе поиска сравниваются на близость и выдаются те результаты, которые близки выше порога в сумме слов?
4. Prepod2003 318 14.01.26 15:40 Сейчас в теме
(3)
А количество памяти сколько примерно нужно на те же 10к строк? Правильно ли я понимаю, что на 1кк строк нужно в 100 раз больше этой памяти? Или память кушает какая-то модель, которая уже содержит вектора и по ним уже формируется векторная база, т.е. эмбеддинги, которые уже в процессе поиска сравниваются на близость и выдаются те результаты, которые близки выше порога в сумме слов?


Архитектура системы построена на принципе потоковой обработки короткими пакетами (батчами по 32 строки). Нейросеть в каждый конкретный момент времени "видит" и обрабатывает только одну небольшую порцию данных, которая после вычисления векторов сразу записывается в базу на диск, а занятая память (как оперативная, так и видеопамять) мгновенно очищается для следующего шага. Благодаря такому циклу потребление ресурсов остается стабильным и не зависит от размера прайс-листа: программа будет использовать один и тот же объем памяти что для 10 тысяч, что для миллиона строк, а пропорционально объему данных будет расти только общее время, необходимое на их обработку.
5. Angoleiro 15.01.26 03:09 Сейчас в теме
Здравствуйте.

"При загрузке прайса:
Формируется поисковый образ — склеенная строка: Наименование + Артикул + Бренд + Штрихкод.
Именно она преобразуется в векторы."

Подскажите, в этом случае в чем ценность векторного представления артикула и штрихкода? Каким образом определяются близкие по смыслу артикулы и штрихкоды?
7. Prepod2003 318 15.01.26 11:17 Сейчас в теме
(5)
Подскажите, в этом случае в чем ценность векторного представления артикула и штрихкода? Каким образом определяются близкие по смыслу артикулы и штрихкоды?

Здравствуйте! Спасибо за вопрос, вы зрите в корень.

Действительно, искать «смысловую близость» между цифрами штрихкода (считать, что 123 похож по смыслу на 125) было бы ошибкой.
Но тут важно вспомнить, что в решении используется Гибридный поиск (Hybrid Search), где параллельно работают две разные нейросети.

Первая модель (Dense / E5) — отвечает за «смысл». Она понимает, что «Шуруповерт» ≈ «Дрель». Для артикулов она играет второстепенную роль.
Вторая модель (Sparse / SPLADE) — работает иначе. И именно она «вытягивает» поиск по артикулам.

Как это работает (Аналогия с лампочками): Представьте, что у второй модели есть панель с 30 000 лампочек (это её словарь токенов). Когда на вход поступает артикул (например, 0611253708):
Модель разбивает его на кусочки (токены).
Она зажигает соответствующие лампочки.
Самое главное: Модель анализирует контекст и понимает, что перед ней уникальный код. Поэтому она включает яркость этих лампочек на максимум (присваивает им огромный вес).

Когда вы вводите этот же артикул в поиске, у вас загораются те же самые лампочки с той же яркостью. Система видит это совпадение и мгновенно поднимает товар в Топ-1. Ей не важен «литературный смысл» цифр, ей важно совпадение этих высокозначимых токенов.

В результате программа объединяет два списка: «по смыслу» и «по точным признакам». В интерфейсе выведена специальная регулировка «Баланс: Слова ↔ Смысл» (см. скриншот):

Если сдвинуть ползунок в сторону «Смысла», система начнет предлагать более далекие, но подходящие аналоги (например, тот же товар другого бренда).
Если сдвинуть в сторону «Слов», поиск станет строгим: в выдачу попадут только те позиции, где точно присутствуют введенные артикулы или слова.

По умолчанию баланс (60%), который на практике оказался оптимальным для большинства прайсов — он находит точные артикулы, страхует от опечаток и подбирает аналоги.
Прикрепленные файлы:
6. SerVer1C 999 15.01.26 09:17 Сейчас в теме
Тема интересная. Однозначно, плюс за исследования. Но работает уж очень долго, хотя и на ГПУ. Ждём результаты дальнейшего развития и оптимизации.
Prepod2003; +1 Ответить
8. Prepod2003 318 15.01.26 11:27 Сейчас в теме
(6)
Тема интересная. Однозначно, плюс за исследования. Но работает уж очень долго, хотя и на ГПУ. Ждём результаты дальнейшего развития и оптимизации.

По поводу скорости — тут всегда вопрос баланса между качеством поиска и ресурсами. Сейчас на моей видеокарте (RTX 5060) скорость индексации составляет около 10 000 позиций за 1 минуту. Это плата за то, что система работает полностью локально и строит сразу два индекса (Dense для смысла + Sparse для артикулов), чтобы обеспечить высокую точность.
В реальных сценариях:
Малые и средние прайсы (до 50-100к строк) залетают за 5-10 минут, что вполне приемлемо для работы менеджера «здесь и сейчас».
Огромные прайсы (миллион строк и более) действительно могут обрабатываться 1.5–3 часа. Но такие объемы и не нужно грузить в разгар рабочего дня. Это классическая задача для регламентного задания: поставили на ночь — утром у менеджеров свежая база поиска.
В рамках дальнейшей оптимизации (если речь пойдет о десятках миллионов позиций) архитектура позволяет вынести «тяжелый» блок векторизации на отдельный мощный сервер (или в облако), оставив пользователю только быстрый поиск. Но пока для локального решения текущая скорость кажется разумным компромиссом.
9. pzu 38 30.01.26 14:11 Сейчас в теме
1. Тема очень актуальная! Причем не только по прайсам поставщиков. По собственному справочнику поиск тоже вызывает затруднения для не очень квалифицированного специалиста. С большим трудом пытаемся поддерживать карточки в порядке, вписывая по нескольку синонимов а также используя базу синонимов, но все равно результат поиска либо замусорен слаборелевантыми вхождениями либо не находится то что нужно. Используем полнотекстовый поиск, номенклатура - автозапчасти, причем востребован поиск не по артикулам.
2. Не очень критична, прайсы грузятся в основном ночью или рано утром, должно хватить времени на индексацию. Прайсы у нас грузятся непосредственно в 1С, в справочник номенклатуры поставщиков.
3. GPU нет. Выносить задачу векторизации наверное имеет смысл, но цена вопроса?
4. Готов купить уже сейчас.
Prepod2003; +1 Ответить
10. пользователь 30.01.26 14:38
Сообщение было скрыто модератором.
...
12. Prepod2003 318 31.01.26 08:56 Сейчас в теме
(9) prepod2003*yandex ru напишите сюда
11. CheBurator 3232 31.01.26 02:46 Сейчас в теме
ну, самое время запихнуть в облако и продавать как сервис сопоставляения.
Prepod2003; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация