Fichiers & Médias
Importez et gérez vos fichiers depuis le code de ton application. Chaque fichier reçoit une URL publique permanente.
Proyecta fournit une Files API via le SDK pour la gestion programmatique des fichiers depuis le code de ton application.
Pièces jointes dans le chat
Section intitulée « Pièces jointes dans le chat »Le champ de saisie du chat accepte les images directement — colle une capture d’écran ou fais glisser un fichier image dans le champ. Formats acceptés : PNG, JPEG, WebP, GIF, AVIF. Taille maximale : 10 Mo par image.
Les pièces jointes du chat font partie du message et non de ta bibliothèque de fichiers. Pour un stockage persistant, utilise le SDK.
La Files API (SDK)
Section intitulée « La Files API (SDK) »Chaque application Proyecta publiée a accès à une API de stockage de fichiers via le SDK Proyecta. Le SDK prend en charge les opérations de listage, de récupération et d’import de fichiers. Les fichiers importés reçoivent une URL publique permanente que tu peux référencer depuis ton application.
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 populatedChaque fichier contient les champs suivants :
| Champ | Description |
|---|---|
id | Identifiant unique (chaîne numérique de type snowflake) |
url | URL publique permanente (renseignée après l’étape de finalisation) |
filename | Nom d’origine du fichier au moment de l’import |
mime_type | image/jpeg, application/pdf, etc. |
size | Taille en octets |
path | Chemin de dossier optionnel (ex. /images/blog) |
content_hash | SHA-256 du contenu du fichier |
metadata | Métadonnées arbitraires sous forme de clés/valeurs |
created | Horodatage de création au format ISO 8601 |
updated | Horodatage de dernière modification au format ISO 8601 |
Comment les fichiers sont-ils importés dans mon application ?
Section intitulée « Comment les fichiers sont-ils importés dans mon application ? »Les imports de fichiers sont gérés via le builder IA. Demande à l’IA de construire le flux d’import pour toi :
"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"
L’IA intègre l’import dans le code de ton application en utilisant l’API d’import en deux étapes du SDK et référence l’URL publique retournée. Tu peux également appeler files.create() / files.finalize() directement depuis le code de ton application.
Les URLs des fichiers sont-elles publiques ?
Oui. Tout fichier retourné par la Files API possède une URL publique permanente. N’importe aucun fichier que tu ne souhaites pas exposer.
Quelle taille maximale peut avoir un fichier ?
Les limites par fichier dépendent de ton forfait. Les pièces jointes du chat sont limitées à 10 Mo par image.
Puis-je redimensionner ou recadrer des images via l’URL ?
Les transformations d’images à la volée (redimensionnement, recadrage, conversion de format) sont prévues dans la feuille de route.
Bientôt disponible
Section intitulée « Bientôt disponible »- Transformations d’images via des paramètres d’URL (redimensionnement, recadrage, conversion de format)
- Organisation en dossiers — créer et gérer des chemins de dossiers dans le panneau
- « Add to Chat » depuis une ligne de fichier, pour pouvoir glisser des ressources de la bibliothèque dans la conversation avec l’IA