<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[Free] Как настроить модуль AI в BAS + подключить бесплатную модель]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/1791887717015-thumbnail-agent-ai.png" alt="Агент и модуль AI в BAS" class=" img-fluid img-markdown" /></p>
<p dir="auto">Если удобнее смотреть, всё это есть у меня в видео на ютюбе: настройка модуля AI <a href="https://youtu.be/EY2B457MBJo?t=6577" rel="nofollow ugc">с 1:49:37</a>, ну и OpenRouter <a href="https://youtu.be/EY2B457MBJo?t=7380" rel="nofollow ugc">с 2:03:00</a></p>
<p dir="auto">Все материалы к ролику лежат у меня в тг-канале, залетайте: <a href="https://t.me/mustangbas" rel="nofollow ugc">t.me/mustangbas</a></p>
<h3>План</h3>
<ol>
<li>Что умеет модуль AI</li>
<li>Настройка модуля
<ul>
<li>Три основных поля</li>
<li>Дополнительные настройки</li>
<li>Капча и SMS</li>
</ul>
</li>
<li>Действие запрос в чат</li>
<li>Действие задача в браузере</li>
<li>Действие извлечение данных из браузера</li>
<li>Как подключить бесплатную модель через OpenRouter</li>
<li>Вывод</li>
</ol>
<h3>Что умеет модуль AI</h3>
<p dir="auto">Агент пишет логику проекта. Модуль AI работает с внешней моделью прямо во время запуска, и, если коротко, на практике он может, в целом, вот что:</p>
<ul>
<li>генерить тексты прямо во время работы скрипта, типа имени и описания профиля или ответа клиенту, который может написать что угодно</li>
<li>вести переписку с продолжением истории, то есть модель помнит прошлые сообщения этого чата</li>
<li>принимать файлы вместе с промтом и сохранять файлы из ответа в папку скрипта</li>
<li>сам кликать по сайту там, где алгоритм заранее не написать, ну и по ходу решать капчу, принимать SMS и коды 2FA через подключённые сервисы</li>
<li>читать и писать файлы в рабочей папке, ну если ему это, конечно, разрешить</li>
<li>вытаскивать со страницы данные сразу в нужном виде, по сути: строкой, числом, списком или объектом</li>
</ul>
<p dir="auto">Ну и всё это делается четырьмя действиями:</p>
<ol>
<li>Настройка: провайдер, модель и токен. Она всегда идёт первой в проекте, без неё остальные действия по коду просто остановятся с ошибкой</li>
<li>Запрос в чат: отправить модели текстовый промт и получить в ответ текст</li>
<li>Задача в браузере: дать модели задачу, чтобы она сама её прям в браузере сделала</li>
<li>Извлечение данных из браузера: достать со страницы какую-то инфу</li>
</ol>
<p dir="auto"><img src="/assets/uploads/files/1791887311802-05-02-12-ai-steps-ru.png" alt="Как работает модуль AI: проект доходит до действия, модуль отправляет промт и данные модели, BAS выполняет её ответы, итог сохраняется в переменную" class=" img-fluid img-markdown" /></p>
<p dir="auto">По подсказке в BAS настройка действует в своём потоке, так что у каждого потока может быть свой провайдер, модель и токен. Если вызвать её ещё раз посреди скрипта, она переключит провайдера или модель</p>
<h3>Настройка модуля</h3>
<h4>Три основных поля</h4>
<ul>
<li><code>AI provider</code>: сервис, через который идёт обращение к моделям. Там можно, в целом, подключить что угодно, начиная от локальной машины и заканчивая Anthropic</li>
<li><code>Token</code>: API-ключ этого сервиса</li>
<li><code>Model</code>: сама модель. Список показывает только популярные модели, так что если нужной там нет, её просто вписываем руками</li>
</ul>
<p dir="auto"><img src="/assets/uploads/files/1791887327053-05-03-01-configure-clean.png" alt="Настройка модуля AI: провайдер, токен и модель, ниже дополнительные настройки" class=" img-fluid img-markdown" /></p>
<h4>Дополнительные настройки</h4>
<ul>
<li><code>Endpoint</code>: свой адрес API, например локальной LLM. Ну или провайдера, которого в списке нет, с API как у OpenAI</li>
<li><code>Temperature</code>: около 0 ответы строгие и похожие, ближе к 1 они уже, по сути, разные и творческие</li>
<li><code>Max tokens</code>: максимальный размер ответа, я его вообще не трогаю</li>
<li><code>Thinking</code>: уровень размышления. <code>low</code> для простых задачек, <code>high</code> для тяжёлых, ну и <code>auto</code> стоит изначально</li>
<li><code>System prompt</code>: постоянная инструкция для модели, типа всегда писать на русском. По подсказке он уходит только в запрос в чат</li>
<li><code>Extra headers</code>: служебные HTTP-заголовки, мне они вообще не понадобились</li>
</ul>
<h4>Капча и SMS</h4>
<p dir="auto">Тут выбирается сервис капчи (RuCaptcha, 2Captcha, Anti-Captcha) и сервис SMS, ключ и страна номера. Работает это, кстати, только в задаче в браузере и в извлечении данных</p>
<p dir="auto">Плюс в проекте должно стоять хотя бы одно действие нужного модуля, например ReCaptcha или PhoneVerification. Можно прям в функции, которая никогда не вызывается, иначе BAS не включит модуль в сборку. Сам я капчу и SMS через модуль не пробовал</p>
<h3>Действие запрос в чат</h3>
<p dir="auto">Это по сути обычное общение с моделью, как в окне чата. Режимов два:</p>
<ul>
<li><code>New chat</code>: каждый раз с нуля</li>
<li><code>Continue chat</code>: модуль отправляет сохранённую историю, и ответ продолжает разговор</li>
</ul>
<p dir="auto"><img src="/assets/uploads/files/1791887327199-05-04-03-chat-mode-clean.png" alt="Запрос в чат: новый чат или продолжение старого, ниже переменные с ответом, историей и статусом" class=" img-fluid img-markdown" /></p>
<p dir="auto">Ответ падает в <code>AI_REPLY</code>, история в <code>AI_CHAT_HISTORY</code>. Ошибки лимита, оплаты или сети поток не роняют, просто <code>AI_SUCCESS</code> становится false, так что это лучше сразу проверять</p>
<h3>Действие задача в браузере</h3>
<p dir="auto">Тут модели ставится задача прямо в браузере: кликнуть на поле, написать текст, что-то подтвердить. Вариантов, что ей поручить, реально море</p>
<p dir="auto">Доступ к файлам у неё по уровням:</p>
<ul>
<li><code>disable</code>: доступа нет</li>
<li><code>read</code>: только читать, стоит по умолчанию</li>
<li><code>write</code>: создавать и править, удалять нельзя</li>
<li><code>full</code>: плюс удаление, без отмены</li>
</ul>
<p dir="auto"><img src="/assets/uploads/files/1791887327263-05-05-04-task-files-clean.png" alt="Задача в браузере: уровни доступа к файлам и поле рабочей папки" class=" img-fluid img-markdown" /></p>
<p dir="auto">Я бы крайне не советовал давать модели доступ ко всей файловой системе, там может просто случиться беда. Если поле рабочей папки пустое, доступ открыт везде, так что папку ставим всегда, когда модели вообще нужны файлы</p>
<p dir="auto"><img src="/assets/uploads/files/1791887500057-05-06-05-task-limits-clean.png" alt="Лимиты задачи в браузере: 100 шагов, 600 секунд и 3 попытки, ниже переменные с результатом" class=" img-fluid img-markdown" /></p>
<p dir="auto">По умолчанию у задачи 100 шагов, 10 минут и 3 попытки. Если модель сама решила, что задачу не сделать, действие проходит без ошибки, и это видно по <code>AI_TASK_ACCOMPLISHED</code>. Ну и если кончились шаги, время или попытки, действие просто падает с ошибкой</p>
<h3>Действие извлечение данных из браузера</h3>
<p dir="auto">Это действие достаёт со страницы какую-то инфу, условно список цен или товаров. Тип ответа выбирается в поле проверки данных, там есть и строка, и число, и список, и объект</p>
<p dir="auto"><img src="/assets/uploads/files/1791887500098-05-07-06-extract-types-clean.png" alt="Извлечение данных: тип, в который модуль проверяет ответ модели" class=" img-fluid img-markdown" /></p>
<p dir="auto">Данные падают в <code>AI_EXTRACTER_DATA</code>, в коде она реально так и написана. Если модель вернула не тот формат, действие останавливается с ошибкой</p>
<p dir="auto">Ну и тут можно накосячить. Объект результата пишется в ту же <code>AI_TASK_RESULT_OBJECT</code>, что и у задачи в браузере. Если в проекте стоят оба действия, результат одного затрёт другой</p>
<h3>Как подключить бесплатную модель через OpenRouter</h3>
<p dir="auto">Почти все сервисы просят подписку или пополнение. OpenRouter это, по сути, агрегатор моделей, и там есть бесплатные модели с лимитом запросов. Подключается так:</p>
<ol>
<li>
<p dir="auto">Зарегистрироваться на OpenRouter и сразу скопировать ключ, потом его уже не посмотреть</p>
</li>
<li>
<p dir="auto">Зайти во вкладку Models и в фильтре <code>Prompt pricing</code> поставить FREE, тогда в списке останутся, по сути, только бесплатные модели</p>
<p dir="auto"><img src="/assets/uploads/files/1791887500177-05-08-02-openrouter-free-filter.png" alt="Фильтр цены промта на FREE: в списке остаются только бесплатные модели с ценой $0" class=" img-fluid img-markdown" /></p>
</li>
<li>
<p dir="auto">Выбрать подходящую модель. Выбирать можно по-разному, смотря под какую задачу, условно для текста есть отдельные текстовые модели</p>
</li>
<li>
<p dir="auto">На странице модели скопировать её имя, там для этого есть кнопочка рядом с ним</p>
<p dir="auto"><img src="/assets/uploads/files/1791887500274-05-09-02-openrouter-copy-name.png" alt="Страница модели: кнопка рядом с именем копирует его для поля Model, сверху предупреждение, что промты может хранить провайдер" class=" img-fluid img-markdown" /></p>
</li>
<li>
<p dir="auto">Ну и в настройке модуля поставить провайдер openrouter, вставить имя модели и токен</p>
</li>
</ol>
<p dir="auto">На бесплатном аккаунте лимит 50 запросов в сутки и 20 в минуту. Если закинуть 10 долларов, будет уже 1000 в день</p>
<p dir="auto">Бесплатная модель намного слабее передовых, и промты с ответами, как видно на странице, может хранить провайдер. Так что пароли, куки и любые секретные данные в такие промты не пишем</p>
<h3>Вывод</h3>
<p dir="auto">В целом модуль мне, честно, понравился. Работает он нормально, и задачи с ним реально можно решать</p>
<p dir="auto">Модуль AI, как по мне, штука для узких задач. Он нужен там, где модели надо именно подумать, типа ответить клиенту, который может написать что угодно</p>
<p dir="auto">Для таких штук, как описания профиля, хватает даже бесплатной модели через OpenRouter, ну если не отправлять ей ничего секретного</p>
]]></description><link>http://community.bablosoft.com/topic/32589/free-как-настроить-модуль-ai-в-bas-подключить-бесплатную-модель</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 23:10:30 GMT</lastBuildDate><atom:link href="http://community.bablosoft.com/topic/32589.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Oct 2026 11:40:42 GMT</pubDate><ttl>60</ttl></channel></rss>