Что получилось на практике с модулем AI

Articles
  • Агент и модуль AI в BAS

    Если удобнее смотреть, всё это есть у меня в видео на ютюбе: профиль стима с 2:08:56, ну и проект AI Room с 2:17:36

    Все материалы к ролику лежат у меня в тг-канале, залетайте: t.me/mustangbas

    План

    1. Профиль стима через запрос в чат
    2. Проект AI Room
    3. Вывод

    Профиль стима через запрос в чат

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

    • заполнял весь профиль, страну ставил США
    • ну и генерил имя профиля, настоящее имя и описание через запрос в чат из модуля AI

    То есть раньше бот трогал в профиле, по сути, одну аватарку. Теперь он должен был заполнять профиль стима уже полностью, со всеми полями

    Что бот делает в профиле стима: что было в проекте авторизации и что агент дописал с модулем AI

    Короче, агент вынес всё это в отдельную функцию FillSteamProfile. Внутри неё три запроса в чат идут по очереди:

    1. Имя профиля, то есть ник, который видят другие
    2. Настоящее имя
    3. Описание профиля

    Каждый ответ модели бот сразу вставляет в нужное поле. Страну, регион и город он ставит уже обычными действиями, без модели

    Промты к этим запросам агент, кстати, тоже написал сам. Для описания, например, попросил короткий текст на английском в 2 или 3 предложения, до 280 символов, без эмодзи и хештегов, ну и только само описание без всяких вступлений

    Когда агент всё доделал, я запустил проект, и профиль реально заполнился полностью. Так что задачу он выполнил, я считаю, на все 100%

    Регион, город и Custom URL агент, кстати, докинул уже от себя, я просил только страну

    Профиль после запуска: страну я просил, регион и город агент добавил сам, ниже описание от модели

    Проект AI Room

    Тут я хотел задействовать все действия модуля в одной системе. Есть сайт с чат-комнатами, и у бота два режима:

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

    Действия модуля я сначала настраивал руками и только потом отдавал логику агенту. Если ни разу самому это не настроить, непонятно, какие тут вообще пределы и как потом нормальный промт агенту составлять

    Два режима AI Room: где работает модуль AI и где обычная логика проекта, которую написал агент

    Первый режим по задумке работает цепочкой:

    1. Запрос в чат в режиме Continue chat придумывает какую-то бытовую тему и пишет по ней три сообщения
    2. Второй запрос в том же чате пишет, по сути, текст для голосового по той же теме
    3. Модель озвучки превращает этот текст в голосовое
    4. Бот создаёт комнату и отправляет туда сообщения и голосовое

    Моделей тут понадобилось две: текстовая и модель озвучки, её я нашёл в OpenRouter по тегу Speech

    Тут я накосячил: оба запроса писали ответ в одну переменную, и текст для голосового затёр реплики. Переименовал переменную, и всё заработало

    С озвучкой через модуль не вышло, ответ пришёл пустой. Модель ждёт запрос в другом виде и отдаёт аудио через другой API, ну и нужных параметров модуль в запрос не передаёт. Так что эту часть я отдал агенту, и минут через 10 он сделал отдельный HTTP-запрос, после которого в папке появился MP3

    Кусок функции озвучки, которую написал агент: если запрос прошёл, аудио из base64 записывается в MP3

    Для второго режима сначала надо достать переписку, это как раз извлечение данных из браузера. Вернулся, по сути, массив объектов, у каждого сообщения автор, текст, время и направление. Голосовое пропущено, как я и просил

    Что вернуло извлечение: автор, текст, время и направление каждого сообщения, голосовое пропущено

    Тип я тогда поставил string_list. По коду массив объектов он уже не пропустит, так что под такую переписку нужен object_list

    Дальше переписка уходит в запрос в чат, и модель отвечает человеку по смыслу. Сначала я вставил в промт не ту переменную, и модель просила прислать ей историю. С правильной переменной ответ пришёл осмысленный: человек писал про кофе в новом месте, и модель спросила, ну как ему этот кофе

    Обычным способом пришлось бы заранее заготовить сотку диалогов. Тут по факту два действия, и всё бесплатно

    Реакцию ставит задача в браузере, логику кликов вокруг неё, кстати, написал агент. Он передаёт в задачу одно случайное сообщение собеседника, и модель выбирает под него эмодзи

    На первом общем запуске сайт выкинул из аккаунта, и поток упал. Агент чинил это где-то полтора часа, и со второго раза всё отработало: комната с тремя сообщениями и голосовым на 14 секунд, плюс ответ из второго режима

    Итог: три сообщения и голосовое на 14 секунд, ниже ответ из второго режима

    Последним шагом задача в браузере нашла реакцию по слову coffee, это прям подходит под тему разговора

    Задача в браузере ищет реакцию по слову coffee

    Вывод

    В целом модуль мне, честно, понравился. В AI Room я задействовал все его действия и две модели, одну на текст, вторую на озвучку, и всё это бесплатно. Получился реально живой диалог. Если бы мне скинули ссылку на такую комнату, я бы честно не отличил, писала это нейронка или живой человек

    Не хватило мне, по сути, одного: аудио через модуль не получить, его пришлось генерить отдельным HTTP-запросом. В любом случае у модуля, я считаю, есть будущее

    Годится он под узкие задачи, где всё динамическое и алгоритм просто так не прописать. По тому, что я на нём делал, это, например:

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

    Вот вокруг таких мест автоматизацию на модуле AI и можно строить