[Free] Как настроить модуль AI в BAS + подключить бесплатную модель

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

    Если удобнее смотреть, всё это есть у меня в видео на ютюбе: настройка модуля AI с 1:49:37, ну и OpenRouter с 2:03:00

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

    План

    1. Что умеет модуль AI
    2. Настройка модуля
      • Три основных поля
      • Дополнительные настройки
      • Капча и SMS
    3. Действие запрос в чат
    4. Действие задача в браузере
    5. Действие извлечение данных из браузера
    6. Как подключить бесплатную модель через OpenRouter
    7. Вывод

    Что умеет модуль AI

    Агент пишет логику проекта. Модуль AI работает с внешней моделью прямо во время запуска, и, если коротко, на практике он может, в целом, вот что:

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

    Ну и всё это делается четырьмя действиями:

    1. Настройка: провайдер, модель и токен. Она всегда идёт первой в проекте, без неё остальные действия по коду просто остановятся с ошибкой
    2. Запрос в чат: отправить модели текстовый промт и получить в ответ текст
    3. Задача в браузере: дать модели задачу, чтобы она сама её прям в браузере сделала
    4. Извлечение данных из браузера: достать со страницы какую-то инфу

    Как работает модуль AI: проект доходит до действия, модуль отправляет промт и данные модели, BAS выполняет её ответы, итог сохраняется в переменную

    По подсказке в BAS настройка действует в своём потоке, так что у каждого потока может быть свой провайдер, модель и токен. Если вызвать её ещё раз посреди скрипта, она переключит провайдера или модель

    Настройка модуля

    Три основных поля

    • AI provider: сервис, через который идёт обращение к моделям. Там можно, в целом, подключить что угодно, начиная от локальной машины и заканчивая Anthropic
    • Token: API-ключ этого сервиса
    • Model: сама модель. Список показывает только популярные модели, так что если нужной там нет, её просто вписываем руками

    Настройка модуля AI: провайдер, токен и модель, ниже дополнительные настройки

    Дополнительные настройки

    • Endpoint: свой адрес API, например локальной LLM. Ну или провайдера, которого в списке нет, с API как у OpenAI
    • Temperature: около 0 ответы строгие и похожие, ближе к 1 они уже, по сути, разные и творческие
    • Max tokens: максимальный размер ответа, я его вообще не трогаю
    • Thinking: уровень размышления. low для простых задачек, high для тяжёлых, ну и auto стоит изначально
    • System prompt: постоянная инструкция для модели, типа всегда писать на русском. По подсказке он уходит только в запрос в чат
    • Extra headers: служебные HTTP-заголовки, мне они вообще не понадобились

    Капча и SMS

    Тут выбирается сервис капчи (RuCaptcha, 2Captcha, Anti-Captcha) и сервис SMS, ключ и страна номера. Работает это, кстати, только в задаче в браузере и в извлечении данных

    Плюс в проекте должно стоять хотя бы одно действие нужного модуля, например ReCaptcha или PhoneVerification. Можно прям в функции, которая никогда не вызывается, иначе BAS не включит модуль в сборку. Сам я капчу и SMS через модуль не пробовал

    Действие запрос в чат

    Это по сути обычное общение с моделью, как в окне чата. Режимов два:

    • New chat: каждый раз с нуля
    • Continue chat: модуль отправляет сохранённую историю, и ответ продолжает разговор

    Запрос в чат: новый чат или продолжение старого, ниже переменные с ответом, историей и статусом

    Ответ падает в AI_REPLY, история в AI_CHAT_HISTORY. Ошибки лимита, оплаты или сети поток не роняют, просто AI_SUCCESS становится false, так что это лучше сразу проверять

    Действие задача в браузере

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

    Доступ к файлам у неё по уровням:

    • disable: доступа нет
    • read: только читать, стоит по умолчанию
    • write: создавать и править, удалять нельзя
    • full: плюс удаление, без отмены

    Задача в браузере: уровни доступа к файлам и поле рабочей папки

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

    Лимиты задачи в браузере: 100 шагов, 600 секунд и 3 попытки, ниже переменные с результатом

    По умолчанию у задачи 100 шагов, 10 минут и 3 попытки. Если модель сама решила, что задачу не сделать, действие проходит без ошибки, и это видно по AI_TASK_ACCOMPLISHED. Ну и если кончились шаги, время или попытки, действие просто падает с ошибкой

    Действие извлечение данных из браузера

    Это действие достаёт со страницы какую-то инфу, условно список цен или товаров. Тип ответа выбирается в поле проверки данных, там есть и строка, и число, и список, и объект

    Извлечение данных: тип, в который модуль проверяет ответ модели

    Данные падают в AI_EXTRACTER_DATA, в коде она реально так и написана. Если модель вернула не тот формат, действие останавливается с ошибкой

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

    Как подключить бесплатную модель через OpenRouter

    Почти все сервисы просят подписку или пополнение. OpenRouter это, по сути, агрегатор моделей, и там есть бесплатные модели с лимитом запросов. Подключается так:

    1. Зарегистрироваться на OpenRouter и сразу скопировать ключ, потом его уже не посмотреть

    2. Зайти во вкладку Models и в фильтре Prompt pricing поставить FREE, тогда в списке останутся, по сути, только бесплатные модели

      Фильтр цены промта на FREE: в списке остаются только бесплатные модели с ценой $0

    3. Выбрать подходящую модель. Выбирать можно по-разному, смотря под какую задачу, условно для текста есть отдельные текстовые модели

    4. На странице модели скопировать её имя, там для этого есть кнопочка рядом с ним

      Страница модели: кнопка рядом с именем копирует его для поля Model, сверху предупреждение, что промты может хранить провайдер

    5. Ну и в настройке модуля поставить провайдер openrouter, вставить имя модели и токен

    На бесплатном аккаунте лимит 50 запросов в сутки и 20 в минуту. Если закинуть 10 долларов, будет уже 1000 в день

    Бесплатная модель намного слабее передовых, и промты с ответами, как видно на странице, может хранить провайдер. Так что пароли, куки и любые секретные данные в такие промты не пишем

    Вывод

    В целом модуль мне, честно, понравился. Работает он нормально, и задачи с ним реально можно решать

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

    Для таких штук, как описания профиля, хватает даже бесплатной модели через OpenRouter, ну если не отправлять ей ничего секретного