Интеграции
Что такое блок «Интеграция»
Блок «Интеграция» позволяет вашему боту обращаться к сторонним сервисам — OpenAI, Google Sheets и другим — прямо в ходе сценария. Бот отправляет запрос, получает ответ и сохраняет результат в переменные.
Подключение сервиса
Перед использованием блока интеграции нужно создать подключение к сервису:
- Нажмите кнопку «Интеграции» в шапке конструктора.
- Выберите нужный сервис из списка.
- Введите данные авторизации:
- API-ключ — для OpenAI и других сервисов с ключом.
- OAuth2 — для Google (авторизация через аккаунт Google).
- Сервисный аккаунт — для Google (JSON-файл сервисного аккаунта).
- Нажмите «Проверить» — система протестирует подключение.
- Сохраните подключение.
Одно подключение можно использовать в нескольких блоках одного или разных ботов.
Настройка блока интеграции
- Добавьте блок «Интеграция» в нужную ноду.
- Выберите сервис (например, OpenAI).
- Выберите подключение из списка созданных.
- Выберите операцию (например, «Отправить сообщение»).
- Заполните параметры операции.
- Укажите префикс переменных результата (по умолчанию result).
После выполнения блока результат будет доступен как {{result.поле}}.
Переход при ошибке интеграции
В нижней части каждого блока интеграции находится секция «Переход при ошибке».
Если интеграция завершается ошибкой (сервис недоступен, исчерпана квота, неверный ответ и т.д.), бот:
- Уведомляет владельца бота о проблеме (если уведомления включены).
- Прерывает выполнение оставшихся блоков текущей ноды.
- Переходит в ноду ошибки, указанную в поле «Ошибка интеграции».
Если поле «Ошибка интеграции» не заполнено — бот продолжает выполнение сценария как обычно (штатный путь после ноды), что может привести к некорректному поведению.
Рекомендации
- Всегда указывайте ноду ошибки для интеграций, которые критичны для сценария (AI-ответы, TTS, запросы к БД и т.д.).
- В ноде ошибки можно отправить пользователю понятное сообщение: «Сервис временно недоступен, попробуйте позже».
- Кнопка «+ создать» рядом с полем автоматически создаёт новую ноду и сразу связывает её с блоком интеграции.
- Связь с нодой ошибки отображается на схеме жёлтой стрелкой с подписью «Ошибка интеграции».
Важно: если в одной ноде несколько блоков интеграции, при ошибке первого из них остальные блоки не выполняются — бот сразу переходит к ноде ошибки.
Тестирование блока
Прямо в редакторе блока есть кнопка «Тест» — она выполняет операцию с текущими параметрами и показывает, какие переменные будут установлены. Это удобно для проверки запросов перед публикацией.
OpenAI
Отправить сообщение (Chat)
Отправляет запрос к ChatGPT и получает текстовый ответ.
| Параметр | Описание |
|---|---|
| Модель | GPT-4o, GPT-4o mini и другие — выбираются из аккаунта |
| Сообщение пользователя | Текст запроса; поддерживает {{переменные}} |
| Системный промпт | Инструкции для модели — роль, стиль, ограничения. Поддерживает markdown-разметку и {{переменные}}. Кнопка ⤢ открывает редактор на весь экран |
| Температура | Степень случайности ответа 0–2 |
| Макс. токенов | Ограничение длины ответа |
Результирующие переменные (при префиксе result):
| Переменная | Значение |
|---|---|
| {{result.text}} | Текст ответа модели |
| {{result.model}} | Использованная модель |
| {{result.tokens_used}} | Потрачено токенов |
Запомнить диалог
Позволяет сохранять историю переписки и передавать её в каждый последующий запрос к модели, создавая эффект «памяти». История хранится в базе данных.
| Параметр | Описание |
|---|---|
| Время памяти (часов) | Через сколько часов неактивности история сбрасывается. 0 — без ограничения по времени |
| Максимум сообщений в истории | Сколько последних сообщений передавать модели при каждом запросе. По умолчанию 100 |
| Название диалога по умолчанию | Имя нового диалога до того, как сгенерировано автоматическое. По умолчанию Main |
| Генерировать названия диалога | Если включено — при создании нового диалога бот в фоне отправляет отдельный запрос к ИИ с просьбой сформулировать короткое название (до 5 слов) на основе первого сообщения пользователя. Название сохраняется автоматически, не задерживая ответ |
| Шифровать данные | Если включено — сообщения пользователя и ответы ИИ сохраняются в базе данных в зашифрованном виде (AES-256-CBC). При каждом обращении к ИИ данные автоматически расшифровываются. Уже существующие незашифрованные диалоги продолжают читаться корректно |
| ID диалога | Загрузить конкретный диалог по его идентификатору. Поддерживает {{переменные}} (например, "{{dialog_id}}"). Если не указан — берётся последний активный диалог, либо создаётся новый |
| Переменная с ID диалога | Имя переменной, в которую будет записан ID текущего диалога. Используйте её в других блоках для явного обращения к нужному диалогу |
| Выводить предварительное сообщение | ИИ может долго генерировать ответ. При включении бот немедленно отправляет пользователю короткое сообщение-заглушку, а когда ответ готов — редактирует его. Не задерживает ощущение реакции бота |
Когда «Выводить предварительное сообщение» включено, появляются два дополнительных поля:
| Параметр | Описание |
|---|---|
| Предварительное сообщение | Текст или эмодзи для мгновенного ответа пользователю (например, "⏳ Генерирую ответ...") |
| Название переменной для ID сообщения | Имя переменной, куда сохраняется "message_id" отправленного предварительного сообщения. По умолчанию message_id. Используйте в блоке «Текст» с включённым «Редактировать сообщение» |
Типичный сценарий с предварительным сообщением:
- Блок «Интеграция» → включить «Выводить предварительное сообщение» → переменная "message_id".
- Ответ ИИ сохраняется в "{{result.text}}".
- Следующий блок «Текст» с "{{result.text}}" → в «Дополнительных» включить «Редактировать сообщение» → указать переменную "{{message_id}}".
- Бот редактирует предварительное сообщение, заменяя заглушку на ответ ИИ.
Сгенерировать изображение
Создаёт изображение по текстовому описанию (DALL·E 3, GPT-image-1 и др.).
| Параметр | Описание |
|---|---|
| Модель | dall-e-3, dall-e-2, gpt-image-1 и др. |
| Описание | Текст промпта; поддерживает {{переменные}} |
| Референсы | До 5 ссылок на исходные изображения. Если указана хотя бы одна — модель будет принудительно переключена на gpt-image-1, если выбрана DALL·E. Каждое поле поддерживает {{переменные}} |
| Размер | Разрешение изображения |
| Формат файла | PNG / JPEG / WebP — формат выходного файла (только для моделей gpt-image-*) |
| Качество изображения | Авто / Низкое / Среднее / Высокое (только для моделей gpt-image-*) |
| Прозрачный фон | Сгенерировать изображение с прозрачным фоном (только для PNG/WebP, моделями gpt-image-*) |
| Количество | 1–10 изображений |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.url}} | URL изображения |
| {{result.revised_prompt}} | Уточнённый промпт (возвращается моделями, поддерживающими переформулировку промпта) |
Анализировать изображение (Vision)
Задаёт вопрос по изображению — модель отвечает на основе содержимого картинки.
| Параметр | Описание |
|---|---|
| Модель | GPT-4o, GPT-4 Turbo и другие с поддержкой Vision |
| URL изображения | Ссылка на изображение; поддерживает {{переменные}} |
| Вопрос | Что именно нужно определить или описать |
Результат: {{result.text}} — текстовый ответ модели.
Расшифровать аудио (Whisper)
Переводит голосовое сообщение или аудиофайл в текст.
| Параметр | Описание |
|---|---|
| file_id | Telegram file_id аудио/голосового сообщения; поддерживает {{переменные}} |
| Модель | whisper-1, gpt-4o-transcribe и др. |
| Язык | ISO-код языка (пусто = автоопределение) |
Результат: {{result.text}} — расшифрованный текст.
Типичный сценарий: пользователь отправляет голосовое → блок «Ввод данных» сохраняет file_id → блок интеграции Whisper расшифровывает → переменная {{result.text}} доступна в следующих блоках.
Получить список моделей (OpenAI)
Запрашивает OpenAI API и записывает массив моделей, доступных в вашем аккаунте, в указанную переменную.
Параметров нет — укажите только переменную, в которую будет записан результат.
Результат: {{result}} — массив объектов. Доступные свойства каждого элемента (N — порядковый номер с 0):
| Свойство | Описание |
|---|---|
| {{result.N.id}} | Идентификатор модели (например, gpt-4o) |
| {{result.N.object}} | Тип объекта (всегда "model") |
| {{result.N.created}} | Дата создания (Unix timestamp) |
| {{result.N.owned_by}} | Владелец модели (например, openai) |
Нажмите Тест в редакторе, чтобы убедиться в работе и увидеть список моделей. Данные будут доступны через {{result.0.id}}, {{result.1.id}} и т.д.
Реакция на сообщение (OpenAI)
ИИ анализирует текст сообщения пользователя и выбирает одно эмодзи из разрешённого списка, после чего бот ставит эту реакцию на указанное сообщение через Telegram API.
| Параметр | Описание |
|---|---|
| ID сообщения | ID сообщения, на которое ставится реакция. По умолчанию — {{USER_MESSAGE_ID}} (входящее сообщение пользователя) |
| Список реакций | Сетка из 73 доступных emoji-реакций Telegram — выберите те, из которых ИИ может выбирать |
| Сообщение пользователя | Текст для анализа; поддерживает {{переменные}}. По умолчанию — {{USER_MESSAGE}} |
| Инструкция | Системный промпт для ИИ. Список разрешённых эмодзи добавляется автоматически в конец инструкции |
| Модель | Модель OpenAI (по умолчанию "gpt-4o-mini"). В расширенных параметрах |
Результирующие переменные (при префиксе result):
| Переменная | Значение |
|---|---|
| {{result.selected_emoji}} | Выбранная реакция (пусто, если ИИ не смог подобрать подходящую или вернул null) |
Поведение при отсутствии реакции: если ИИ вернул "null", пустую строку или эмодзи не из разрешённого списка — реакция не выставляется, переменная "selected_emoji" остаётся пустой строкой, выполнение сценария продолжается.
Anthropic Claude
Отправить сообщение
Отправляет запрос к Claude и получает текстовый ответ. Поддерживает те же возможности памяти диалога и предварительного сообщения, что и OpenAI Chat.
| Параметр | Описание |
|---|---|
| Модель | Claude 4.6 Opus, Claude 4.6 Sonnet, Claude 4.5 Sonnet и другие — выбираются из аккаунта |
| Сообщение пользователя | Текст запроса; поддерживает {{переменные}} |
| Системный промпт | Инструкции для модели — роль, стиль, ограничения. Поддерживает markdown-разметку и {{переменные}}. Кнопка ⤢ открывает редактор на весь экран |
| Макс. токенов | Ограничение длины ответа |
Результирующие переменные (при префиксе result):
| Переменная | Значение |
|---|---|
| {{result.text}} | Текст ответа модели |
| {{result.model}} | Использованная модель |
| {{result.tokens_used}} | Потрачено токенов |
Запомнить диалог
Аналогично разделу OpenAI → Запомнить диалог — все настройки (время памяти, максимум сообщений, название диалога, генерация названий, ID диалога, переменная с ID, предварительное сообщение) работают одинаково для Claude.
Получить список моделей (Anthropic)
Запрашивает Anthropic API и записывает массив доступных моделей Claude в указанную переменную.
Параметров нет — укажите только переменную, в которую будет записан результат.
Результат: {{result}} — массив объектов (sorted by created_at desc). Доступные свойства каждого элемента (N — порядковый номер с 0):
| Свойство | Описание |
|---|---|
| {{result.N.id}} | Идентификатор модели (например, claude-sonnet-4-6) |
| {{result.N.display_name}} | Отображаемое имя модели |
| {{result.N.created_at}} | Дата создания (ISO 8601) |
| {{result.N.type}} | Тип объекта (всегда "model") |
| {{result.N.max_input_tokens}} | Максимальное число токенов контекста |
| {{result.N.max_tokens}} | Максимальное число токенов ответа |
Нажмите Тест в редакторе, чтобы убедиться в работе. После теста автодополнение {{result.0.id}}, {{result.1.id}} и т.д. будет доступно в редакторе.
Реакция на сообщение (Claude)
Идентична операции OpenAI → Реакция на сообщение: ИИ Claude анализирует текст сообщения и выбирает одну реакцию из разрешённого списка, после чего бот ставит её через Telegram API.
| Параметр | Описание |
|---|---|
| ID сообщения | ID сообщения, на которое ставится реакция. По умолчанию — {{USER_MESSAGE_ID}} |
| Список реакций | Сетка из 73 emoji-реакций Telegram — выберите допустимые для ИИ |
| Сообщение пользователя | Текст для анализа; поддерживает {{переменные}} |
| Инструкция | Системный промпт; список разрешённых эмодзи добавляется автоматически |
| Модель | Модель Claude (по умолчанию "claude-sonnet-4-6"). В расширенных параметрах |
Результирующая переменная: {{result.selected_emoji}} — выбранное эмодзи (пусто, если ИИ не смог подобрать).
Google Sheets
Подключение
Поддерживаются два способа авторизации:
- OAuth2 — авторизация через Google-аккаунт. Создайте OAuth2-клиент в Google Cloud Console (тип: Веб-приложение), включите Google Sheets API и Google Drive API и добавьте URI перенаправления.
- Сервисный аккаунт — JSON-ключ сервисного аккаунта. После создания аккаунта откройте нужные таблицы и выдайте email сервисного аккаунта доступ (редактор).
Тип подключения выбирается при создании и затем неизменен. Чтобы сменить метод авторизации, создайте новое подключение.
Получить строку
Ищет строку в таблице Google Sheets по значению в указанном столбце.
| Параметр | Описание |
|---|---|
| ID или URL таблицы | Идентификатор Google Sheets |
| Название листа | Имя вкладки |
| Колонка для поиска | Заголовок столбца, по которому искать |
| Значение для поиска | Что искать; поддерживает {{переменные}} |
Имена переменных результата соответствуют заголовкам столбцов таблицы:
{{result.Email}} → значение столбца «Email» в найденной строке {{result.Имя}} → значение столбца «Имя» {{result.Телефон}} → значение столбца «Телефон»
Если строка не найдена — переменные будут пустыми.
Добавить строку
Добавляет новую строку в конец листа.
| Параметр | Описание |
|---|---|
| ID или URL таблицы | Идентификатор Google Sheets |
| Название листа | Имя вкладки |
| Колонки и значения | Список пар «Колонка → Значение»; поддерживает {{переменные}} |
Переменных не возвращает. Используйте для сохранения заявок, ответов пользователей, логов.
Добавить или обновить запись
Ищет строку по значению в указанном столбце. Если строка найдена — обновляет её. Если нет — добавляет новую строку в конец листа.
| Параметр | Описание |
|---|---|
| ID или URL таблицы | Идентификатор Google Sheets |
| Название листа | Имя вкладки |
| Колонка для поиска совпадения | Заголовок столбца, по которому определяется уникальность |
| Значение для поиска | Поддерживает {{переменные}} |
| Данные (маппинг) | Список пар «Колонка → Значение»; поддерживает {{переменные}} |
Переменных не возвращает.
Обновить запись
Находит строку по значению в указанном столбце и обновляет её данные.
| Параметр | Описание |
|---|---|
| ID или URL таблицы | Идентификатор Google Sheets |
| Название листа | Имя вкладки |
| Колонка для поиска | Заголовок столбца для поиска строки |
| Значение для поиска | Поддерживает {{переменные}} |
| Данные для обновления | Список пар «Колонка → Новое значение»; поддерживает {{переменные}} |
Если строка не найдена — обновление не производится. Переменных не возвращает.
Получить записи
Возвращает все строки листа, соответствующие заданным фильтрам.
| Параметр | Описание |
|---|---|
| ID или URL таблицы | Идентификатор Google Sheets |
| Название листа | Имя вкладки |
| Фильтры | Список условий «Колонка = Значение»; без фильтров возвращаются все строки |
| Комбинация фильтров | И — все условия; ИЛИ — хотя бы одно |
| Вернуть первую совпадающую строку (доп.) | Если включён — возвращает только первую найденную строку |
Результат при «Вернуть первую строку» = включён (как «Получить строку»):
""" {{result.НазваниеКолонки}} → значение колонки в найденной строке """
Результат при «Вернуть первую строку» = выключен:
| Переменная | Значение |
|---|---|
| {{result}} | JSON-массив всех найденных строк |
| {{result.count}} | Количество найденных строк |
Очистить лист
Удаляет содержимое ячеек, не удаляя сам лист.
| Параметр | Описание |
|---|---|
| ID или URL таблицы | Идентификатор Google Sheets |
| Название листа | Имя вкладки |
| Что очистить | Весь лист / Определённые строки / Определённые столбцы / Определённый диапазон |
| Начальная строка (доп.) | Для режима «Определённые строки» |
| Количество строк (доп.) | Для режима «Определённые строки» |
| Начальный столбец (доп.) | Для режима «Определённые столбцы» (например: A) |
| Количество столбцов (доп.) | Для режима «Определённые столбцы» |
| Диапазон (доп.) | Для режима «Определённый диапазон» (например: A2:C10) |
Переменных не возвращает.
Удалить строки или столбцы
Удаляет указанные строки или столбцы со сдвигом оставшихся.
| Параметр | Описание |
|---|---|
| ID или URL таблицы | Идентификатор Google Sheets |
| Название листа | Имя вкладки |
| Что удалить | Строки или Столбцы |
| Начальный номер | Номер первой строки/столбца (считая с 1); поддерживает {{переменные}} |
| Количество | Сколько строк/столбцов удалить; поддерживает {{переменные}} |
Переменных не возвращает.
Создать лист
Добавляет новую вкладку в существующую таблицу.
| Параметр | Описание |
|---|---|
| ID или URL таблицы | Идентификатор Google Sheets |
| Название нового листа | Имя вкладки; поддерживает {{переменные}} |
Переменных не возвращает.
Удалить лист
Удаляет вкладку из таблицы вместе со всеми данными.
| Параметр | Описание |
|---|---|
| ID или URL таблицы | Идентификатор Google Sheets |
| Название листа | Имя вкладки для удаления |
Переменных не возвращает.
Google Drive
Управление файлами, папками и общими дисками Google Drive прямо из бота.
Подключение
Поддерживаются два способа авторизации:
- OAuth2 — авторизация через Google-аккаунт. Создайте OAuth2-клиент в Google Cloud Console (тип: Веб-приложение), включите Google Drive API и добавьте URI перенаправления, показанный при создании подключения.
- Сервисный аккаунт — JSON-ключ сервисного аккаунта. После создания аккаунта выдайте его email доступ к нужным папкам или файлам Google Drive.
Тип подключения выбирается при создании и затем неизменен. Чтобы сменить метод авторизации, создайте новое подключение.
Действия с файлами
Копировать файл
| Параметр | Описание |
|---|---|
| Файл | Выберите из списка или укажите ID |
| Новое имя | Имя копии; оставьте пустым, чтобы сохранить оригинальное. Поддерживает {{переменные}} |
| Папка назначения (доп.) | Папка для копии; если не указана — копия создаётся в той же папке |
Результирующие переменные (при префиксе result):
| Переменная | Значение |
|---|---|
| {{result.file_id}} | ID созданной копии |
| {{result.name}} | Имя копии |
| {{result.webViewLink}} | Ссылка на файл в Google Drive |
Создать файл из текста
Создаёт текстовый файл из содержимого переменной.
| Параметр | Описание |
|---|---|
| Имя файла | Поддерживает {{переменные}} |
| Содержимое | Текст файла; поддерживает {{переменные}} |
| Тип файла | Текст (.txt), CSV, HTML, JSON |
| Папка (доп.) | Папка для сохранения файла |
Результирующие переменные — те же, что у «Копировать файл» (file_id, name, webViewLink).
Удалить файл
| Параметр | Описание |
|---|---|
| Файл | Выберите из списка или укажите ID |
Переменных не возвращает.
Скачать файл
Скачивает файл с Google Drive и сохраняет его для дальнейшего использования.
| Параметр | Описание |
|---|---|
| Файл | Выберите из списка или укажите ID |
| Формат экспорта (доп.) | Для Google Docs/Sheets: PDF, DOCX, XLSX, TXT, CSV. Оставьте «Авто» для обычных файлов |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.file_url}} | URL скачанного файла |
| {{result.name}} | Имя файла |
| {{result.mime_type}} | MIME-тип |
| {{result.size}} | Размер в байтах |
Переместить файл
| Параметр | Описание |
|---|---|
| Файл | Файл для перемещения |
| Папка назначения | Папка, в которую переместить файл |
Результирующие переменные: {{result.file_id}}, {{result.name}}.
Поделиться файлом
Предоставляет доступ к файлу пользователю, группе, домену или всем.
| Параметр | Описание |
|---|---|
| Файл | Файл, к которому предоставляется доступ |
| Роль | Читатель / Комментатор / Редактор |
| Тип | Пользователь / Группа / Домен / Все |
| Email-адрес | Для типов «Пользователь» и «Группа». Поддерживает {{переменные}} |
| Отправить уведомление | Отправить email-уведомление получателю |
Результирующие переменные: {{result.permission_id}}, {{result.role}}, {{result.type}}.
Обновить файл
| Параметр | Описание |
|---|---|
| Файл | Файл для обновления |
| Новое имя | Поддерживает {{переменные}} |
Результирующие переменные: {{result.file_id}}, {{result.name}}, {{result.mimeType}}.
Загрузить файл
Загружает файл из указанного URL в Google Drive.
| Параметр | Описание |
|---|---|
| URL файла | Ссылка на файл; поддерживает {{переменные}}. Для Telegram-файлов используйте file_url из переменных блока «Ввод данных» |
| Имя файла | Определяется из URL автоматически, если не указано. Поддерживает {{переменные}} |
| Папка (доп.) | Папка назначения |
| ID общего диска (доп.) | Загрузить в общий диск (Shared Drive). Поддерживает {{переменные}} |
Если URL начинается с адреса локального Telegram Bot API — файл читается с сервера напрямую, без HTTP-загрузки.
Результирующие переменные: {{result.file_id}}, {{result.name}}, {{result.webViewLink}}, {{result.mimeType}}.
Поиск файлов и папок
Найти файлы и папки
Выполняет поиск по Google Drive с использованием синтаксиса Drive Query Language.
| Параметр | Описание |
|---|---|
| Поисковый запрос | Например: "name contains 'отчёт'" или "mimeType = 'application/pdf'". Поддерживает {{переменные}} |
| Максимум результатов (доп.) | До 1000, по умолчанию 50 |
| ID общего диска (доп.) | Ограничить поиск конкретным общим диском. Поддерживает {{переменные}} |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.files}} | Массив файлов (id, name, mimeType, size, webViewLink) |
| {{result.count}} | Количество найденных элементов |
Действия с папками
Создать папку
| Параметр | Описание |
|---|---|
| Название папки | Поддерживает {{переменные}} |
| Родительская папка (доп.) | Папка, внутри которой создаётся новая |
| ID общего диска (доп.) | Создать в общем диске |
Результирующие переменные: {{result.folder_id}}, {{result.name}}, {{result.webViewLink}}.
Cloudflare R2
Cloudflare R2 — S3-совместимое объектное хранилище. Подходит для хранения файлов с прямым доступом по URL.
Подключение
- Откройте Cloudflare Dashboard → R2 Object Storage → ваш бакет → вкладка Settings.
- Найдите поле S3 API — оно выглядит как "https://<account_id>.r2.cloudflarestorage.com/
". Часть "<account_id>" — это ваш Account ID. - Перейдите в R2 → Manage R2 API Tokens → Create API Token.
- Выберите права Object Read & Write (или ограничьте конкретным бакетом), сохраните.
- Скопируйте Access Key ID и Secret Access Key.
Вставьте JSON в поле подключения:
"""json { "account_id": "abc123...", "access_key_id": "...", "secret_access_key": "...", "bucket_name": "my-bucket", "public_url": "https://pub-xxx.r2.dev" } """
"public_url" — необязательное поле. Нужно для получения прямых ссылок на файлы после загрузки. Где взять:
- Public Development URL (для тестов): Settings бакета → раздел Public Development URL → нажмите Enable. После включения скопируйте появившийся URL вида "https://pub-xxx.r2.dev".
- Кастомный домен (для продакшна): Settings → Custom Domains → Add.
Если ни то ни другое не настроено — оставьте поле пустым; "{{result.public_url}}" будет пустой строкой.
Загрузить файл
Загружает файл в R2 по URL или из внутреннего хранилища бота.
| Параметр | Описание |
|---|---|
| URL файла | Прямая ссылка на файл. Поддерживает {{переменные}}, в т.ч. "{{result.file_url}}" из предыдущих блоков |
| Ключ объекта | Путь и имя файла внутри бакета, например "uploads/{{user.id}}/photo.jpg". Поддерживает {{переменные}} |
| MIME-тип (доп.) | Если не указан — определяется автоматически по содержимому файла |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.key}} | Ключ сохранённого объекта в бакете |
| {{result.public_url}} | Прямая ссылка для скачивания (если задан "public_url" в подключении) |
| {{result.size}} | Размер файла в байтах |
Удалить файл
| Параметр | Описание |
|---|---|
| Ключ объекта | Путь к файлу в бакете. Поддерживает {{переменные}} |
Операция не возвращает результат.
Список файлов
Возвращает список объектов в бакете.
| Параметр | Описание |
|---|---|
| Префикс (папка) | Фильтрует файлы по началу ключа, например "uploads/photos/". Необязательно |
| Максимум файлов | От 1 до 1000. По умолчанию 100 |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.files}} | Массив объектов: "key", "size", "last_modified", "public_url" |
| {{result.count}} | Количество найденных файлов |
Скопировать файл
Копирует объект внутри бакета без повторной загрузки.
| Параметр | Описание |
|---|---|
| Исходный ключ | Ключ исходного файла в бакете |
| Ключ назначения | Ключ нового файла-копии |
Результирующие переменные: {{result.key}}, {{result.public_url}}.
Информация о файле
Возвращает метаданные объекта (без скачивания содержимого).
| Параметр | Описание |
|---|---|
| Ключ объекта | Путь к файлу в бакете |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.exists}} | "1" — файл существует, "0" — не найден |
| {{result.size}} | Размер в байтах |
| {{result.content_type}} | MIME-тип файла |
| {{result.last_modified}} | Дата последнего изменения |
Удалить папку
| Параметр | Описание |
|---|---|
| Папка | Папка для удаления (удаляется вместе со всем содержимым) |
Переменных не возвращает.
Поделиться папкой
Аналогично «Поделиться файлом» — те же параметры и результат, только для папки.
Действия с общими дисками
Создать общий диск
| Параметр | Описание |
|---|---|
| Название диска | Поддерживает {{переменные}} |
Результирующие переменные: {{result.drive_id}}, {{result.name}}.
Удалить общий диск
| Параметр | Описание |
|---|---|
| ID общего диска | Поддерживает {{переменные}} |
Переменных не возвращает.
Получить общий диск
| Параметр | Описание |
|---|---|
| ID общего диска | Поддерживает {{переменные}} |
Результирующие переменные: {{result.drive_id}}, {{result.name}}, {{result.created_time}}.
Список общих дисков
| Параметр | Описание |
|---|---|
| Максимум результатов (доп.) | До 100, по умолчанию 50 |
Результирующие переменные: {{result.drives}} — массив дисков · {{result.count}} — количество.
Обновить общий диск
| Параметр | Описание |
|---|---|
| ID общего диска | Поддерживает {{переменные}} |
| Новое название | Поддерживает {{переменные}} |
Результирующие переменные: {{result.drive_id}}, {{result.name}}.
Google Calendar
Управление событиями в Google Calendar: создание, получение, обновление, удаление и проверка доступности.
Подключение
Поддерживаются два способа авторизации:
- OAuth2 — авторизация через Google-аккаунт. Необходимо создать OAuth2-клиент в Google Cloud Console (тип: Веб-приложение), включить Google Calendar API и добавить URI перенаправления.
- Сервисный аккаунт — JSON-ключ сервисного аккаунта. После создания аккаунта поделитесь нужными календарями с email сервисного аккаунта в настройках самого Calendar.
Создать событие
| Параметр | Описание |
|---|---|
| Календарь | Выберите из списка или укажите ID (primary — основной) |
| Название события | Текст заголовка; поддерживает {{переменные}} |
| Весь день | Да — событие на весь день (формат даты YYYY-MM-DD); Нет — с временем (RFC3339) |
| Начало | Дата и время начала |
| Конец | Дата и время окончания |
Дополнительные параметры (раздел «Дополнительные»):
| Параметр | Описание |
|---|---|
| Описание | Текст описания события |
| Место проведения | Адрес или название места |
| Участники | Email-адреса через запятую |
| Цвет события | Один из 11 цветов Google Calendar |
| Видимость | По умолчанию / Публичное / Приватное / Конфиденциальное |
| Статус события | Подтверждено / Предварительно / Отменено |
| Гости могут приглашать других | Да / Нет |
| Гости могут изменять событие | Да / Нет |
| Гости видят других участников | Да / Нет |
| Отправлять уведомления | Всем / Только внешним / Никому |
| Использовать напоминания по умолчанию | Да / Нет |
| ID события | Пользовательский идентификатор (генерируется автоматически, если не указан) |
Результирующие переменные (при префиксе result):
| Переменная | Значение |
|---|---|
| {{result.id}} | ID созданного события |
| {{result.summary}} | Название события |
| {{result.status}} | Статус (confirmed, tentative) |
| {{result.htmlLink}} | Ссылка на событие в Google Calendar |
| {{result.start}} | Время начала |
| {{result.end}} | Время окончания |
Удалить событие
| Параметр | Описание |
|---|---|
| Календарь | ID календаря |
| ID события | Идентификатор события ({{result.id}} из предыдущей операции) |
| Отправлять уведомления | (advanced) Всем / Только внешним / Никому |
Переменных не возвращает.
Получить событие
| Параметр | Описание |
|---|---|
| Календарь | ID календаря |
| ID события | Идентификатор события |
| Временная зона | (advanced) IANA timezone, например Europe/Moscow |
| Макс. участников | (advanced) Ограничение числа участников в ответе |
Результирующие переменные (при префиксе result):
| Переменная | Значение |
|---|---|
| {{result.id}} | ID события |
| {{result.summary}} | Название |
| {{result.status}} | Статус |
| {{result.description}} | Описание |
| {{result.location}} | Место |
| {{result.start}} | Начало |
| {{result.end}} | Конец |
| {{result.htmlLink}} | Ссылка |
| {{result.creator}} | Email создателя |
| {{result.organizer}} | Email организатора |
Получить события
| Параметр | Описание |
|---|---|
| Календарь | ID календаря |
| Начало диапазона | (advanced) timeMin — RFC3339 |
| Конец диапазона | (advanced) timeMax — RFC3339 |
| Поиск по тексту | (advanced) Поиск по названию и описанию |
| Макс. результатов | (advanced) По умолчанию 250, максимум 2500 |
| Сортировка | (advanced) По времени начала / По дате изменения |
| Разворачивать повторяющиеся | (advanced) Требуется для сортировки по startTime |
| Показывать удалённые | (advanced) |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.events}} | Массив событий (каждое — объект с id, summary, start, end и др.) |
| {{result.count}} | Количество найденных событий |
Используйте {{result.count}} в блоке «Условие» для проверки наличия событий.
Обновить событие
Обязательные параметры: Календарь и ID события. Все остальные поля (название, время, описание и т.д.) опциональны — обновляются только те, что указаны.
Используйте «Дополнительные» (advanced) параметры — там доступны все те же поля, что и при создании события.
Результирующие переменные — те же, что у «Создать событие» (id, summary, status, htmlLink, start, end).
Доступность в календаре
Проверяет, свободен ли указанный временной диапазон в календаре (использует Google Calendar FreeBusy API).
| Параметр | Описание |
|---|---|
| Календарь | ID календаря |
| Начало диапазона | RFC3339 дата-время начала проверяемого периода |
| Конец диапазона | RFC3339 дата-время конца проверяемого периода |
| Временная зона | (advanced) IANA timezone |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.is_available}} | true если период свободен, false если есть занятые слоты |
| {{result.busy_periods}} | Массив занятых интервалов [{ "start": "...", "end": "..." }] |
Редактирование сообщения в блоке «Текст»
В блоке «Текст» в разделе «Дополнительные» доступна опция «Редактировать сообщение».
При её включении вместо отправки нового сообщения бот редактирует существующее — заменяет его текст на содержимое блока.
| Параметр | Описание |
|---|---|
| Редактировать сообщение | Включить режим редактирования вместо отправки |
| ID сообщения | ID сообщения для редактирования. Укажите число или подставьте переменную, например "{{message_id}}" |
Типичное применение — связка с предварительным сообщением ИИ:
- Блок «Интеграция» (OpenAI / Claude) → включить «Выводить предварительное сообщение» → переменная для ID, например "message_id".
- Пока ИИ генерирует ответ, пользователь видит заглушку.
- Следующий блок «Текст» с текстом ответа "{{result.text}}" → «Дополнительные» → «Редактировать сообщение» → "{{message_id}}".
- Бот редактирует предварительное сообщение: заглушка заменяется готовым ответом.
Если переменная пуста или указан несуществующий ID — блок отправит сообщение как обычный текст.
ElevenLabs
ElevenLabs — платформа для работы с голосом на основе ИИ: высококачественная озвучка текста, распознавание речи, изменение голоса, клонирование голоса и генерация звуковых эффектов.
Подключение
- Зарегистрируйтесь на elevenlabs.io.
- Перейдите в Settings → API Keys → нажмите Create API Key.
- Скопируйте созданный ключ и вставьте в поле подключения.
- Нажмите «Проверить» — система проверит доступ к API.
Бесплатный план ElevenLabs имеет лимит символов в месяц. Клонирование голоса требует платного плана Creator или выше.
Озвучить текст (Text-to-Speech)
Преобразует текст в аудиофайл с использованием выбранного голоса.
| Параметр | Описание |
|---|---|
| Голос | Выберите голос из списка аккаунта или укажите voice_id вручную |
| Текст | Текст для озвучки; поддерживает {{переменные}} |
Дополнительные параметры:
| Параметр | Описание |
|---|---|
| Модель | Multilingual v2 (рекомендуется для русского), Flash v2.5, Turbo v2.5, v3 |
| Формат аудио | MP3 128 kbps (рекомендуется), MP3 64 kbps, PCM, μ-law |
| Стабильность (0–1) | Ниже — эмоциональнее и динамичнее; выше — монотоннее, но стабильнее |
| Усиление сходства (0–1) | Насколько близко ИИ копирует оригинальный голос |
| Преувеличение стиля (0–1) | Усиливает манеру речи; рекомендуется оставлять 0 для естественного звука |
| Скорость речи | 1.0 — норма; меньше — медленнее, больше — быстрее |
| Усиление диктора | Делает голос более насыщенным (требует чуть больше ресурсов) |
| Seed | Фиксирует генерацию для воспроизводимости результата |
Результирующие переменные (при префиксе result):
| Переменная | Значение |
|---|---|
| {{result.url}} | URL аудиофайла — передайте в блок «Аудио» |
| {{result.character_count}} | Количество использованных символов |
| {{result.request_id}} | ID запроса |
Важно: Ссылка на аудиофайл доступна в течение 24 часов, после чего удаляется автоматически.
Типичный сценарий — бот-диктор:
- Блок «Интеграция» → ElevenLabs → Озвучить текст → выбрать голос → текст "{{news_text}}".
- Следующий блок «Аудио» → в поле «file_id или URL» указать "{{result.url}}".
- Бот отправляет озвученную новость как аудиосообщение.
Распознать речь (Speech-to-Text)
Преобразует голосовое сообщение или аудиофайл в текст (модели серии Scribe).
| Параметр | Описание |
|---|---|
| file_id аудио | Telegram file_id голосового/аудио сообщения; поддерживает {{переменные}} |
| Модель | Scribe v2 (рекомендуется), Scribe v1 |
| Язык (ISO 639-1) | Например: ru, en, de. Оставьте пустым для автоопределения |
Дополнительные параметры:
| Параметр | Описание |
|---|---|
| Разделить по спикерам | Диаризация: помечает реплики «Спикер 1», «Спикер 2» |
| Очистить текст от слов-паразитов | Убирает «э-э-э», «ну», повторы и ложные старты |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.text}} | Распознанный текст |
| {{result.language_code}} | Определённый язык |
| {{result.transcription_id}} | ID транскрипции |
Типичный сценарий — голосовой ассистент:
- Блок «Ввод данных» → сохраняет голосовое в переменную "voice_input".
- Блок «Интеграция» → Распознать речь → "file_id: {{voice_input}}" → "{{result.text}}".
- Блок «Интеграция» → OpenAI / ChatGPT → "{{result.text}}" → ответ "{{ai.text}}".
- Блок «Текст» → "{{ai.text}}".
Изменить голос (Speech-to-Speech)
Заменяет голос в аудиозаписи, сохраняя все интонации и эмоции оригинала.
| Параметр | Описание |
|---|---|
| Целевой голос | Голос, на который заменяется оригинальный |
| file_id аудио | Telegram file_id голосового/аудио сообщения; поддерживает {{переменные}} |
Дополнительные параметры: Модель, Формат аудио, Стабильность, Усиление сходства.
Результирующие переменные: {{result.url}} — URL аудиофайла · {{result.request_id}}.
Важно: Ссылка на аудиофайл доступна в течение 24 часов, после чего удаляется автоматически.
Сгенерировать звуковой эффект
Генерирует аудио по текстовому описанию: природные звуки, шумы, технические звуки.
| Параметр | Описание |
|---|---|
| Описание звука | Текст описания; поддерживает {{переменные}} |
| Длительность (сек.) | Желаемая длительность звука (необязательно) |
Дополнительные параметры: Влияние промпта (0–1), Формат аудио.
Результирующие переменные: {{result.url}} — URL аудиофайла.
Важно: Ссылка на аудиофайл доступна в течение 24 часов, после чего удаляется автоматически.
Музыка к видео (Video-to-Music)
Генерирует музыкальный саундтрек под видеофайл — автоматически подбирает темп, настроение и инструментовку.
| Параметр | Описание |
|---|---|
| file_id видео | Telegram file_id видеосообщения; поддерживает {{переменные}} |
| Описание музыки | Необязательное текстовое направление стиля; поддерживает {{переменные}} |
Дополнительные параметры: Формат аудио.
Результирующие переменные: {{result.url}} — URL аудиофайла с музыкой.
Важно: Ссылка на аудиофайл доступна в течение 24 часов, после чего удаляется автоматически.
Клонировать голос (Instant Voice Cloning)
Создаёт цифровую копию голоса по короткой аудиозаписи (от нескольких секунд до минуты). Клонированный голос сохраняется в аккаунте ElevenLabs и его можно использовать в операции «Озвучить текст».
| Параметр | Описание |
|---|---|
| Название голоса | Имя нового голоса в аккаунте ElevenLabs; поддерживает {{переменные}} |
| file_id аудио | Telegram file_id записи с нужным голосом; поддерживает {{переменные}} |
Дополнительные параметры: Описание голоса, Убрать фоновый шум.
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.voice_id}} | ID клонированного голоса — используйте в операции «Озвучить текст» |
| {{result.voice_name}} | Название голоса |
Типичный сценарий — персональный голос бота:
- Блок «Ввод данных» → пользователь отправляет голосовое → "voice_sample".
- Блок «Интеграция» → Клонировать голос → "name: Мой голос", "file_id: {{voice_sample}}" → "{{result.voice_id}}".
- Сохранить "{{result.voice_id}}" в базу данных.
- В следующих сценариях: блок «Интеграция» → Озвучить текст → "voice_id: {{saved_voice_id}}".
Клонирование голоса требует платного плана ElevenLabs Creator или выше.
Советы по работе с интеграциями
- Сохраняйте результаты интеграций в переменные с понятными именами: ai_answer, sheet_row.
- Используйте блок «Условие» после интеграции, чтобы проверить, нашла ли операция нужные данные.
- Тестируйте блок прямо в редакторе кнопкой «Тест» — это экономит время при разработке.
- При использовании памяти диалога с ИИ включайте «Генерировать названия диалога» — это помогает ориентироваться в истории переписки в будущих версиях панели.
- Для сложных сценариев с несколькими AI-блоками используйте «Переменная с ID диалога», чтобы каждый блок работал с нужным диалогом явно, а не по принципу «последний».
- Если бот обрабатывает конфиденциальные данные пользователей, включите «Шифровать данные» в настройках памяти диалога — сообщения будут сохранены в БД в зашифрованном виде.
Supabase
Supabase — open-source-альтернатива Firebase на базе PostgreSQL. Интеграция позволяет выполнять CRUD-операции с таблицами через Supabase REST API (PostgREST) прямо из сценария бота.
Подключение
- Откройте настройки вашего проекта: supabase.com/dashboard → ваш проект → Settings → API.
- Скопируйте Project URL из раздела Project URL.
- Скопируйте ключ service_role (secret) из раздела Project API keys.
- В диалоге подключения заполните два поля:
| Поле | Значение |
|---|---|
| URL проекта | "https://xxxx.supabase.co" |
| Service Role Key | "eyJ..." (секретный ключ) |
- Нажмите «Проверить подключение» — система выполнит запрос к API и подтвердит корректность данных.
- Сохраните подключение.
Важно: Используйте ключ "service_role" (secret), а не "anon". Это позволяет обходить Row Level Security и работать с данными в обход политик доступа. Храните ключ в безопасности.
Создать запись
Вставляет новую строку в таблицу.
| Параметр | Описание |
|---|---|
| Таблица | Название таблицы в БД; поддерживает {{переменные}} |
| Данные | Список пар «Колонка → Значение»; поддерживает {{переменные}} |
Результирующие переменные (при префиксе result):
| Переменная | Значение |
|---|---|
| {{result.id}} | ID созданной записи (и другие поля, возвращённые базой) |
| {{result.НазваниеКолонки}} | Значение любой возвращённой колонки |
Удалить запись
Удаляет строки, соответствующие условиям.
| Параметр | Описание |
|---|---|
| Таблица | Название таблицы; поддерживает {{переменные}} |
| Select Conditions | Условия отбора строк (поле, оператор, значение); поддерживает {{переменные}} |
| Must Match (доп.) | All — все условия (AND); Any — хотя бы одно (OR) |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result}} | Массив удалённых записей |
| {{result.count}} | Количество удалённых записей |
Получить запись
Получает первую строку, удовлетворяющую условиям.
| Параметр | Описание |
|---|---|
| Таблица | Название таблицы; поддерживает {{переменные}} |
| Select Conditions | Условия поиска; без условий вернётся первая строка |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result.id}} | ID найденной записи |
| {{result.НазваниеКолонки}} | Значение любой колонки найденной строки |
Если запись не найдена — переменные не устанавливаются.
Получить список записей
Возвращает массив строк, соответствующих фильтрам.
| Параметр | Описание |
|---|---|
| Таблица | Название таблицы; поддерживает {{переменные}} |
| Return All | Если включено — возвращаются все строки (игнорирует Limit) |
| Limit (доп.) | Максимум записей. По умолчанию 50; поддерживает {{переменные}} |
| Filters | Условия отбора (поле, оператор, значение); поддерживает {{переменные}} |
| Must Match (доп.) | All — AND; Any — OR |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result}} | Массив записей |
| {{result.count}} | Количество записей |
| {{result.0.НазваниеКолонки}} | Значение колонки в первой записи |
Используйте {{result}} с динамическими кнопками (тип «Динамические кнопки») или блоком «Условие» для проверки "{{result.count}}".
Обновить запись
Обновляет строки, соответствующие условиям.
| Параметр | Описание |
|---|---|
| Таблица | Название таблицы; поддерживает {{переменные}} |
| Select Conditions | Условия отбора строк для обновления; поддерживает {{переменные}} |
| Must Match | All — AND; Any — OR |
| Fields to Send | Список пар «Колонка → Новое значение»; поддерживает {{переменные}} |
Результирующие переменные:
| Переменная | Значение |
|---|---|
| {{result}} | Массив обновлённых записей |
| {{result.count}} | Количество обновлённых записей |
Операторы условий
В блоках с условиями (Select Conditions / Filters) поддерживаются следующие операторы:
| Оператор | Описание |
|---|---|
| "=" | Равно |
| "!=" | Не равно |
| "<" | Меньше |
| "<=" | Меньше или равно |
| ">" | Больше |
| ">=" | Больше или равно |
| "like" | Поиск по шаблону ("%текст%") |
| "ilike" | То же, без учёта регистра |
Пример: сохранение заявки пользователя
- Блок «Ввод данных» — имя → "user_name", телефон → "user_phone".
- Блок «Интеграция» → Supabase → Создать запись:
- Таблица: "leads"
- Данные: "name" → "{{user_name}}", "phone" → "{{user_phone}}", "chat_id" → "{{USER_ID}}"
- Переменная "{{result.id}}" — ID созданной заявки в Supabase.
Grok (xAI)
Grok — мощная языковая модель от компании xAI, предоставляющая возможности чат-ИИ, анализа изображений, генерации медиа и работы с аудио.
API Base URL: "https://api.x.ai/v1"
API ключ: Начинается с "xai-". Получить можно на console.x.ai.
Настройка подключения
В настройках интеграции введите API ключ в формате "xai-...".
Кнопка «Проверить соединение» отправит запрос к "/models" для проверки валидности ключа.
Операции
Отправить сообщение ("send_message")
Отправляет текстовый запрос языковой модели Grok и возвращает ответ.
Параметры:
| Параметр | Описание |
|---|---|
| Модель | ID модели (по умолчанию "grok-3") |
| Системный промпт | Контекст/инструкция для модели |
| Сообщение пользователя | Запрос к модели |
| Температура | Случайность ответа (0–2) |
| Макс. токенов | Ограничение длины ответа |
| История диалога | Переменная с историей для поддержания контекста |
| JSON-режим | Принудительный ответ в JSON-формате |
Результирующие переменные:
- "{prefix}.text" — текст ответа модели
- "{prefix}.model" — использованная модель
- "{prefix}.tokens_used" — количество потреблённых токенов
- "{prefix}.
" — поля JSON (если включён JSON-режим со схемой)
Анализировать изображение ("analyze_image")
Отправляет изображение модели для визуального анализа (Vision API).
Параметры:
| Параметр | Описание |
|---|---|
| Модель | ID модели с поддержкой Vision (напр. "grok-4.20-reasoning") |
| URL или file_id изображения | Telegram "file_id" или прямая ссылка |
| Вопрос | Что нужно узнать об изображении |
| Детализация | "auto", "low" или "high" |
| Макс. токенов | Ограничение длины ответа |
Результирующие переменные:
- "{prefix}.text" — ответ модели
- "{prefix}.model" — использованная модель
- "{prefix}.tokens_used" — количество потреблённых токенов
Создать изображение ("generate_image")
Генерирует изображение по текстовому описанию с помощью модели "grok-imagine-image".
Параметры:
| Параметр | Описание |
|---|---|
| Промпт | Описание изображения |
| Соотношение сторон | "auto", "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "2:1", "1:2" |
| Разрешение | "1k" (стандарт) или "2k" (высокое) |
| Количество | Число изображений (1–10) |
Результирующие переменные:
- "{prefix}.url" — URL сгенерированного изображения (временный)
- "{prefix}.file_id" — Telegram "file_id" первого изображения (стабильный)
- "{prefix}.file_ids" — массив Telegram "file_id" всех изображений
- "{prefix}.count" — количество сгенерированных изображений
- "{prefix}.{i}.file_id" — "file_id" каждого изображения по индексу
Примечание: URL изображений, возвращаемые xAI, являются временными. Блок автоматически загружает изображения в Telegram и сохраняет стабильный "file_id".
Реакция на сообщение ("react_to_message")
Анализирует сообщение пользователя с помощью ИИ и ставит подходящую эмодзи-реакцию в Telegram.
Параметры:
| Параметр | Описание |
|---|---|
| ID сообщения | Telegram "message_id" для реакции |
| Допустимые реакции | Список эмодзи, из которых ИИ выбирает |
| Сообщение пользователя | Текст для анализа |
| Модель | ID модели (по умолчанию "grok-3-mini") |
| Системный промпт | Дополнительные инструкции для выбора реакции |
Результирующие переменные:
- "{prefix}.selected_emoji" — выбранный эмодзи (или пустая строка, если ИИ решил не реагировать)
Создать видео ("generate_video")
Генерирует видеоролик по текстовому описанию с помощью модели "grok-imagine-video".
⚠️ Важно: Генерация видео занимает 1–5 минут (иногда до 10 минут). Блок выполняет асинхронный опрос API каждые 5 секунд. Убедитесь, что ваша очередь задач поддерживает длительное выполнение.
Параметры:
| Параметр | Описание |
|---|---|
| Промпт | Описание видео |
| Длительность | Продолжительность в секундах (1–15) |
| Соотношение сторон | "16:9", "9:16", "1:1" |
| Разрешение | "480p" или "720p" |
Результирующие переменные:
- "{prefix}.url" — URL готового видео (временный)
- "{prefix}.file_id" — Telegram "file_id" видео (стабильный)
- "{prefix}.duration" — продолжительность видео в секундах
- "{prefix}.model" — использованная модель
Расшифровать аудио ("transcribe_audio")
Конвертирует голосовое сообщение или аудиофайл из Telegram в текст (Speech-to-Text).
Параметры:
| Параметр | Описание |
|---|---|
| File ID аудио | Telegram "file_id" аудио- или голосового сообщения |
| Язык | ISO-код языка аудио (необязательно — для повышения точности) |
| Нормализация | Привести числа и аббревиатуры в текстовый вид |
Результирующие переменные:
- "{prefix}.text" — расшифрованный текст
- "{prefix}.language" — определённый язык
- "{prefix}.duration" — продолжительность аудио в секундах
Озвучить текст ("text_to_speech")
Синтезирует речь из текста и возвращает временный URL аудиофайла.
Параметры:
| Параметр | Описание |
|---|---|
| Текст | Текст для озвучивания |
| Голос | Один из: "eve" (энергичный), "ara" (тёплый), "rex" (профессиональный), "sal" (плавный), "leo" (авторитетный) |
| Язык | ISO-код языка (или "auto" для автоопределения) |
| Формат | Аудиоформат: "mp3", "wav", "pcm", "mulaw" |
Результирующие переменные:
- "{prefix}.url" — временный URL аудиофайла (действителен 24 часа)
Файл автоматически удаляется через 24 часа после генерации.
Получить список моделей ("list_models")
Получает актуальный список доступных моделей Grok.
Результирующие переменные:
- "{prefix}" — массив объектов с полями "id" и "created"
Примеры моделей
| Модель | Назначение |
|---|---|
| "grok-3" | Флагманская языковая модель — тексты, чат |
| "grok-3-mini" | Лёгкая и быстрая — короткие задачи, реакции |
| "grok-4.20-reasoning" | Vision + рассуждения — анализ изображений |
| "grok-imagine-image" | Генерация изображений |
| "grok-imagine-video" | Генерация видео |
Актуальный список доступен через операцию «Получить список моделей».
