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

Файлы и медиа

Загружайте файлы и управляйте ими из кода приложения. Каждый файл получает постоянный публичный URL.

Proyecta предоставляет Files API через SDK для программного управления файлами из кода вашего приложения.

В поле ввода чата можно вставлять изображения напрямую — вставьте скриншот или перетащите файл изображения на поле ввода. Поддерживаемые форматы: PNG, JPEG, WebP, GIF, AVIF. Максимальный размер: 10 МБ на изображение.

Вложения в чате являются частью сообщения, а не вашей библиотеки файлов. Для постоянного хранения используй SDK.

Каждое опубликованное приложение Proyecta имеет доступ к API файлового хранилища через Proyecta SDK. SDK поддерживает получение списка, загрузку по запросу и выгрузку файлов. Загруженные файлы получают постоянный публичный URL, на который можно ссылаться из приложения.

import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });
// List files (supports limit and starting_after for pagination)
const files = await proyecta.files.list();
// Fetch a single file by ID
const file = await proyecta.files.get('1234567890123456789');
console.log(file.url); // permanent public URL
// Upload a file (two-step)
// Step 1: create a placeholder and get a signed upload URL
const { id: fileId, upload_url } = await proyecta.files.create({
filename: 'avatar.png',
mime_type: 'image/png',
});
// Step 2: PUT the file bytes directly to the signed URL
await fetch(upload_url, {
method: 'PUT',
body: fileBytes,
headers: { 'Content-Type': 'image/png' },
});
// Step 3: finalize to get the permanent file record
const uploaded = await proyecta.files.finalize({ fileId });
console.log(uploaded.url); // permanent public URL, now populated

Каждый файл содержит следующие поля:

ПолеОписание
idУникальный идентификатор (числовая строка-снежинка)
urlПостоянный публичный URL (заполняется после шага finalize)
filenameОригинальное имя файла при загрузке
mime_typeimage/jpeg, application/pdf и т. д.
sizeРазмер в байтах
pathОпциональный путь к папке (например, /images/blog)
content_hashSHA-256 содержимого файла
metadataПроизвольные метаданные в формате ключ/значение
createdВременная метка создания в формате ISO 8601
updatedВременная метка последнего обновления в формате ISO 8601

Загрузка файлов настраивается через AI builder. Попроси ИИ реализовать нужный сценарий:

  • "Let users upload a profile photo and store it in Proyecta Files"
  • "Add an image gallery where signed-in users can upload and view their photos"
  • "Let me attach PDF invoices to orders"

ИИ встраивает логику загрузки в код твоего приложения с помощью двухшагового upload API из SDK и использует возвращённый публичный URL. Ты также можешь вызывать files.create() / files.finalize() напрямую из своего кода.

Публичны ли URL файлов?

Да. Любой файл, возвращённый Files API, имеет постоянный публичный URL. Не загружай то, что не хочешь сделать общедоступным.

Каков максимальный размер файла?

Ограничения на размер файла зависят от твоего тарифного плана. Вложения в чате ограничены 10 МБ на изображение.

Можно ли изменять размер или обрезать изображения через URL?

Трансформации изображений на лету (изменение размера, обрезка, конвертация формата) запланированы в roadmap.

  • Трансформации изображений через параметры URL (изменение размера, обрезка, конвертация формата)
  • Организация по папкам — создание папок и управление путями в панели
  • «Добавить в чат» прямо из строки файла, чтобы вставлять файлы из библиотеки в разговор с ИИ