Codebrain поддержка
codebrain.aicontent

AI-генератор контента для товаров и инфоблоков

Модуль codebrain.aicontent заполняет контент сайта на 1С-Битрикс с помощью языковых моделей: описания, SEO-заголовки и мета-описания, H1, alt-тексты, ключевые слова, характеристики и переводы — для товаров, разделов каталога, новостей, статей и любых других инфоблоков.

Модуль бесплатный и работает на ваших собственных ключах LLM-провайдеров. Внешнего сервиса Codebrain нет: запросы идут с вашего сервера напрямую к провайдерам, которых вы выбрали.

#Возможности

  • 21 готовый провайдер и свой сервер: GigaChat, YandexGPT (Alice AI), OpenAI, Claude, Gemini, DeepSeek, Mistral, Groq, Cerebras, OpenRouter, ProxyAPI, VseGPT, а также LiteLLM, vLLM, Ollama. Если провайдер недоступен, модуль сам переходит к следующему.
  • Генерация из карточки элемента или раздела — с предпросмотром результата и кнопкой «Ещё вариант».
  • Пакетная генерация из списка: выбранные записи или все по текущему фильтру.
  • Массовая генерация по инфоблоку и разделам — в фоновой очереди, на тысячи товаров.
  • Модерация: результат можно сначала проверить и поправить, а записанное значение — откатить.
  • Переводы на 15 языков в отдельные свойства, с глоссарием терминов.
  • Автогенерация для новых и изменённых товаров, в том числе при обмене с 1С.
  • Проверки качества: стоп-слова, язык ответа, уникальность относительно соседних товаров.
  • Отчёт о заполненности, песочница для промптов, статистика расходов.

#Требования

Что Требование
Платформа 1С-Битрикс: Управление сайтом, главный модуль 20.0 или новее, любая редакция с модулем «Информационные блоки»
PHP 7.3 или новее, расширения curl, mbstring, json
Кодировка UTF-8 (однобайтовые установки в windows-1251 модуль не поддерживает)
Агенты Рекомендуется выполнять агенты на cron — массовая генерация идёт фоном
Ключи Хотя бы один ключ LLM-провайдера (есть бесплатные варианты)

Модуль проверяет окружение при установке и, если чего-то не хватает, покажет, что именно.

#Установка

  1. Установите модуль из Маркетплейса: Marketplace → Каталог решений, найдите «AI-генератор контента» и нажмите «Установить».
  2. После установки в главном меню административной панели появится раздел Codebrain → AI-контент.
  3. Откройте Настройки и подключите хотя бы одного провайдера (см. ниже). Вверху страницы настроек есть ссылки на эту документацию и на форму обращения в техподдержку.
Раздел «Codebrain» в меню административной панели

Совет если на сайте агенты выполняются на хитах, перенесите их на cron — так очередь будет обрабатываться быстрее и не будет задерживать посетителей. Инструкция — в документации 1С-Битрикс «Перенос агентов на cron».

#Быстрый старт

  1. Настройки → Провайдеры LLM: выберите провайдера в списке внизу, нажмите «Добавить провайдера», вставьте ключ и нажмите «Проверить». Для начала подойдут бесплатные Groq или OpenRouter с моделью :free, а для сервера в России — GigaChat или Yandex.
  2. Нажмите «Сохранить».
  3. Откройте любой товар, нажмите «✨ AI» рядом с кнопкой «Сохранить», отметьте поля и нажмите «Сгенерировать». Посмотрите результат и примените его.
  4. Для всего каталога — Codebrain → AI-контент → Массовая генерация.

#Провайдеры LLM

Провайдер — это сервис с языковой моделью и ваш ключ к нему. Можно подключить несколько: модуль пробует их сверху вниз и при ошибке, исчерпанном лимите или балансе переходит к следующему. Сбойный провайдер временно пропускается, а после успешного ответа снова используется.

Настройки → Провайдеры LLM

Провайдеры разделены на группы:

Группа Провайдеры Оплата
Бесплатные Groq, Cerebras, OpenRouter (модели :free), Google Gemini Flash / Flash-Lite Бесплатно с ограничением числа запросов в минуту и в день
Частично бесплатные Сбер GigaChat, Yandex Alice AI LLM, Alice AI LLM Flash, Qwen 3.6 в Yandex AI Studio Бесплатный лимит или стартовый грант, далее оплата в рублях
Платные OpenAI, Anthropic Claude, DeepSeek, Mistral, Google Gemini Pro, OpenRouter, ProxyAPI.ru, VseGPT.ru По тарифу провайдера
Свой сервер LiteLLM, vLLM, Ollama и любой OpenAI-совместимый API Ваша инфраструктура

У каждого провайдера показана примерная стоимость на 1000 элементов × 6 стандартных полей — по ценам каталога OpenRouter. Кнопка «Упорядочить по стоимости» поставит бесплатных наверх.

#Подключение провайдера

Нажмите на строку провайдера, чтобы раскрыть её. Под полями есть пошаговая инструкция «Как получить API-ключ» со ссылкой на страницу провайдера.

Раскрытый провайдер: модель, ключ, прокси и инструкция
  • Модель — можно оставить пустой, тогда используется модель по умолчанию. Для OpenRouter, ProxyAPI и VseGPT модель указывается с префиксом поставщика, например openai/gpt-6-luna.
  • API-ключ — после сохранения ключ на странице не показывается, видны только последние символы. Оставьте поле пустым, чтобы не менять сохранённый ключ.
  • Folder ID (Yandex) и тип доступа (GigaChat) — дополнительные поля этих провайдеров.
  • Прокси — необязательно; поддерживаются http, https, socks4, socks5, socks5h.
  • Кнопка «Проверить» отправляет короткий тестовый запрос и показывает ответ или понятную ошибку.

Раз в сутки модуль сам проверяет провайдеров без расхода токенов: ключ, наличие модели, баланс (OpenRouter, DeepSeek), снятие модели с поддержки. Статус виден у каждого провайдера, проблемы — в уведомлениях.

#Особенности провайдеров

  • Google Gemini не обслуживает запросы с IP-адресов России. Если сервер в РФ, используйте прокси или другого провайдера.
  • GigaChat: ключ авторизации берётся в личном кабинете Studio. Нужен сертификат Минцифры — он уже входит в модуль.
  • Yandex AI Studio: создайте сервисный аккаунт с ролью ai.languageModels.user, API-ключ с областью yc.ai.foundationModels.execute и укажите Folder ID (виден в адресе консоли после /folders/). Секрет ключа показывается только один раз.
  • OpenRouter: модели для изображений и звука (например, openai/gpt-image-2) для текстов не подходят — проверка подскажет это.
  • Свой сервер: укажите адрес OpenAI-совместимого API (например, http://localhost:4000/v1 для LiteLLM) и модель.

Совет держите наверху бесплатного или самого дешёвого провайдера, а ниже — платный резерв. Генерация не остановится, когда закончатся бесплатные лимиты.

#Генерация из карточки

На странице редактирования элемента или раздела рядом с кнопками «Сохранить» и «Применить» появляется кнопка «✨ AI».

Кнопка «✨ AI» в карточке товара

Нажмите её, отметьте поля и нажмите «Сгенерировать». В «Дополнительных параметрах» можно выбрать режим (сгенерировать, переписать, перевести), язык, набор промптов, учёт фото и поиск в интернете.

Окно генерации в карточке

Результат сначала показывается для просмотра: его можно применить в форму, сгенерировать ещё вариант или закрыть. В форму значение подставляется, а записывается при сохранении карточки — как при ручном вводе.

Возле отдельных полей — описаний на вкладках «Анонс» и «Подробно», SEO-полей — есть маленькие кнопки ✨ для генерации одного поля.

Кнопки ✨ у SEO-полей

Для разделов каталога работает так же: описание раздела, SEO-заголовок, SEO-описание, ключевые слова, H1.

#Генерация из списка

В списке товаров или разделов отметьте записи и выберите в меню действий «✨ Сгенерировать контент». Можно отметить «Для всех» — тогда обработаются все записи по текущему фильтру списка.

Выбранные товары в списке

В окне выберите поля, режим записи и при необходимости — отправку на проверку. Задача встанет в очередь и будет выполняться в фоне.

Окно пакетной генерации из списка

#Массовая генерация

Codebrain → AI-контент → Массовая генерация — запуск по целому инфоблоку или его разделам, без перехода в список.

Страница массовой генерации
  1. Что обрабатывать — инфоблок, записи (элементы, разделы или всё вместе), разделы с подразделами или без, только активные, только доступные к покупке (для товаров).
  2. Какие поля генерировать — стандартные поля, свои поля, характеристики и переводы этого инфоблока.
  3. Как генерировать — режим записи, отправка на проверку, режим и язык, учёт фото, поиск в интернете.
Выбор полей и параметров генерации

Кнопка «Посчитать» покажет, сколько записей попадёт в задачу, и примерное время. «Запустить генерацию» создаёт задачу и открывает страницу прогресса.

Результат подсчёта перед запуском

#Очередь и прогресс

Все задачи видны в Очереди задач: источник (вручную или автогенерация), число записей, прогресс и статус. Задачу можно отменить.

Очередь задач

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

Прогресс задачи

Как работает очередь:

  • Задачи выполняет агент Битрикса. С cron он запускается раз в минуту и работает до 50 секунд, на хитах — до 10 секунд, чтобы не задерживать посетителей.
  • Скорость зависит от провайдера: быстрые модели обрабатывают 50–90 полей в минуту.
  • Уже заполненные поля пропускаются (если не выбрана перезапись).
  • После 10 ошибок подряд задача останавливается со статусом «Ошибка» — обычно это закончившийся баланс или неверный ключ.

#Проверка результатов

Здесь собраны все сгенерированные значения. Вкладки: «На проверке», «Записано», «Отклонено», «Откачено».

Проверка результатов
  • На проверке — значения, которые ещё не записаны: включите «Отправить на проверку» при запуске или сделайте проверку обязательной в правах. Можно применить (сразу или с правкой) или отклонить, по одному или отмеченные.
  • Записано — значение можно откатить к прежнему. Откат откажет, если поле изменили после генерации, — чтобы не затереть чужую правку.

#Поля

Поле Для чего Лимит
Подробное описание HTML: абзацы, списки, выделение —
Краткое описание (анонс) 2–3 предложения, текст —
SEO-заголовок title страницы 70 символов
SEO-описание meta description 160 символов
Ключевые слова meta keywords 255 символов
Заголовок H1 Заголовок страницы 100 символов
Alt изображения Описание главного фото 125 символов

Для разделов — описание раздела, SEO-заголовок, SEO-описание, ключевые слова и H1 раздела.

Ответ модели приводится к формату поля: одна строка и обрезка по лимиту для SEO, чистка HTML для описаний (остаются только безопасные теги), снятие markdown-обёрток и кавычек. Ответы вида «нет данных», «не могу помочь» в поле не записываются.

SEO-поля пишутся как собственные значения элемента. Значения из SEO-шаблонов инфоблока не перезаписываются, а в отчёте о заполненности не считаются заполненными.

#Свои поля

Настройки → Свои поля: модуль может заполнять строковые свойства инфоблока — строку, HTML/текст и множественную строку (как список). Для каждого свойства задаются формат, лимит и свой промпт.

Настройки → Свои поля

Внимание фактические свойства (материал, состав, страна) модель может придумать, если их нет в данных. Для таких полей используйте режим проверки.

#Характеристики из описания

На той же вкладке можно выбрать свойства, которые модуль извлечёт из названия и описания (поле «Характеристики из описания»): строки, числа и списки. Для списков выбирается существующий вариант, новые не создаются.

#Режимы и запись

Режим:

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

Язык результата: русский, английский, немецкий, французский, испанский, итальянский, польский, турецкий, украинский, белорусский, казахский, узбекский, армянский, грузинский, китайский.

Запись:

  • Только пустые поля — заполненные пропускаются (по умолчанию).
  • Перезаписать — заменить текущее значение.
  • Дописать — добавить к существующему тексту.

#Промпты

Настройки → Промпты — шаблоны запросов к модели для каждого поля. Пустое поле или текст по умолчанию — используется встроенный промпт, который улучшается с обновлениями модуля.

Настройки → Промпты

Переключатель вверху — «Товары каталога» / «Остальные инфоблоки». Для новостей, статей и услуг свои промпты: в них нет «характеристик товара» и продающих формулировок. Набор выбирается автоматически по инфоблоку элемента.

#Переменные

Переменная Значение
{name} Название элемента или раздела
{section} Раздел элемента
{article} Артикул
{properties} Свойства и варианты торговых предложений
{price}, {quantity} Цена и остаток
{current_text} Подробное описание
{preview_text} Анонс
{excerpt} Начало подробного описания (до 3000 символов) — удобно для SEO длинных статей
{current_value} Текущее значение генерируемого поля
{max_length} Лимит поля
{subsections}, {products}, {product_count}, {parent_section} Для разделов: подразделы, примеры и число элементов, родительский раздел

Условные блоки: {?price}Цена: {price}.{/?} — блок выводится, только если переменная не пустая.

Цепочки: {result:DETAIL_TEXT} — значение другого поля, сгенерированное раньше в этом же запуске. Например, SEO-описание можно строить по только что написанному описанию.

Системный промпт задаёт роль модели и общие правила. Язык ответа, глоссарий и стоп-слова добавляются к нему автоматически.

#Наборы промптов

Настройки → Наборы промптов — альтернативные промпты для отдельных запусков: например, «Лаконично» или «Для маркетплейсов». Набор выбирается в окне генерации или в правилах автогенерации; пустые поля набора берутся из основных промптов.

Настройки → Наборы промптов

#Переводы и глоссарий

Настройки → Переводы: модуль переводит поле (название, анонс, описание, SEO) на другой язык и сохраняет перевод в отдельное свойство элемента или пользовательское поле раздела, например «Подробное описание (EN)». Исходный текст не меняется.

Настройки → Переводы
  1. Выберите инфоблок.
  2. Добавьте строки «что переводить → язык → куда сохранять». Вариант «+ новое свойство» создаст поле при сохранении.
  3. Сохраните. Переводы появятся в группе «Переводы» в окне «✨ AI», в массовой генерации, в правилах автогенерации и в отчёте о заполненности.

На сайте выведите эти свойства в шаблоне языковой версии.

Глоссарий — по строке на термин: термин = перевод (модель обязана переводить так), de: термин = перевод (только для одного языка), просто термин (не переводить: бренды, модели, артикулы). Соблюдение глоссария проверяется после генерации.

#Автогенерация

Настройки → Автоматизация: правила для новых и изменённых элементов — в том числе созданных импортом или обменом с 1С.

Правило автогенерации

В правиле выбираются инфоблок, события (создание, изменение), поля, язык и набор промптов, проверка перед записью. Обработчик только ставит элемент в очередь, генерирует агент. Уже заполненные поля не трогаются, поэтому ручные правки не затираются.

Совет включите правило с переводами — новые товары из 1С будут получать переводы сразу, как только у них появится исходный текст.

#Проверки качества

Настройки → Проверки:

Настройки → Проверки
  • Стоп-слова — модель получает запрет, а текст со стоп-словом генерируется повторно; если не помогло — не записывается.
  • Язык ответа — если модель ответила не на том языке, генерация повторяется.
  • Уникальность — текст сравнивается с текстами соседних товаров раздела и этого же задания. При совпадении выше порога — повторная генерация, затем предупреждение.
  • Сайты для поиска — ограничение поиска в интернете доменами (сайты производителей).

#Фото и поиск в интернете

  • Учитывать фото — главное фото товара отправляется моделям, которые понимают изображения: alt и описания получаются точнее.
  • Поиск в интернете — для OpenRouter (любые модели) и Anthropic. Модель находит характеристики на сайтах, источники сохраняются вместе с результатом.

#Заполненность, песочница, статистика

Заполненность — сколько элементов и разделов уже имеют собственное значение каждого поля. По ссылке «сгенерировать пустые» откроется массовая генерация с этим полем и тем же набором записей.

Отчёт о заполненности

Песочница — проверка промпта, модели или провайдера на одном элементе или своём тексте. Ничего не записывается; видны отправленный промпт, ответ до очистки, время, токены и стоимость.

Песочница: результат и отправленный промпт

Статистика — запросы, ошибки, токены и расходы за период: график по дням, разбивка по моделям и полям, журнал запросов.

Статистика

#Параметры

Настройки → Параметры:

Настройки → Параметры
  • Максимум токенов ответа — рекомендуется 2048–4096. «Рассуждающим» моделям (gpt-oss, DeepSeek R1) нужно больше: часть лимита они тратят на рассуждения. При рерайте и переводе лимит автоматически увеличивается под длину текста.
  • Temperature — 0: точно и однообразно, 1 и выше: разнообразнее. Новые модели, которые не принимают этот параметр, модуль обрабатывает сам.
  • Элементов за один запуск агента — размер пачки очереди.
  • Хранить логи и завершённые задачи, дней — 0: не удалять.

#Права доступа

Настройки → Права:

Настройки → Права
  • Генерация — группы, которым доступны кнопки AI и страницы модуля. Если не выбрано — все, у кого есть право изменять элементы инфоблоков.
  • Проверка результатов — применение, отклонение и откат. Если не выбрано — только администраторы.
  • Обязательная проверка — результаты остальных пользователей не записываются сразу, а уходят на проверку.

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

#Уведомления

Модуль пишет в информер административной панели (кнопка с числом в верхней панели): проблемы провайдеров (неверный ключ, закончились средства или лимит, модель снята), завершение задач и результаты, ожидающие проверки.

Уведомления модуля в информере

У каждой карточки информера, включая системные карточки Битрикса, есть крестик — она скрывается для вас и вернётся, если её содержимое изменится. Счётчик на кнопке показывает число карточек. Подробности о проблеме провайдера — в его строке на вкладке «Провайдеры LLM».

#Данные и конфиденциальность

  • Для генерации модуль передаёт выбранному вами провайдеру данные элемента: название, раздел, свойства, текущий текст поля, при включённой опции — главное фото. Персональные данные покупателей и заказы не передаются.
  • Никаких данных на серверы Codebrain модуль не отправляет. Кроме провайдеров, обращается только к публичному каталогу моделей OpenRouter (за ценами), без ключей и данных сайта.
  • Ключи API и пароли прокси хранятся в настройках модуля и не выводятся на страницы.
  • Условия обработки данных у каждого провайдера свои — ознакомьтесь с ними перед подключением.

#Для разработчиков

Модуль отправляет события, на которые можно подписаться в init.php или своём модуле:

use Bitrix\Main\EventManager;
use Bitrix\Main\EventResult;

EventManager::getInstance()->addEventHandler('codebrain.aicontent', 'OnBeforeGenerate', function ($event) {
    // entityType ('E'|'S'), entityId, fieldCode, prompt, system, options
    $prompt = $event->getParameter('prompt') . "\nУпомяни бесплатную доставку.";
    return new EventResult(EventResult::SUCCESS, ['prompt' => $prompt]);
    // пропустить поле: new EventResult(EventResult::ERROR, ['message' => 'причина'])
});
Событие Параметры Что можно сделать
OnBeforeGenerate entityType, entityId, fieldCode, prompt, system, options Заменить промпт или системный промпт (SUCCESS с prompt, system); пропустить поле (ERROR с message)
OnAfterGenerate entityType, entityId, fieldCode, content, model Изменить текст перед записью (SUCCESS с content)
OnAfterSave entityType, entityId, fieldCode, oldValue, newValue, resultId, pending Уведомление после записи или отправки на проверку

#Удаление модуля

Marketplace → Установленные решения → AI-генератор контента → Удалить. Модуль спросит, сохранить ли данные: очередь, журнал, результаты и настройки, включая ключи API. Если оставить галочку, после повторной установки всё вернётся.

Сгенерированные тексты остаются в товарах и разделах. Свойства для переводов, созданные модулем, тоже не удаляются — это данные вашего каталога.

#Частые вопросы

Генерация не запускается, задача стоит в очереди. Проверьте, что выполняются агенты: Настройки → Настройки продукта → Агенты, агент Codebrain\Aicontent\Agent::run(). На хитах очередь движется, только пока на сайт кто-то заходит, — перенесите агенты на cron.

Ошибка «HTTP 401» или «неверный ключ». Ключ скопирован не целиком, отозван или относится к другому аккаунту. Вставьте ключ заново и нажмите «Проверить».

Ошибка «HTTP 402» или «закончились средства». Пополните баланс у провайдера или поставьте выше бесплатного провайдера.

«User location is not supported». Google Gemini не работает с IP-адресов России. Укажите прокси для провайдера или используйте другого.

Yandex: «Permission denied». У сервисного аккаунта нет роли ai.languageModels.user, у ключа нет области yc.ai.foundationModels.execute или отрицательный баланс облака.

Модель «создаёт не текст». В провайдере указана модель для изображений или звука. Выберите текстовую модель.

Ответ обрезан. Увеличьте «Максимум токенов ответа» в параметрах — особенно для рассуждающих моделей.

Модель дописывает единицы измерения или придумывает факты. Модели по-разному следуют запретам: попробуйте другую модель, добавьте единицы в названия свойств («Ширина, мм») и используйте режим проверки для важных полей.

SEO-поля не меняются на сайте. Модуль пишет собственные значения элемента. Если шаблон сайта выводит мета-теги не через SEO-механизм Битрикса, значения нужно вывести в шаблоне.

Где посмотреть, что именно отправилось модели? В песочнице: там видны промпт, системный промпт и ответ до очистки.

Не нашли ответ — нажмите «Техподдержка» вверху страницы.