2.6 KiB
2.6 KiB
Documentation API - 4NK IA Lecoffre.io
Vue d'ensemble
L'application 4NK IA Lecoffre.io communique uniquement avec le backend interne pour toutes les fonctionnalités (upload, extraction, analyse, contexte, conseil).
API Backend Principal
Base URL
http://localhost:8000 (développement)
Endpoints
Upload de document
POST /api/notary/upload
Content-Type: multipart/form-data
Body: FormData avec le fichier
Réponse attendue (champs utilisés par le front) :
{
"document_id": "doc_123456",
"mime_type": "application/pdf",
"functional_type": "CNI"
}
Mappage front en Document :
{
"id": "doc_123456",
"name": "acte_vente.pdf",
"mimeType": "application/pdf",
"functionalType": "CNI",
"size": 1024000,
"uploadDate": "<date locale>",
"status": "completed",
"previewUrl": "blob:..."
}
Extraction de données
GET /api/notary/documents/{documentId}
Analyse du document
GET /api/documents/{documentId}/analyze
Données contextuelles
GET /api/documents/{documentId}/context
Conseil IA
GET /api/documents/{documentId}/conseil
APIs Externes
Les APIs externes (Cadastre, Géorisques, Géofoncier, BODACC, Infogreffe) sont appelées côté backend uniquement. Aucun appel direct côté front.
Gestion d'erreur
Codes d'erreur HTTP
- 200 : Succès
- 400 : Requête malformée
- 404 : Ressource non trouvée
- 405 : Méthode non autorisée
- 500 : Erreur serveur interne
Erreurs de connexion
- ERR_NETWORK : Erreur de réseau
- ERR_CONNECTION_REFUSED : Connexion refusée
- ERR_TIMEOUT : Timeout de la requête
Configuration
Variables d'environnement
VITE_API_URL=http://localhost:8000
VITE_USE_OPENAI=false
VITE_OPENAI_API_KEY=
VITE_OPENAI_BASE_URL=https://api.openai.com/v1
VITE_OPENAI_MODEL=gpt-4o-mini
Mode OpenAI (fallback)
Quand VITE_USE_OPENAI=true, le frontend bascule sur un mode de secours basé sur OpenAI:
- Upload: simulé côté client (le fichier n’est pas envoyé à OpenAI)
- Extraction/Analyse/Conseil/Contexte: appels
chat.completionssurVITE_OPENAI_MODEL - Détection de type: heuristique simple côté client
Ce mode est utile pour démo/diagnostic quand le backend n’est pas disponible.
Configuration Axios
const apiClient = axios.create({
baseURL: BASE_URL,
timeout: 60000,
})
Authentification
Headers requis
Authorization: Bearer {token}
Content-Type: application/json
Rate Limiting
- Limites gérées par le backend