Перейти к содержимому
falang.ruEN

Файлы

File — это небольшое значение-ссылка: id, name, size, mime и необязательный publicUrl — но никогда не сами байты. Байты хранятся в собственном объектном хранилище платформы; сценарий передаёт между узлами только ссылку, точно так же, как передаёт число или строку. Это не даёт работе с файлами раздувать историю выполнения сценария, которая должна оставаться небольшой — вложение на 50 МБ никогда не поместилось бы туда как значение, а его ссылка File помещается без проблем.

  • Медиа из Telegram. Фото, документ, голосовое сообщение, аудио или видео, приложенные к входящему сообщению, автоматически превращаются в File ещё до старта сценария — message.photo, message.document, message.voice, message.audio и message.video уже являются значениями File (или отсутствуют, если в сообщении нет медиа этого вида). Отдельный узел для «скачивания» не нужен.

  • Действие «Скачать файл». Загружает содержимое по любому URL и сохраняет его как File — здесь обычная ссылка превращается в файл, с которым может работать сценарий.

  • Действие «Вызвать AI (изображение)». Просит модель, совместимую с OpenAI, сгенерировать изображение по текстовому описанию и возвращает его как File.

  • HTTP-запрос, настроенный на возврат файла. У узла «HTTP-запрос» есть настройка «формат ответа»; при значении «файл» тело ответа сохраняется как File вместо разбора как текста или JSON — удобно для скачивания бинарных данных (PDF, изображение, архив) с любого API. Та же настройка позволяет передать File в качестве тела самого запроса — для загрузки файла в API, ожидающий сырые байты.

  • Ручная загрузка. Вкладка проекта Files (см. ниже) позволяет загрузить файл вручную — удобно, чтобы дать сценарию что-то на обработку во время тестирования, не дожидаясь реального триггера.

  • Действие «Создать файл из текста». Превращает строку, собранную сценарием (CSV, JSON-документ, отрендеренную HTML-страницу), в File, чтобы её можно было отправить дальше или скачать так же, как любой другой файл.

  • Прочитать как текст — действие «Прочитать файл как текст» загружает содержимое файла в строковую переменную, отказывая для файлов сверх настраиваемого размера (состояние сценария должно оставаться небольшим; крупные файлы предназначены для передачи между узлами, а не для хранения в переменной).

  • Отправить в Telegram — «Отправить файл» доставляет File в чат как фото, документ, видео, аудио или голосовое сообщение (тип определяется автоматически по mime либо выбирается явно).

  • Приложить к запросу AI — «Вызвать AI»/«AI Choice» принимают список вложений File (изображения и, если модель поддерживает, документы), чтобы модель «видела» их вместе с промптом.

  • Распознать речь — «Вызвать AI (распознавание)» превращает аудио File (например, голосовое сообщение из Telegram) в текст.

  • Удалить или заново получить по id («Информация о файле»), если сохранён только его id где-то ещё (строка в базе данных, см. интеграции с базами данных), а не полная ссылка.

По умолчанию File доступен только изнутри — из сценариев самого проекта и с вкладки Files, но никогда по голой ссылке, которую кто-то мог бы угадать или которой поделились. Действие «Опубликовать файл» включает публичную ссылку без авторизации (длинный неугадываемый токен, а не сам id файла) — по ней файл может открыть кто угодно; «Снять с публикации» выключает ссылку обратно, не удаляя сам файл. Удаление файла немедленно аннулирует любую ссылку на него. Это намеренно отделено от отправки файла в Telegram или вложения в запрос AI — оба этих сценария работают и без публикации, поскольку байты файла передаются напрямую, а не через ссылку, которую должна забирать третья сторона.

Каждый файл учитывается в двух ограничениях: максимальный размер одного файла и максимальный суммарный размер файлов проекта — загрузка сверх любого из них отклоняется. Файлы также истекают автоматически, если сценарий явно не попросил иначе: файл, созданный запуском на dev-стенде, по умолчанию удаляется через сутки, файл, доставленный Telegram в чат, — через неделю, а файл, созданный опубликованным (production) запуском, не истекает сам по себе никогда. Эти значения по умолчанию администратор может менять для конкретного пользователя (см. «Администрирование») — так развёртывание может повысить или понизить их для отдельной учётной записи, не трогая значения по умолчанию для всех остальных.

У каждого проекта есть вкладка Files (рядом с Runs), где перечислено всё, что сценарий — или ручная загрузка — положил в хранилище: имя, размер, тип, кем создан, когда истекает и опубликован ли он. Отсюда можно скачать, удалить, загрузить новый файл или переключить публичную ссылку, а также увидеть, сколько квоты проекта уже занято.