LLM API и интеграция
Нейросеть для оптовой торговли: заявки от розницы
Оптовику языковая модель закрывает вход: она разбирает заявку от розницы из почты или мессенджера на позиции и количества и сопоставляет чужие наименования с вашими артикулами, помечая каждое неуверенное совпадение. Три тысячи заявок в месяц — это около 7,4 миллиона токенов, то есть десятки рублей на недорогих позициях каталога из 56 моделей. Остатки, цену со скидкой конкретному клиенту и срок отгрузки она при этом не подставляет: это данные учётной системы, и ошибка здесь не опечатка, а сорванная поставка.
Ниже — почему заявка от розницы приходит не на вашем языке, как устроено сопоставление с артикулом, почему пометка неуверенности важнее самого совпадения, что можно отвечать про отгрузку, расчёт месяца для оптовика и порядок запуска на одной товарной группе.
Почему заявка от розницы приходит не на вашем языке
Ответ: потому что у клиента своя номенклатура, и переводить с неё на вашу — ваша работа, а не его.
Заявка приходит в одном из трёх видов. Первый — письмо прозой: «нужно масло моторное синтетика 5w40 четыре литра, штук двадцать, и фильтров к нему». Второй — чужой прайс в Excel, выгруженный из чужой учётной системы, со своими колонками и своими кодами. Третий — сообщение в мессенджере списком, без единиц и без уточнений.
Во всех трёх случаях менеджер делает одно и то же: ищет каждую строку в своём справочнике, уточняет фасовку, проверяет кратность упаковки и переносит в заказ. На заявке в тридцать позиций это сорок минут, и половина времени уходит на четыре строки, которые не находятся.
Это и есть задача. Она отличается от нейросети для закупок стороной сделки: там вы покупаете и сводите чужие предложения, чтобы выбрать поставщика. Здесь вы продаёте, и чужой текст надо привести к своей номенклатуре и своему прайсу.
Как сопоставить чужое наименование со своим артикулом
Ответ: в два шага, и первый шаг делает не модель.
Шаг первый — поиск кандидатов. По каждой строке заявки из вашего справочника достаются несколько похожих позиций. Это задача поиска, а не генерации: ищет она по вашей базе, а не по памяти. Как устроен такой поиск с векторами и переранжированием, разобрано в материале про эмбеддинги и rerank; переранжирование в каталоге появилось отдельной позицией.
Шаг второй — выбор из кандидатов. Модель получает строку заявки и пять-десять найденных вариантов и выбирает один, объясняя выбор: совпали бренд, объём и артикул производителя.
Ключевое ограничение: модель выбирает из найденного, а не придумывает артикул. Свободная генерация кода номенклатуры даёт правдоподобные несуществующие артикулы — обычный механизм галлюцинаций, только здесь он превращается в заказ на товар, которого у вас нет.
Дальше — пометка. Каждому сопоставлению присваивается один из трёх статусов.
| Статус | Когда ставится | Что дальше |
|---|---|---|
| Точное | совпали бренд, артикул и фасовка | в заказ без проверки |
| Неуверенное | совпал товар, отличается фасовка или бренд | менеджер подтверждает |
| Не сопоставлено | подходящих кандидатов нет | отдельный список, ручная работа |
Смысл в том, что ценность результата — во второй и третьей строке таблицы. Сводка без пометок создаёт ложное ощущение готового заказа, и проверять придётся всё подряд, то есть выигрыша нет.
Третья строка полезна и сама по себе. Позиции, которые не сопоставились ни у одного клиента за квартал, — это или дыра в справочнике синонимов, или спрос на то, чего вы не возите.
Как разобрать заявку из почты и мессенджера
Разбор отделяется от сопоставления и делается отдельным запросом. Задача узкая: вытащить строки как они написаны, с количеством и единицей, ничего не нормализуя.
Извлекается: наименование как в тексте, количество, единица, упомянутый бренд, требования к фасовке, желаемая дата, адрес доставки, контакт. Пустое поле остаётся пустым — додумывать количество по опыту нельзя.
Два условия. Первое: ответ возвращается строгой структурой, а не пересказом, — как это задаётся, в материале про строгий формат JSON. Второе: рядом с каждой строкой хранится фрагмент исходного письма. Без него проверка разбора дороже ручного ввода.
Отдельный случай — заявка чужим прайсом. Такой файл почти всегда содержит позиции, которых у вас нет вовсе, и позиции с другой фасовкой. Работать с ним построчно и медленно выгоднее, чем пытаться обработать целиком: длинная цепочка в одном ответе прячет ошибки первого шага внутри последнего. Поток входящих писем в целом разобран в материале про нейросеть для почты.
Черновик коммерческого предложения по своему прайсу
Здесь экономия прямая и понятная. КП оптовика — документ шаблонный: позиции, фасовка, условия отгрузки, срок действия предложения, реквизиты.
Модель собирает черновик из разобранной заявки и сопоставленных артикулов: формулирует позиции, раскладывает по группам, пишет сопроводительный текст. Цены и остатки в него подставляются из учётной системы по коду клиента, а не берутся из ответа модели. Как связать её с учётным контуром, разобрано в материале про нейросеть для 1С, а сам жанр документа — в материале про коммерческое предложение.
Отправляет человек. КП — оферта по смыслу и обязательство по восприятию клиента, и автоотправка здесь экономит минуты, а стоит поставки.
Почему остатки, цену клиента и срок отгрузки модель не подставляет
Ответ: потому что ошибка в этих трёх числах — не опечатка, а сорванная поставка.
Остаток меняется несколько раз в день: пока заявка обрабатывается, паллету отгрузили другому клиенту. Цена для розничной точки зависит от договора, объёма, категории клиента и текущих условий — это данные системы, а не текста. Срок отгрузки зависит от загрузки склада и графика машин.
Последствия у ошибки несимметричные. Розница планирует завоз под ваш ответ: ставит товар в матрицу, готовит место на полке, отменяет закупку у другого поставщика. Когда выясняется, что позиции нет, теряется не сделка, а отношения — и следующую заявку отправят не вам.
Граница проходит по источнику числа, а не по теме разговора. Про отгрузку, минимальную партию и кратность говорить можно: это ваши правила, они записаны. Называть остаток, цену и дату нельзя, пока они не пришли из системы. Смежный разбор — логистика и склад, где сроки и маршруты считает тоже не модель.
Что можно отвечать об условиях отгрузки
Ответ: всё, что вы уже написали в договоре и прайс-листе.
Минимальная партия и кратность упаковки. Порядок отгрузки самовывозом и транспортной компанией. Кто оплачивает доставку и с какой суммы она бесплатна. Какие документы едут с грузом и в каком виде. Порядок возврата и приёмки по количеству. Условия отсрочки как процедура — без применения к конкретному клиенту.
Это регламент, он одинаков для всех и меняется редко. Каркас запроса с ролью, стоп-списком и обязательной ссылкой на пункт пишется один раз, как — в материале про системный промпт.
Классификация причин отказа
Самый дешёвый сценарий и самый недооценённый.
Отказ от заявки в опте фиксируется редко и невнятно: «не согласовали». А в переписке причина обычно написана словами: не было половины позиций, не устроила кратность, дороже чем у другого поставщика, не готовы к отсрочке, долго везти.
Модель читает переписку по закрытой заявке и присваивает причину по вашему справочнику, с обязательной корзиной «не определено». Задача чисто классификационная — механика в материале про классификацию текстов.
Через квартал распределение отвечает на вопрос, который иначе решается интуицией: теряете вы на ассортименте, на цене или на условиях. Это три разных вывода и три разных решения.
Сколько это стоит оптовику в месяц
Ставка у нас одинаковая на вход и на выход, поэтому цена считается умножением ставки на объём в миллионах токенов. Сценарий — оптовик с тремя тысячами заявок в месяц.
| Операция | В месяц | Токенов за раз | Всего токенов | Цена, ₽ |
|---|---|---|---|---|
| Разбор заявки на позиции | 3 000 | 1 100 | 3 300 000 | ставка × 3,3 |
| Сопоставление строк с артикулами | 3 000 | 600 | 1 800 000 | ставка × 1,8 |
| Черновик КП | 800 | 1 400 | 1 120 000 | ставка × 1,12 |
| Ответ об условиях отгрузки | 1 200 | 800 | 960 000 | ставка × 0,96 |
| Разметка причины отказа | 400 | 550 | 220 000 | ставка × 0,22 |
| Итого за месяц | — | — | 7 400 000 | ставка × 7,4 |
Строка сопоставления считается по одной позиции заявки, а не по заявке целиком — в средней заявке их полтора десятка, и объём набегает именно здесь. Пересчёт объёма в деньги — в отдельном материале.
Какую позицию каталога брать
Опту нужна не самая умная модель, а устойчивый строгий формат на большом потоке коротких задач. Ключ KeyDealer открывает весь каталог сразу — на 20 сентября 2026 года это 56 позиций, 43 доступны, оплата российской картой в рублях, без зарубежного счёта и без VPN. Месяц обработки трёх тысяч заявок стоит дешевле одной сорванной отгрузки.
| Позиция | Ставка, ₽ за 1 млн |
|---|---|
gpt-oss-20b | 0 |
deepseek-v4-flash | 1 |
deepseek-v4-pro | 2 |
qwen-3-6-flash | 3 |
gemini-3-flash | 6 |
Сопоставление артикулов и разметку отказов держите на самой дешёвой строке: задачи короткие и повторяющиеся. Черновики КП имеет смысл поднять на позицию подороже — там важнее связный русский текст. Разбор изображений у дешёвых строк помечен как unknown, то есть «не проверяли»: читать фотографию накладной на них не стоит.
Как запустить на одной товарной группе
- Возьмите одну группу, где больше всего разнобоя в названиях. Обычно это расходники: у каждого клиента своё наименование одного и того же.
- Приведите справочник в порядок до запуска. Сопоставлять не с чем, если у вас самих одна позиция заведена трижды.
- Начните с разбора, а не с ответов клиенту. Две недели модель только раскладывает заявки, менеджер работает как обычно.
- Считайте два показателя: долю строк со статусом «точное» и долю подтверждённых менеджером «неуверенных». Второй показатель важнее: он показывает, можно ли доверять пометке.
- Список несопоставленного разбирайте раз в неделю. Это одновременно доработка справочника синонимов и данные о спросе.
Чего мы не утверждаем
Мы не утверждаем, что заявку можно превратить в заказ без человека. Даже при хорошем сопоставлении остаётся список спорных строк, и он проверяется глазами.
Мы не заменяем учётную систему. Остатки, цены, резервы, сроки и документы остаются в ней. Без связи с ней разбор заявок остаётся полезным черновиком и не более.
В каталоге нет распознавания речи. Расшифровать заявку, надиктованную в голосовом сообщении, нечем: есть текст, изображения и переранжирование, синтеза и распознавания речи нет.
Что нужно, чтобы попробовать
Ключ заводится за минуту на keydealer.ru/login — почта и пароль, без документов и без зарубежной карты. Оплата российской картой в рублях, один ключ на весь каталог: на 20 сентября 2026 года это 56 позиций, 43 доступны, 45 текстовых с рублёвой ставкой, 11 рисуют изображения, плюс переранжирование.
Платные текстовые позиции работают сразу на приветственном бонусе — двух недель разбора заявок хватит без пополнения. Пять бесплатных текстовых позиций открываются после первого платного пополнения и дальше не тарифицируются: на сопоставлении строк это разумная основа.
Две позиции, gemini-3-6-flash и fable-5, сейчас в проверке — ставить на них поток заявок не стоит. Скидки за кэш промптов мы не обещаем: кэширование помечено как неподдерживаемое, и список кандидатов в каждом запросе оплачивается целиком.
Что держать в голове
Первое. В опте узкое место не в переговорах, а в переводе с чужой номенклатуры на свою. Эта работа повторяется на каждой заявке, не требует опыта продаж и отлично машинная — при условии, что модель выбирает из вашего справочника, а не сочиняет.
Второе. Пометка неуверенности — это и есть продукт. Сопоставление без неё выглядит убедительнее и стоит дороже: проверять придётся всё, а доверять нельзя ничему.
Третье. Три числа остаются за системой всегда: остаток, цена клиента, дата отгрузки. Ошибка в них ломает не сделку, а планы розницы на следующий месяц. Как мы проверяем факты и что храним из запросов — на странице о проекте, ключ заводится на keydealer.ru/login.
Частые вопросы
Может ли модель подставить остаток и срок отгрузки в ответ клиенту?
Нет, если число берётся из её текста. Остатки и сроки живут в учётной системе и меняются несколько раз в день. Ошибка здесь не опечатка, а сорванная поставка: розница спланировала завоз, а товара нет. Если остаток подставляется в ответ из системы по артикулу, отвечать можно — отвечает тогда система.
Как модель сопоставляет чужое наименование с нашим артикулом?
Сначала поиск кандидатов по вашему справочнику, потом выбор из них с объяснением. Модель не придумывает артикул из головы, а выбирает из найденного и обязана поставить пометку неуверенности там, где совпадение неточное. Без пометок результат непригоден — проверять придётся всё подряд.
Чем это отличается от нейросети для закупок?
Стороной сделки. В закупках вы покупаете и сводите чужие предложения, чтобы выбрать поставщика. В опте вы продаёте: заявка приходит к вам, и её нужно привести к своей номенклатуре и своему прайсу. Задача обратная, и набор рисков другой.
Можно ли поручить модели скидку конкретному клиенту?
Нет. Цена для клиента зависит от договора, объёма, категории и текущих условий — это данные учётной системы, а не текста. Модель собирает черновик КП по позициям, а цены в него подставляются из системы по коду клиента.
Что делать с заявкой, присланной чужим прайсом в Excel?
Разбирать построчно и не спешить. Такая заявка почти всегда содержит позиции, которых у вас нет вовсе, и позиции с другой фасовкой. Модель раскладывает файл на строки, сопоставляет что может и отдельно выводит список того, что не сопоставилось, — это и есть работа для менеджера.
Сколько это стоит оптовику в месяц?
Три тысячи заявок, восемьсот черновиков КП, тысяча двести ответов об условиях отгрузки и четыреста разметок отказов дают около 7,4 млн токенов. На недорогих позициях каталога это десятки рублей за месяц.