LLM API и интеграция

Нейросеть для оптовой торговли: заявки от розницы

Нейросеть для оптовой торговли: заявки от розницы

Оптовику языковая модель закрывает вход: она разбирает заявку от розницы из почты или мессенджера на позиции и количества и сопоставляет чужие наименования с вашими артикулами, помечая каждое неуверенное совпадение. Три тысячи заявок в месяц — это около 7,4 миллиона токенов, то есть десятки рублей на недорогих позициях каталога из 56 моделей. Остатки, цену со скидкой конкретному клиенту и срок отгрузки она при этом не подставляет: это данные учётной системы, и ошибка здесь не опечатка, а сорванная поставка.

Ниже — почему заявка от розницы приходит не на вашем языке, как устроено сопоставление с артикулом, почему пометка неуверенности важнее самого совпадения, что можно отвечать про отгрузку, расчёт месяца для оптовика и порядок запуска на одной товарной группе.

Почему заявка от розницы приходит не на вашем языке

Ответ: потому что у клиента своя номенклатура, и переводить с неё на вашу — ваша работа, а не его.

Заявка приходит в одном из трёх видов. Первый — письмо прозой: «нужно масло моторное синтетика 5w40 четыре литра, штук двадцать, и фильтров к нему». Второй — чужой прайс в Excel, выгруженный из чужой учётной системы, со своими колонками и своими кодами. Третий — сообщение в мессенджере списком, без единиц и без уточнений.

Во всех трёх случаях менеджер делает одно и то же: ищет каждую строку в своём справочнике, уточняет фасовку, проверяет кратность упаковки и переносит в заказ. На заявке в тридцать позиций это сорок минут, и половина времени уходит на четыре строки, которые не находятся.

Это и есть задача. Она отличается от нейросети для закупок стороной сделки: там вы покупаете и сводите чужие предложения, чтобы выбрать поставщика. Здесь вы продаёте, и чужой текст надо привести к своей номенклатуре и своему прайсу.

Как сопоставить чужое наименование со своим артикулом

Ответ: в два шага, и первый шаг делает не модель.

Шаг первый — поиск кандидатов. По каждой строке заявки из вашего справочника достаются несколько похожих позиций. Это задача поиска, а не генерации: ищет она по вашей базе, а не по памяти. Как устроен такой поиск с векторами и переранжированием, разобрано в материале про эмбеддинги и rerank; переранжирование в каталоге появилось отдельной позицией.

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

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

Дальше — пометка. Каждому сопоставлению присваивается один из трёх статусов.

СтатусКогда ставитсяЧто дальше
Точноесовпали бренд, артикул и фасовкав заказ без проверки
Неуверенноесовпал товар, отличается фасовка или брендменеджер подтверждает
Не сопоставленоподходящих кандидатов нетотдельный список, ручная работа

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

Третья строка полезна и сама по себе. Позиции, которые не сопоставились ни у одного клиента за квартал, — это или дыра в справочнике синонимов, или спрос на то, чего вы не возите.

Как разобрать заявку из почты и мессенджера

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

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

Два условия. Первое: ответ возвращается строгой структурой, а не пересказом, — как это задаётся, в материале про строгий формат JSON. Второе: рядом с каждой строкой хранится фрагмент исходного письма. Без него проверка разбора дороже ручного ввода.

Отдельный случай — заявка чужим прайсом. Такой файл почти всегда содержит позиции, которых у вас нет вовсе, и позиции с другой фасовкой. Работать с ним построчно и медленно выгоднее, чем пытаться обработать целиком: длинная цепочка в одном ответе прячет ошибки первого шага внутри последнего. Поток входящих писем в целом разобран в материале про нейросеть для почты.

Черновик коммерческого предложения по своему прайсу

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

Модель собирает черновик из разобранной заявки и сопоставленных артикулов: формулирует позиции, раскладывает по группам, пишет сопроводительный текст. Цены и остатки в него подставляются из учётной системы по коду клиента, а не берутся из ответа модели. Как связать её с учётным контуром, разобрано в материале про нейросеть для 1С, а сам жанр документа — в материале про коммерческое предложение.

Отправляет человек. КП — оферта по смыслу и обязательство по восприятию клиента, и автоотправка здесь экономит минуты, а стоит поставки.

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

Ответ: потому что ошибка в этих трёх числах — не опечатка, а сорванная поставка.

Остаток меняется несколько раз в день: пока заявка обрабатывается, паллету отгрузили другому клиенту. Цена для розничной точки зависит от договора, объёма, категории клиента и текущих условий — это данные системы, а не текста. Срок отгрузки зависит от загрузки склада и графика машин.

Последствия у ошибки несимметричные. Розница планирует завоз под ваш ответ: ставит товар в матрицу, готовит место на полке, отменяет закупку у другого поставщика. Когда выясняется, что позиции нет, теряется не сделка, а отношения — и следующую заявку отправят не вам.

Граница проходит по источнику числа, а не по теме разговора. Про отгрузку, минимальную партию и кратность говорить можно: это ваши правила, они записаны. Называть остаток, цену и дату нельзя, пока они не пришли из системы. Смежный разбор — логистика и склад, где сроки и маршруты считает тоже не модель.

Что можно отвечать об условиях отгрузки

Ответ: всё, что вы уже написали в договоре и прайс-листе.

Минимальная партия и кратность упаковки. Порядок отгрузки самовывозом и транспортной компанией. Кто оплачивает доставку и с какой суммы она бесплатна. Какие документы едут с грузом и в каком виде. Порядок возврата и приёмки по количеству. Условия отсрочки как процедура — без применения к конкретному клиенту.

Это регламент, он одинаков для всех и меняется редко. Каркас запроса с ролью, стоп-списком и обязательной ссылкой на пункт пишется один раз, как — в материале про системный промпт.

Классификация причин отказа

Самый дешёвый сценарий и самый недооценённый.

Отказ от заявки в опте фиксируется редко и невнятно: «не согласовали». А в переписке причина обычно написана словами: не было половины позиций, не устроила кратность, дороже чем у другого поставщика, не готовы к отсрочке, долго везти.

Модель читает переписку по закрытой заявке и присваивает причину по вашему справочнику, с обязательной корзиной «не определено». Задача чисто классификационная — механика в материале про классификацию текстов.

Через квартал распределение отвечает на вопрос, который иначе решается интуицией: теряете вы на ассортименте, на цене или на условиях. Это три разных вывода и три разных решения.

Сколько это стоит оптовику в месяц

Ставка у нас одинаковая на вход и на выход, поэтому цена считается умножением ставки на объём в миллионах токенов. Сценарий — оптовик с тремя тысячами заявок в месяц.

ОперацияВ месяцТокенов за разВсего токеновЦена, ₽
Разбор заявки на позиции3 0001 1003 300 000ставка × 3,3
Сопоставление строк с артикулами3 0006001 800 000ставка × 1,8
Черновик КП8001 4001 120 000ставка × 1,12
Ответ об условиях отгрузки1 200800960 000ставка × 0,96
Разметка причины отказа400550220 000ставка × 0,22
Итого за месяц7 400 000ставка × 7,4

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

Какую позицию каталога брать

Опту нужна не самая умная модель, а устойчивый строгий формат на большом потоке коротких задач. Ключ KeyDealer открывает весь каталог сразу — на 20 сентября 2026 года это 56 позиций, 43 доступны, оплата российской картой в рублях, без зарубежного счёта и без VPN. Месяц обработки трёх тысяч заявок стоит дешевле одной сорванной отгрузки.

ПозицияСтавка, ₽ за 1 млн
gpt-oss-20b0
deepseek-v4-flash1
deepseek-v4-pro2
qwen-3-6-flash3
gemini-3-flash6

Сопоставление артикулов и разметку отказов держите на самой дешёвой строке: задачи короткие и повторяющиеся. Черновики КП имеет смысл поднять на позицию подороже — там важнее связный русский текст. Разбор изображений у дешёвых строк помечен как unknown, то есть «не проверяли»: читать фотографию накладной на них не стоит.

Как запустить на одной товарной группе

  1. Возьмите одну группу, где больше всего разнобоя в названиях. Обычно это расходники: у каждого клиента своё наименование одного и того же.
  2. Приведите справочник в порядок до запуска. Сопоставлять не с чем, если у вас самих одна позиция заведена трижды.
  3. Начните с разбора, а не с ответов клиенту. Две недели модель только раскладывает заявки, менеджер работает как обычно.
  4. Считайте два показателя: долю строк со статусом «точное» и долю подтверждённых менеджером «неуверенных». Второй показатель важнее: он показывает, можно ли доверять пометке.
  5. Список несопоставленного разбирайте раз в неделю. Это одновременно доработка справочника синонимов и данные о спросе.

Чего мы не утверждаем

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

Мы не заменяем учётную систему. Остатки, цены, резервы, сроки и документы остаются в ней. Без связи с ней разбор заявок остаётся полезным черновиком и не более.

В каталоге нет распознавания речи. Расшифровать заявку, надиктованную в голосовом сообщении, нечем: есть текст, изображения и переранжирование, синтеза и распознавания речи нет.

Что нужно, чтобы попробовать

Ключ заводится за минуту на keydealer.ru/login — почта и пароль, без документов и без зарубежной карты. Оплата российской картой в рублях, один ключ на весь каталог: на 20 сентября 2026 года это 56 позиций, 43 доступны, 45 текстовых с рублёвой ставкой, 11 рисуют изображения, плюс переранжирование.

Платные текстовые позиции работают сразу на приветственном бонусе — двух недель разбора заявок хватит без пополнения. Пять бесплатных текстовых позиций открываются после первого платного пополнения и дальше не тарифицируются: на сопоставлении строк это разумная основа.

Две позиции, gemini-3-6-flash и fable-5, сейчас в проверке — ставить на них поток заявок не стоит. Скидки за кэш промптов мы не обещаем: кэширование помечено как неподдерживаемое, и список кандидатов в каждом запросе оплачивается целиком.

Что держать в голове

Первое. В опте узкое место не в переговорах, а в переводе с чужой номенклатуры на свою. Эта работа повторяется на каждой заявке, не требует опыта продаж и отлично машинная — при условии, что модель выбирает из вашего справочника, а не сочиняет.

Второе. Пометка неуверенности — это и есть продукт. Сопоставление без неё выглядит убедительнее и стоит дороже: проверять придётся всё, а доверять нельзя ничему.

Третье. Три числа остаются за системой всегда: остаток, цена клиента, дата отгрузки. Ошибка в них ломает не сделку, а планы розницы на следующий месяц. Как мы проверяем факты и что храним из запросов — на странице о проекте, ключ заводится на keydealer.ru/login.

Частые вопросы

Может ли модель подставить остаток и срок отгрузки в ответ клиенту?

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

Как модель сопоставляет чужое наименование с нашим артикулом?

Сначала поиск кандидатов по вашему справочнику, потом выбор из них с объяснением. Модель не придумывает артикул из головы, а выбирает из найденного и обязана поставить пометку неуверенности там, где совпадение неточное. Без пометок результат непригоден — проверять придётся всё подряд.

Чем это отличается от нейросети для закупок?

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

Можно ли поручить модели скидку конкретному клиенту?

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

Что делать с заявкой, присланной чужим прайсом в Excel?

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

Сколько это стоит оптовику в месяц?

Три тысячи заявок, восемьсот черновиков КП, тысяча двести ответов об условиях отгрузки и четыреста разметок отказов дают около 7,4 млн токенов. На недорогих позициях каталога это десятки рублей за месяц.

Источники