Перейти до вмісту

Файли та медіа

Завантажуйте файли та керуйте ними з коду вашого застосунку. Кожен файл отримує постійну публічну 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Унікальний ідентифікатор (числовий рядок у форматі snowflake)
urlПостійна публічна URL-адреса (заповнюється після кроку finalize)
filenameОригінальна назва файлу під час завантаження
mime_typeimage/jpeg, application/pdf тощо
sizeРозмір у байтах
pathНеобов’язковий шлях до папки (наприклад, /images/blog)
content_hashSHA-256 вмісту файлу
metadataДовільні метадані у форматі ключ/значення
createdМітка часу створення у форматі ISO 8601
updatedМітка часу останнього оновлення у форматі ISO 8601

Як завантажити файли у мій застосунок?

Section titled “Як завантажити файли у мій застосунок?”

Завантаження файлів виконується через AI Builder. Попросіть AI налаштувати процес завантаження за вас:

  • "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"

AI підключає завантаження у коді вашого застосунку за допомогою двокрокового upload API з SDK та посилається на повернуту публічну URL-адресу. Ви також можете викликати files.create() / files.finalize() безпосередньо з власного коду застосунку.

Чи є URL-адреси файлів публічними?

Так. Будь-який файл, повернутий Files API, має постійну публічну URL-адресу. Не завантажуйте нічого, що не повинно бути у відкритому доступі.

Яким може бути максимальний розмір файлу?

Обмеження на розмір одного файлу залежать від вашого тарифного плану. Вкладення у чаті обмежені 10 МБ на зображення.

Чи можна змінювати розмір або обрізати зображення за URL-адресою?

Перетворення зображень на льоту (зміна розміру, обрізання, конвертація формату) заплановані в roadmap.

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