Przejdź do głównej zawartości

Pliki i multimedia

Przesyłaj pliki i zarządzaj nimi z poziomu kodu aplikacji. Każdy plik otrzymuje stały publiczny URL.

Proyecta udostępnia Files API przez SDK do programowego zarządzania plikami z poziomu kodu aplikacji.

Pole wprowadzania czatu akceptuje obrazy bezpośrednio — wklej zrzut ekranu lub przeciągnij plik graficzny na pole. Obsługiwane formaty: PNG, JPEG, WebP, GIF, AVIF. Maksymalny rozmiar: 10 MB na obraz.

Załączniki czatu są częścią wiadomości, a nie biblioteki plików. Do trwałego przechowywania używaj SDK.

Każda opublikowana aplikacja Proyecta ma dostęp do API przechowywania plików przez Proyecta SDK. SDK obsługuje listowanie, pobieranie i przesyłanie plików. Przesłane pliki otrzymują stały publiczny URL, do którego możesz odwoływać się w swojej aplikacji.

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

Każdy plik zawiera:

PoleOpis
idUnikalny identyfikator (numeryczny ciąg snowflake)
urlStały publiczny URL (wypełniany po kroku finalize)
filenameOryginalna nazwa pliku przy przesyłaniu
mime_typeimage/jpeg, application/pdf itp.
sizeRozmiar w bajtach
pathOpcjonalna ścieżka folderu (np. /images/blog)
content_hashSHA-256 zawartości pliku
metadataDowolne metadane w postaci klucz/wartość
createdZnacznik czasu utworzenia w formacie ISO 8601
updatedZnacznik czasu ostatniej aktualizacji w formacie ISO 8601

Przesyłanie plików odbywa się za pośrednictwem AI buildera. Poproś AI, żeby zbudowało dla ciebie przepływ przesyłania:

  • "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 podłącza przesyłanie w kodzie twojej aplikacji przy użyciu dwuetapowego upload API z SDK i odwołuje się do zwróconego publicznego URL. Możesz też wywoływać files.create() / files.finalize() bezpośrednio z własnego kodu aplikacji.

Czy URL-e plików są publiczne?

Tak. Każdy plik zwrócony przez Files API ma stały publiczny URL. Nie przesyłaj niczego, czego nie chcesz ujawniać.

Jak duży może być plik?

Limity na plik zależą od twojego planu. Załączniki czatu są ograniczone do 10 MB na obraz.

Czy mogę zmieniać rozmiar lub przycinać obrazy za pomocą URL?

Transformacje obrazów w locie (zmiana rozmiaru, przycinanie, konwersja formatu) są w planach rozwoju.

  • Transformacje obrazów za pomocą parametrów URL (zmiana rozmiaru, przycinanie, konwersja formatu)
  • Organizacja folderów — tworzenie ścieżek folderów i zarządzanie nimi w panelu
  • „Add to Chat” z poziomu wiersza pliku, dzięki czemu zasoby z biblioteki można wrzucać bezpośrednio do rozmowy z AI