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

Идейка эта зародилась у нас в час отдохновения в баре, после предварительного насыщения чешским полутемным плюс колено вепрево. Когда еще не тянет в сон, но и голодная бодрость поутихла, затянуло нас с другом в эдакую маниловщину:
- А неплохо бы было, если б ИИ не только вместо нас код писал, т.е. работу работал, но и деньги для нас зарабатывал и на карточку б аккуратно скидывал.
- Это да! А посуду помыть или прочие мирские глупости - это мы пока сами.
- Тем более, что из-за этих ЛЛМ за полгода ни одного джуниора не осталось и мидлы сильно поредели. Так глядишь и до нас, архитекторов через годик доберутся.

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

- Вот и козырь определился! – как после вскрытия прикупа воскликнул мой товарищ.
Не долго думая набили паппатиром джесон с товарами, взяли среднюю по весу модельку (llama-3.3-70b), набросали легкий сценарий общения. Для простоты, в качестве коммуникейшн тьюб, привинтили телеграм бот. Выгрузили на сервак и стали ждать.
Смутно хотели услышать типа: " Абыр. Абыр. Абырвалг!". Но потыкав в бот, позадавав разные пакостные вопросики поняли: как собеседник под пиво бот годится, как продавец - полный профан. Пригорюнились мы  и разошлись думу думать: как из ИИ продавца делать. Ясно было одно - надобно его тщательно с товаром ознакомить, чтоб подбирал товары по запросу, мог сравнить или выбрать оптимальный, понимал цвет , размер ну и прочие доступные человеческому разуму понятия. И потянулись дни проб и ошибок, восторгов и разочарований.  Со временем вырисовывались два горба у верблюда: разумный поиск и умение держать связный диалог.
В поиске мы пробовали разные варианты, здесь придется отступить от парадигмы статьи и нарисовать айтишные умности:

Скрытый текст
doc = """
Поиск товаров
Запрос пользователя преобразуется в embedding через SentenceTransformer.
Вектор запроса ищется в FAISS-индексе (index.search).
Возвращаются ближайшие товары (top-k) по векторной близости.
По найденным ID формируется текстовый context (название, цена, ID).

Принятие решения
Если не хватает данных о питомце (порода, размер, возраст) — бот переходит в состояние ASK_PET_INFO и уточняет.
Если товары найдены → состояние AWAIT_ACTION (ожидает подтверждения показать витрину).
Если подтверждение получено → открывает WebApp с отфильтрованными товарами.

Ответ пользователю генерируется LLM (llama-3.3-70b), строго на основе найденного контекста.

История и состояние сохраняются в SQLite.

Итого:
 FSM + SQLite = логика диалога,
 LLM = формирование финального ответа на основе найденных товаров.
"""

Получилось коряво, примерно как у Жванецкого про наши таблетки: срабатывают не всегда или действуют странно (надо принять вторую, чтобы забыть первую). Мы пытались очеловечить поисковый процесс нашего гуттаперчевого продавца, применяя flow search, векторный (AI) поиск, HybridRetriever, каскадную стратегию и прочие умные слова и тысячи строк кода. Но он продолжал тупиться. Например, ты его спрашиваешь:

  • Есть кроватка для таксы?

  • У нас товары для собак и котов. Кроваток нет. Но мы-то знаем, что в базе есть лежанки для маленьких собак. А он — нет. И таких примеров нечеловечности — масса. Туга и печаль понемногу стали проникать в наши ряды, и стало ясно, что без нечистой силы здесь не обойтись. Я позвонил своему однокласснику, эдакому Толстому Пацюку, PhD, MTI, работающему в Институте Краснова for Advanced Study; его специализация — изучение механизмов мозга, сознания, поведения, а также разработка методов синтеза сознания. В больших дозах его выдержать нельзя; главное во время разговора — чтобы он не выскакивал из колеи и не уходил в дебри. Я обрисовал ему задачку, в двух словах рассказал наши методы решения и плачевный результат. Мой оппонент возбудился, сказал, что это решается очень просто, и он сейчас поведает, как и куда нам двигаться. Он плавно съехал на английский, и тут Остапа понесло. Я ощущал себя овчаркой, пытающейся направлять стадо взволнованных баранов в нужном направлении, хватая зубами крайних за бока. Из всего заумного спича я понял одно — Пацюк прав: надо максимально очеловечить все стадии общения.

  1. Распознавание

  2. Поиск по смыслу

  3. Принятие решения

  4. Формирование ответа

Мы навалились с новыми силами на выполнение вроде как понятных задач. Я представил себе торговую лавку начала XX века, где‑нибудь в Нижнем Новгороде. У входа лежит Каштанка (paraphrase‑multilingual‑MiniLM‑L12‑v2), она меня обнюхала — я захожу. Услужливый приказчик (qwen‑3‑235b) с набреолиниными волосами и взглядом отъявленного пройдохи встречает меня обыденным вопросом:

— Чего изволите? — и исподтишка дает затрещину шустрому мальчонке (llama3.1‑8b), суетящемуся у нас под ногами. За прилавком виден уходящий в темноту корид��р и приоткрытая дверь кабинета. Оттуда раздается могучее похрапывание хозяина лавки (Claude Opus 4.6), купца второй гильдии, и по воскресеньям «на крылосе в глуши с дьячком он басом пел». Чтобы сразу сбить с приказчика спесь и ввести его в ступор, отвечаю:

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

Можно было бы на два–три листа описать процессы под капотом с кодом, бубном и завываниями. Рассказать про Фаину Тюнингову, само тестирование, само обучение, но я просто приведу ответ приказчика после консультации с купцом:

— Похоже, сударь, вы ищете что‑то, что не существует даже в мире фантастики. Ондулянсион с коммутирующими наблюдаемыми? Это звучит как инопланетная технология. Может быть, вы имели в виду что‑то другое из мира животных?

— Желаю поводок и шлейку для акулы. — Я знаю, что этим вопросом загнал свой скоринг троллинга до максимума, и теперь на меня купец обращать внимания не будет, а вскоре и приказчик отвернется. Останется в лавке только юркий мальчонка. У меня теперь только шанс стать реальным VIP‑покупателем, и тогда на меня обратит внимание купец. Я покинул лавку, а они остались. 24 часа, без выходных, эта ай‑я‑яй компания, пока нет покупателей, тренируется и тренируется продавать: изучают конкурентов, их товары, читают отзывы потребителей и экспертов, составляют свое мнение о товаре и о торговле. Чтобы со временем, поборов природную услужливость и робость, дать разумные советы хозяину по ведению бизнеса — от стратегии до тактики, реинвестирования, выявления приоритетных целей и фьючерсов. Особенно удачно у этой компании получилось продавать чай и электронику. Вот и сказочке конец, вернее — этой части, так как приближается лимит знаков в статье. Поежели будет ваше благоволение, можно будет поведать, как мы к этой компании Бегемота и Фагота привинтили на вход STT (Whisper), а на выход — TTS (F5‑TTS), и они у нас заговорили. И как они отказались участвовать в сервисе «Секс по телефону». Ну или, наподобие Саги о Форсайтах, как нам дали для анализа записи тел. звонков интернет‑магазина за полгода и какие выводы сделал ИИ, прогнав их по кругу через каскад моделей. У меня, как у Рудого Панька, этих историй на любой вкус.
А чуть не позабыл: на всякий случай, чтобы не помянули меня недобрым словом — вот вам демо‑бот по торговле собаче‑кошачьими причиндалами и мадаполамом: @mrkranch_ai_bot.
Хотел было и инста‑бота дать, да вовремя вспомнил, что он у вас не в чести.
И это — там, в демо, ограничение моделей по токенам на день, так что если что, не обессудьте.
Во время написания статьи не пострадало ни одно …, вернее, автор ни разу не погуглил и не обратился к ИИ. Не знаю, как у вас, а в кругах, к которым я близок, считается моветоном употребление фраз: «Коротко и по делу, максимально конкретно, без воды, или хочешь я напишу…» Хотя эти гады с такой скоростью набирают обороты, что через 2–3 их поколения не только текст, но и другие области будут реализовывать так, что синтетика будет качественнее, чем натюрель.

Прага - Нью Йорк