Documentation complète des endpoints d'upload de fichiers dans Devana.ai.
Base URL: https://api.devana.ai
L'API d'upload de Devana.ai permet de télécharger des fichiers dans le système pour :
L'endpoint supporte l'upload multiple (jusqu'à 5000 fichiers simultanément) et propose plusieurs modes de traitement incluant l'extraction asynchrone du contenu.
L'authentification est requise pour l'upload de fichiers dans des dossiers. Pour les attachements de conversation, l'authentification est optionnelle.
Utilisez un token JWT dans le header Authorization:
Authorization: Bearer YOUR_JWT_TOKEN
Le token peut être obtenu via l'endpoint de connexion /v1/auth/login.
Endpoint multi-fonctions pour l'upload de fichiers avec support de:
POST /api/upload
| Paramètre | Type | Requis | Description |
|---|---|---|---|
file | File[] | Oui | Fichier(s) à uploader. Utiliser le nom de champ "file" pour tous les fichiers. Maximum 5000 fichiers. |
path_0, path_1, ... | String | Non | Chemin spécifique pour chaque fichier (indexé). Permet d'organiser les fichiers dans une hiérarchie virtuelle. |
| Header | Type | Requis | Description |
|---|---|---|---|
Authorization | String | Conditionnel | Token Bearer JWT. Requis pour l'upload dans des dossiers. |
folder | String | Non | ID du dossier de destination. Active les vérifications de permissions. |
conversation | String | Non | ID de la conversation pour attacher les fichiers. |
path | String | Non | Chemin par défaut pour tous les fichiers (si pas de path spécifique). |
wait | Boolean | Non | Si true, attend la fin de l'extraction avant de répondre. Défaut: false. |
disableFastMode | Boolean | Non | Si true, désactive le mode Fast. Défaut: false. |
{
"success": true,
"data": {
"message": "Files uploaded successfully",
"ids": ["file-id-1", "file-id-2", "file-id-3"]
}
}
Les IDs retournés correspondent aux identifiants uniques des fichiers créés dans la base de données. Ils peuvent être utilisés pour :
| Code | Message | Description |
|---|---|---|
400 | "No files uploaded" | Aucun fichier n'a été fourni dans la requête |
400 | "Too many files, max 5000" | Dépassement de la limite de 5000 fichiers |
400 | "Invalid files uploaded" | Format de fichier invalide ou corrompu |
401 | "Unauthorized" | Token manquant ou invalide pour l'opération demandée |
401 | "You are not authorized to perform this action" | Permissions insuffisantes sur le dossier ou l'agent |
413 | File too large | Fichier dépassant la limite de 10GB |
curl -X POST https://api.devana.ai/api/upload \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-F "file=@document.pdf"
curl -X POST https://api.devana.ai/api/upload \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "folder: folder-uuid-123" \
-F "file=@document1.pdf" \
-F "file=@document2.docx" \
-F "file=@spreadsheet.xlsx"
curl -X POST https://api.devana.ai/api/upload \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "folder: folder-uuid-123" \
-F "file=@rapport.pdf" \
-F "path_0=rapports/2024/" \
-F "file=@facture.pdf" \
-F "path_1=factures/janvier/"
curl -X POST https://api.devana.ai/api/upload \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "folder: folder-uuid-123" \
-H "wait: true" \
-F "file=@document.pdf"
curl -X POST https://api.devana.ai/api/upload \
-H "conversation: conv-uuid-456" \
-F "file=@image.png"
| Limite | Valeur |
|---|---|
| Taille maximale par fichier | 10 GB |
| Nombre maximum de fichiers par requête | 5000 |
| Timeout de traitement (mode synchrone) | 5 minutes |
Devana.ai supporte plus de 50 formats de fichiers incluant :
Pour la liste complète, consultez Formats supportés.
Le Mode Fast est automatiquement activé pour les attachements de conversation (quand aucun folder n'est spécifié) et peut être désactivé via le header disableFastMode.
curl -X POST https://api.devana.ai/api/upload \
-H "disableFastMode: true" \
-F "file=@large-document.pdf"
Pour créer une structure de dossiers virtuels lors de l'upload :
# Structure créée :
# /2024/
# ├── Q1/
# │ ├── rapport-q1.pdf
# │ └── resultats-q1.xlsx
# └── Q2/
# └── rapport-q2.pdf
curl -X POST https://api.devana.ai/api/upload \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "folder: folder-uuid-123" \
-F "file=@rapport-q1.pdf" \
-F "path_0=2024/Q1/" \
-F "file=@resultats-q1.xlsx" \
-F "path_1=2024/Q1/" \
-F "file=@rapport-q2.pdf" \
-F "path_2=2024/Q2/"
L'endpoint vérifie automatiquement les permissions selon le contexte :
Dossiers de base (isBase=true) :
Dossiers standards :
Le système détecte automatiquement les fichiers dupliqués basés sur :
Par défaut, l'extraction du contenu est asynchrone. Le système :
Pour forcer l'attente :
curl -X POST https://api.devana.ai/api/upload \
-H "wait: true" \
-F "file=@document.pdf"
Si une erreur survient lors de l'extraction :
ERRORerrorMessagePour les uploads dans des dossiers, un événement WebSocket est publié :
// Événement: VIRTUAL_FOLDERS_UPDATED
{
"virtualFoldersUpdated": {
"folderId": "folder-uuid-123",
"folders": null // Le client doit recharger la structure
}
}
Pour toute question ou problème concernant l'API d'upload :