Файли та медіа
Завантажуйте файли та керуйте ними з коду вашого застосунку. Кожен файл отримує постійну публічну URL-адресу.
Proyecta надає Files API через SDK для програмного управління файлами з коду вашого застосунку.
Вкладення у чаті
Section titled “Вкладення у чаті”Поле введення чату приймає зображення безпосередньо — вставте скріншот або перетягніть файл зображення у поле. Підтримувані формати: PNG, JPEG, WebP, GIF, AVIF. Максимальний розмір: 10 МБ на зображення.
Вкладення у чаті є частиною повідомлення, а не вашої бібліотеки файлів. Для постійного зберігання використовуйте SDK.
Files API (SDK)
Section titled “Files API (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 IDconst 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 URLconst { 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 URLawait fetch(upload_url, { method: 'PUT', body: fileBytes, headers: { 'Content-Type': 'image/png' },});
// Step 3: finalize to get the permanent file recordconst uploaded = await proyecta.files.finalize({ fileId });console.log(uploaded.url); // permanent public URL, now populatedКожен файл містить такі поля:
| Поле | Опис |
|---|---|
id | Унікальний ідентифікатор (числовий рядок у форматі snowflake) |
url | Постійна публічна URL-адреса (заповнюється після кроку finalize) |
filename | Оригінальна назва файлу під час завантаження |
mime_type | image/jpeg, application/pdf тощо |
size | Розмір у байтах |
path | Необов’язковий шлях до папки (наприклад, /images/blog) |
content_hash | SHA-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() безпосередньо з власного коду застосунку.
Часті запитання
Section titled “Часті запитання”Чи є URL-адреси файлів публічними?
Так. Будь-який файл, повернутий Files API, має постійну публічну URL-адресу. Не завантажуйте нічого, що не повинно бути у відкритому доступі.
Яким може бути максимальний розмір файлу?
Обмеження на розмір одного файлу залежать від вашого тарифного плану. Вкладення у чаті обмежені 10 МБ на зображення.
Чи можна змінювати розмір або обрізати зображення за URL-адресою?
Перетворення зображень на льоту (зміна розміру, обрізання, конвертація формату) заплановані в roadmap.
Незабаром
Section titled “Незабаром”- Трансформації зображень за допомогою параметрів URL (зміна розміру, обрізання, конвертація формату)
- Організація папок — створення папок та керування їхніми шляхами у панелі
- «Додати до чату» з рядка файлу, щоб ресурси бібліотеки можна було додавати до розмови з AI