
Если удобнее смотреть, всё это есть у меня в видео на ютюбе: настройка модуля AI с 1:49:37, ну и OpenRouter с 2:03:00
Все материалы к ролику лежат у меня в тг-канале, залетайте: t.me/mustangbas
План
- Что умеет модуль AI
- Настройка модуля
- Три основных поля
- Дополнительные настройки
- Капча и SMS
- Действие запрос в чат
- Действие задача в браузере
- Действие извлечение данных из браузера
- Как подключить бесплатную модель через OpenRouter
- Вывод
Что умеет модуль AI
Агент пишет логику проекта. Модуль AI работает с внешней моделью прямо во время запуска, и, если коротко, на практике он может, в целом, вот что:
- генерить тексты прямо во время работы скрипта, типа имени и описания профиля или ответа клиенту, который может написать что угодно
- вести переписку с продолжением истории, то есть модель помнит прошлые сообщения этого чата
- принимать файлы вместе с промтом и сохранять файлы из ответа в папку скрипта
- сам кликать по сайту там, где алгоритм заранее не написать, ну и по ходу решать капчу, принимать SMS и коды 2FA через подключённые сервисы
- читать и писать файлы в рабочей папке, ну если ему это, конечно, разрешить
- вытаскивать со страницы данные сразу в нужном виде, по сути: строкой, числом, списком или объектом
Ну и всё это делается четырьмя действиями:
- Настройка: провайдер, модель и токен. Она всегда идёт первой в проекте, без неё остальные действия по коду просто остановятся с ошибкой
- Запрос в чат: отправить модели текстовый промт и получить в ответ текст
- Задача в браузере: дать модели задачу, чтобы она сама её прям в браузере сделала
- Извлечение данных из браузера: достать со страницы какую-то инфу

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

Дополнительные настройки
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 шагов, 10 минут и 3 попытки. Если модель сама решила, что задачу не сделать, действие проходит без ошибки, и это видно по AI_TASK_ACCOMPLISHED. Ну и если кончились шаги, время или попытки, действие просто падает с ошибкой
Действие извлечение данных из браузера
Это действие достаёт со страницы какую-то инфу, условно список цен или товаров. Тип ответа выбирается в поле проверки данных, там есть и строка, и число, и список, и объект

Данные падают в AI_EXTRACTER_DATA, в коде она реально так и написана. Если модель вернула не тот формат, действие останавливается с ошибкой
Ну и тут можно накосячить. Объект результата пишется в ту же AI_TASK_RESULT_OBJECT, что и у задачи в браузере. Если в проекте стоят оба действия, результат одного затрёт другой
Как подключить бесплатную модель через OpenRouter
Почти все сервисы просят подписку или пополнение. OpenRouter это, по сути, агрегатор моделей, и там есть бесплатные модели с лимитом запросов. Подключается так:
-
Зарегистрироваться на OpenRouter и сразу скопировать ключ, потом его уже не посмотреть
-
Зайти во вкладку Models и в фильтре Prompt pricing поставить FREE, тогда в списке останутся, по сути, только бесплатные модели

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

-
Ну и в настройке модуля поставить провайдер openrouter, вставить имя модели и токен
На бесплатном аккаунте лимит 50 запросов в сутки и 20 в минуту. Если закинуть 10 долларов, будет уже 1000 в день
Бесплатная модель намного слабее передовых, и промты с ответами, как видно на странице, может хранить провайдер. Так что пароли, куки и любые секретные данные в такие промты не пишем
Вывод
В целом модуль мне, честно, понравился. Работает он нормально, и задачи с ним реально можно решать
Модуль AI, как по мне, штука для узких задач. Он нужен там, где модели надо именно подумать, типа ответить клиенту, который может написать что угодно
Для таких штук, как описания профиля, хватает даже бесплатной модели через OpenRouter, ну если не отправлять ей ничего секретного