Модуль Первый линк: AI-чат для сайта
AI-чат для сайта на 1С-Битрикс: обзор модуля «Первый линк: AI-чат»
Модуль llink.aibot добавляет на сайт чат-виджет с искусственным
интеллектом: отвечает посетителям из локальной базы знаний, а на остальные вопросы — через выбранную
AI-модель. Потоковый вывод ответа, приём заявок прямо в чате, журнал переписок с поиском —
без единой правки в шаблоне сайта.
Зачем сайту AI-чат
Посетитель сайта чаще всего приходит с одинаковыми вопросами: сколько стоит, какие сроки, как оформить заказ, где скачать счёт. Консультант не всегда доступен, а страница контактов или каталог услуг — не самый быстрый способ получить ответ.
Модуль «Первый линк: AI-чат» закрывает эту задачу целиком:
- мгновенные ответы по FAQ — типовые вопросы разбирайте заранее в базе знаний, и посетитель получает ответ без отправки запроса к нейросети (бесплатно и без задержки);
- AI-ответ на нестандартные вопросы — остальное разбирает выбранная модель, отвечая с учётом вашей системной инструкции и сведений о компании;
- захват заявки — если посетитель готов к диалогу, форма заявки открывается прямо в чате: письмо менеджеру, подписанный webhook и событие для интеграции с CRM;
- ничего не теряется — переписка восстанавливается после перезагрузки страницы, а админ-журнал хранит все диалоги с поиском.
Что умеет модуль
- Автоустановка виджета на все страницы сайта без правок в шаблоне (или ручное подключение одной строкой).
- База знаний с поиском по ключевым словам, тремя режимами работы, редактированием в админке, импортом и экспортом JSON, стартовым FAQ на 19 записей.
- Потоковый вывод ответа (SSE) — текст появляется по мере генерации, как в ChatGPT.
- Markdown в ответах: списки, ссылки, код, жирный текст.
- Быстрые вопросы и кнопки-подсказки, которые продолжают беседу одним кликом.
- Форма заявки в чате с настраиваемым набором полей.
- Журнал диалогов с поиском: источник ответа (база или модель), модель, расход токенов, IP, статусы.
- Антифлуд, капча, стоп-лист ботов и мастер-выключатель модуля.
- Гибкое оформление: 4 позиции, 11 цветов, размеры, шрифт, анимации.
Как это работает под капотом
Служебные адреса модуля перехватываются на событии ядра main/OnBeforeProlog —
до обращения к маршрутизации. Поэтому не требуется изменять .htaccess, конфигурацию
nginx или правила urlrewrite: установщик сам добавляет блок автоподключения в init.php
сайта. Правки в шаблон не нужны вообще.
Служебные адреса
Префикс по умолчанию — llink-aibot, меняется в настройках, если адрес
конфликтует с чем-то на сайте.
| Метод | Адрес | Назначение |
|---|---|---|
POST | /llink-aibot/api/ | ответ в формате JSON |
POST | /llink-aibot/stream/ | потоковый ответ (SSE) |
POST | /llink-aibot/lead/ | отправка заявки |
GET | /llink-aibot/captcha/ | картинка капчи |
GET | /llink-aibot/history/ | переписка своей сессии |
GET | /llink-aibot/ping/ | проверка ответа модуля |
Потоковые ответы (SSE)
Виджет ведёт поток через POST-запрос и fetch-ридер —
EventSource не используется, поэтому работает и с длинными промптами, и с прокси,
которые плохо дружат с классическим SSE. События протокола: session, delta,
done, error.
Восстановление переписки
Идентификатор сессии хранится в localStorage посетителя. Адрес
history/ отдаёт только тот диалог, чей идентификатор совпал, — чужие переписки
через него прочитать нельзя. Полный доступ ко всем диалогам есть только внутри админ-журнала.
AI-провайдеры
Модель выбирается на вкладке «AI-модель»: провайдер, ключ, адрес API, модель, температура, лимит токенов, таймаут, глубина истории. Готовые адаптеры:
| Провайдер | Примеры моделей |
|---|---|
| BitrixGPT | модели VibeCode |
| OpenAI | GPT-серия |
| Yandex GPT | YandexGPT (авторизация: apikey или bearer) |
| GigaChat | GigaChat API (scope настраивается: personal, team, корпоративный) |
| Anthropic | Claude |
| Любой OpenAI-совместимый API | OpenRouter, Together, Groq, Ollama, vLLM, LM Studio |
Кнопка «Проверить подключение» делает минимальный запрос к модели сразу после ввода ключа — конфигурация проверяется до того, как на чат начнут приходить посетители.
База знаний: ответы без расхода токенов
В каждой записи: вопрос (или несколько формулировок) и ответ. Поиск идёт по ключевым словам с повышенным весом полного совпадения фразы; запись срабатывает, когда совпадение превышает настраиваемый порог.
- Режимы работы: «сначала база знаний» (модель включается только если подходящей записи нет), «только база», «база выключена»;
- Дополнительно: порог совпадения, дамп всей базы в системный промпт;
- В админке: добавление, изменение, удаление записей, импорт и экспорт JSON;
- Уже при установке база заполнена стартовым FAQ на 19 записей (лицензии 1С-Битрикс, Битрикс24, контакты, приветствие и другие) — заготовку удобно отредактировать под свои услуги или целиком заменить на свою базу.
Заявки из чата: письмо, webhook и событие для CRM
Форма заявки открывается внутри чата; состав полей настраивается (например, имя, телефон, комментарий). По заявке одновременно срабатывают три канала доставки:
- Письмо на адреса администраторов (адреса задаются в настройках);
- Webhook с HMAC-подписью тела — обработчик может проверить целостность и происхождение запроса;
- Событие
OnAibotLead— стандартный обработчик для интеграции. В параметре лежат поля заявки, источник и ссылка на переписку:
use Bitrix\Main\Event;
use Bitrix\Main\EventManager;
EventManager::getInstance()->addEventHandler(
'llink.aibot',
'OnAibotLead',
static function (Event $event) {
$lead = $event->getParameter(0);
// передаём данные в CRM: поля заявки, источник, ссылка на диалог
}
);
Журнал переписок
Каждый диалог хранится целиком: сообщения обеих сторон, источник ответа (база знаний или конкретная модель), количество потраченных токенов, IP посетителя, статусы и ошибки — с полнотекстовым поиском по текстам. Запись отключается одним переключателем (например, для страниц, где ведётся обмен персональными данными) — тогда переписка вообще не пишется, но заявки сохраняются.
Срок хранения настраивается: агент очистки удаляет устаревшие записи автоматически.
Оформление виджета
Виджет вписывается в дизайн сайта без правки CSS:
- 4 позиции на экране (углы) с точной настройкой отступов;
- 11 цветов: основной, текст на нём, фон окна и ленты, цвета реплик, границы, ссылки;
- размеры окна и пузыря, скругления, размер и семейство шрифта, тень, анимация;
- имя бота, статус, аватар (картинка или 1–2 буквы), приветствие, подсказка в поле ввода;
- быстрые вопросы и ссылки на страницы сайта в нижней части окна;
- адаптивный дизайн, отдельная настройка отображения на мобильных;
- исключения по URL: чат не показывается на /cart/, /checkout/ и любых заданных адресах.
Безопасность
Перед публикацией в Маркетплейсе 1С-Битрикс модуль прошёл несколько раундов предмодерационного аудита безопасности; все замечания устранены, журналы версий приложены.
Что защищает модуль от злоупотреблений публичными эндпоинтами:
- Антифлуд: лимит запросов на посетителя (по умолчанию 10 в минуту и 100 в сутки), общий по сайту (60 в минуту) и лимит длины сообщения.
- Штатная капча ядра Bitrix: посетитель вводит код с картинки, правильный ответ хранится только на сервере — автоматический обход по содержимому вопроса невозможен.
- Стоп-лист ботов по User-Agent.
- Мастер-выключатель: один переключатель гасит и виджет, и все служебные адреса — удобно, чтобы мгновенно остановить расход токена или приём публичных запросов на время всплеска злоупотреблений.
- Приватность истории: переписку другой сессии прочитать нельзя.
- Ничего наружу: сырые тексты ошибок AI-провайдера никогда не отдаются посетителю (только обобщённые сообщения, детали — в серверный журнал).
- CORS выключен по умолчанию.
- Исходящие запросы к AI-провайдерам идут только по HTTPS с проверкой резолвнутых адресов против приватных диапазонов (защита от SSRF).
- Автоочистка журналов агентом по расписанию.
Демо-период и лицензирование
Демо-версия даёт 7 дней полного доступа с обратным отсчётом в админке. Что происходит по истечении срока:
- чат продолжает отвечать из базы знаний — бесплатно и без расхода токенов;
- запросы к AI-модели не отправляются, посетитель получает настраиваемый текст «Ответ после демо-периода» (вкладка «Виджет»);
- в админке появляется понятное уведомление, а кнопка «Проверить подключение» объясняет причину, не расходуя токены.
Для проверки поведения после истечения срока без ожидания есть переключатель «Ограничить модуль бесплатным сроком» на вкладке «Виджет». Полная версия, купленная в Маркетплейсе 1С-Битрикс, ограничений по сроку не имеет.
Установка
- Скопируйте модуль в
/bitrix/modules/llink.aibot/. - Очистите файловый кеш: Настройки → Настройки продукта → Очистка файлов кеша.
- Установите модуль: Настройки → Настройки продукта → Модули.
- Откройте настройки модуля, вкладка «AI-модель»: выберите провайдера, вставьте ключ и нажмите «Проверить подключение».
- По необходимости заполните «Промпт» (инструкция ассистенту, сведения о компании) и «База знаний».
Установщик сам создаёт таблицы, записывает настройки по умолчанию, заполняет базу знаний
стартовым FAQ, копирует файлы виджета, добавляет блок автоподключения в init.php
сайта и регистрирует агента очистки журналов.
Ручное подключение (одной строкой)
Если нужен контроль места вывода — выберите режим «Вручную» на вкладке «Виджет» и добавьте вызов в шаблон:
use Bitrix\Main\Loader;
if (Loader::includeModule('llink.aibot')) {
\llink_aibot::addWidget();
}
Системные требования
| Компонент | Требование |
|---|---|
| PHP | 8.2+ (расширения mbstring, json, curl, openssl) |
| 1С-Битрикс | версия ядра 20.0+ |
| База данных | MySQL 5.7+ / MariaDB 10.3+ |
| Браузеры | поддержка fetch, ReadableStream, localStorage |
| Сеть | доступ сайта к HTTPS-API выбранного AI-провайдера |
Ответы на частые вопросы
Что будет, если AI-провайдер оказался недоступен или бюджет исчерпан?
Чат продолжает работать: при ошибке выдаётся обобщённое сообщение без внутренних подробностей, детали пишутся в серверный журнал. Провайдера при этом можно переключить на другой — включая любой OpenAI-совместимый сервис — парой действий в настройках.
Можно ли отключить AI и оставить базу знаний?
Да. На вкладке «База знаний» выберите режим «Только база знаний» — ответы будут генерироваться исключительно из ваших записей без запросов к модели.
Как избежать утечки данных переписки?
Переписку можно не сохранять вовсе (переключатель записи диалогов), ограничить срок
хранения или задать страницы, где чат не показывается. Чужой доступ к перепискам
через публичные адреса исключён: API history/ отвечает
только по идентификатору собственной сессии посетителя.
Нужны ли навыки разработки?
Нет. Всё настраивается в админке; код требуется только для ручного подключения виджета в шаблоне (одна строка) или кастомной интеграции заявок с CRM (один обработчик события).
Попробуйте на своём сайте
Живая демо-страница показывает виджет целиком: потоковые ответы, Markdown, кнопки-подсказки и форму заявки — плюс панель реального вида виджета на разных устройствах.
Открыть демо Сайт «Первый линк»Вопросы по модулю и поддержка: client@1lsite.ru · Пн–Пт 9:00–18:00 (мск) · ответ на критические проблемы — до 24 часов
Материал обновлён для версии модуля 1.0.6 · «Первый линк», 2026