Формат публикации диктует лаконичность: здесь нет места пространным рассуждениям о погоде или настроении. Постараюсь максимально содержательно и без избыточного кода поведать о тех терниях и открытиях, что сопровождали нас в процессе создания «синтетического продавца». Надеюсь, наш опыт убережет последователей от досадных ошибок и поможет сократить путь к цели по уже проторенной тропе.
Замысел этот созрел во время вечернего отдыха в баре, под бокал чешского полутемного и сытное вепрево колено. Когда первая волна усталости уже схлынула, а разум еще сохранял бодрость, мы с приятелем пустились в мечтательные рассуждения:
— Было бы славно, если бы ИИ не просто автоматизировал наш код, выполняя привычную работу, но и самостоятельно генерировал прибыль, аккуратно пополняя банковский счет.
— Определенно! А бытовую рутину и прочие мирские заботы мы пока берем на себя.
— Тем более, что под натиском LLM-моделей за полгода ряды джуниоров и мидлов изрядно поредели. Того и гляди, через год-другой они доберутся и до нас, архитекторов.
— Решили создать этаких цифровых умельцев, способных торговать чем угодно, предоставляя экспертные консультации, сравнивая характеристики и предлагая дополнительные бонусы.
— Да, а когда плоды наших трудов станут очевидны, нас признают инноваторами мирового масштаба, — не удержался я, прихлебнув пива.
На следующий день мы приступили к реализации нашего амбициозного плана. Для «полевых испытаний» выбрали нишу товаров для животных, просто ткнув наугад в категорию на маркетплейсе. Так определился наш первый полигон.
— Вот и определился наш «подопытный»! — воскликнул мой товарищ, словно вскрыл удачный прикуп.
Не откладывая дело в долгий ящик, мы собрали данные о товарах в JSON с помощью Puppeteer, взяли модель среднего веса (llama-3.3-70b) и набросали базовый сценарий взаимодействия. Для простоты общения интегрировали телеграм-бота. Развернули всё на сервере и замерли в ожидании.
Втайне мы надеялись на немедленный триумф, но первые тесты показали: как собеседник для праздных разговоров бот вполне состоятелен, но как продавец — абсолютный профан. Приуныв, мы разошлись обдумывать стратегию превращения ИИ в эффективного коммерсанта. Стало очевидно: модель должна досконально знать ассортимент, уметь подбирать позиции по запросу, сравнивать их и понимать такие категории, как цвет, размер и прочие параметры. Потянулись дни экспериментов, восторгов и разочарований. Постепенно оформились две ключевые задачи: интеллектуальный поиск и ведение связного диалога.
В реализации поиска мы перебрали множество вариантов. Здесь я позволю себе небольшое техническое отступление:
Скрытый текст
doc = """
Алгоритм товарного поиска:
Запрос пользователя конвертируется в эмбеддинг через SentenceTransformer.
Вектор ищется в FAISS-индексе (метод index.search).
Система извлекает top-k наиболее релевантных позиций по векторному сходству.
На основе ID формируется текстовый контекст (наименование, стоимость, артикул).
Процесс принятия решения:
При дефиците данных о питомце (порода, габариты, возраст) бот переходит в статус ASK_PET_INFO для уточнения.
При успешном поиске → статус AWAIT_ACTION (ожидание согласия на демонстрацию витрины).
При подтверждении → запуск WebApp с отфильтрованным ассортиментом.
Генерация ответа:
LLM (llama-3.3-70b) формирует реплику строго на базе найденного контекста.
Логика:
История и статусы логируются в SQLite.
Связка FSM + SQLite управляет диалогом, а LLM отвечает за финальную коммуникацию.
"""
Первые результаты были неуклюжими. Мы пытались «очеловечить» поисковые алгоритмы нашего синтетического сотрудника, внедряя flow search, гибридный поиск (HybridRetriever), каскадные стратегии и тысячи строк кода. Но он продолжал проявлять «цифровую тупость». Например, на вопрос:
-
Есть ли у вас спальное место для таксы?
-
Он отвечал: «В наличии товары для кошек и собак. Кроваток нет». При этом в базе числились десятки лежанок для мелких пород. Но бот их в упор не видел.
Таких примеров отсутствия логики было множество. Когда уныние стало брать верх, я обратился за советом к старому знакомому — PhD в области когнитивистики, работающему над механизмами синтеза сознания. Его специализация — изучение работы мозга и поведения. Я обрисовал ситуацию, описал наши методы и фиаско. Мой визави воодушевился и заявил, что решение лежит на поверхности. Весь его длинный спич сводился к одному: необходимо максимально имитировать человеческие когнитивные процессы на каждом этапе общения.
-
Интерпретация смысла
-
Семантический поиск
-
Принятие решения
-
Формирование отклика
С новыми силами мы взялись за реализацию. Я представил наш проект как солидную торговую лавку начала XX века где-нибудь в Нижнем Новгороде. У входа гостя «обнюхивает» paraphrase‑multilingual‑MiniLM‑L12‑v2. Услужливый приказчик (qwen‑2.5-72b) с безупречной укладкой встречает клиента дежурным вопросом:
— Чего изволите? — попутно раздавая указания шустрому помощнику (llama3.1‑8b), снующему между стеллажами. А в глубине кабинета слышится солидное похрапывание владельца заведения (Claude 3.5 Sonnet), купца второй гильдии. Чтобы проверить систему на прочность, я задал ей абсурдный вопрос о «квантовом ондулянсионе с коммутирующими наблюдаемыми».
Можно долго описывать технические нюансы, процессы дообучения и тестирования, но я просто приведу ответ нашего «приказчика» после краткого совещания с «хозяином»:
— Похоже, сударь, вы ищете нечто за пределами реальности. Ваш запрос звучит как технология из далекого будущего. Возможно, вас интересует что-то более приземленное из товаров для животных?
— Тогда мне нужен поводок и шлейка для большой белой акулы. — Этим вопросом я вывел скоринг троллинга на максимум. Купец меня проигнорировал, приказчик деликатно устранился, и остался лишь юркий помощник. Теперь мой шанс — стать реальным покупателем, чтобы снова привлечь внимание «старших» моделей. Они остаются в лавке 24/7, постоянно тренируясь: анализируют конкурентов, изучают отзывы, формируют экспертное мнение о торговле, чтобы со временем давать владельцу дельные советы по стратегии бизнеса. Особенно преуспела эта компания в продаже электроники и чая.
На этом первая часть повествования подходит к концу. Если тема найдет отклик, я расскажу, как мы добавили этой компании «голос» через Whisper (STT) и F5-TTS, и как они категорически отказались работать в сфере «взрослых» услуг. Или о том, какие выводы сделал ИИ, проанализировав записи реальных звонков интернет-магазина за полгода. У меня таких историй в запасе немало.
Чуть не забыл: для желающих оценить результат — вот демонстрационный бот по продаже зоотоваров: @mrkranch_ai_bot.
Только учтите, что в демо-режиме действуют суточные лимиты на токены.
При написании этой статьи автор ни разу не обращался к ИИ. В определенных кругах использование шаблонных фраз вроде «коротко и по делу» считается дурным тоном. Хотя синтетический контент развивается так быстро, что вскоре он станет качественнее любого «натурального» текста.
Прага — Нью-Йорк


