Documentation — Analyse de documents

Upload, analyse et gestion de documents PDF. Métadonnées et statut d'analyse. Intégration avec le module IA (contexte assistant).

Les modules Blueprint Modular (Auth, Wiki, IA, Documents, etc.) font partie de l'application Next.js. Il n'y a pas de package séparé par module (pas de pip install blueprint-modular-documents ni npm install blueprint-modular-documents) : on installe l'application une fois, puis on configure les variables d'environnement et les services (base PostgreSQL, Ollama ou Anthropic pour l'IA) selon les modules utilisés. Cette documentation décrit comment installer le module Analyse de documents et toutes ses dépendances (Node, Prisma, extraction PDF, serveur IA), comment il fonctionne, comment le paramétrer (variables d'environnement, formats, taille max) et comment l'utiliser (interface ou API).

Comment fonctionne le module Analyse de documents

Le module permet d'uploader des documents PDF, de les analyser automatiquement via l'IA pour extraire fournisseur, client, dates (contrat, signature, échéance), résumé, points clés et engagements. Le résultat est stocké en base (table Document) ; le fichier est enregistré sur disque dans uploads/[userId]/[docId].pdf. L'analyse est lancée juste après l'upload (synchrone) : extraction du texte (pdf-parse), puis appel au modèle (Claude si ANTHROPIC_API_KEY est défini, sinon Ollama / Qwen). Le module Documents est enregistré dans le registry de l'assistant IA : les métadonnées des documents peuvent être injectées dans le contexte des conversations.

  • Statut : pending → processing → done (ou error). La liste se rafraîchit tant qu'un document est en cours.
  • Alertes échéance : l'UI affiche les documents dont la date de résiliation est dans les 30 prochains jours.

Installation et dépendances

Le module fait partie de l'application Next.js. Dépendances Node incluses dans le projet : pdf-parse pour l'extraction de texte PDF. Pour l'analyse IA (extraction fournisseur, client, dates, résumé, points clés) : soit ANTHROPIC_API_KEY (Claude), soit un serveur Ollama (Qwen) configuré via AI_SERVER_URL et AI_MODEL.

Résumé des commandes (installer le module et toutes les dépendances)

# 1. Dépendances Node et base PostgreSQL
npm install
npx prisma generate --schema=prisma/schema.prisma
npx prisma migrate deploy

# 2. Analyse IA — au choix :
# Option A : Claude (définir ANTHROPIC_API_KEY dans .env)
# Option B : Ollama (local ou VPS)
ollama serve
ollama pull qwen3:8b

# 3. Lancer l'app
npm run dev

# 4. Ouvrir le module Documents
# http://localhost:3000/modules/documents

Définir DATABASE_URL dans .env. Pour l'analyse IA : ANTHROPIC_API_KEY (Claude) ou AI_SERVER_URL + AI_MODEL (Ollama). Sans IA, l'upload fonctionne mais l'analyse restera en attente ou erreur.

Analyse IA : Claude ou Ollama

Par défaut, l'analyse utilise Claude (Anthropic) si ANTHROPIC_API_KEY est défini. Sinon, fallback sur Ollama (Qwen). Pour utiliser uniquement Ollama, ne pas définir ANTHROPIC_API_KEY et lancer Ollama :

# Option A — Claude (Anthropic)
# Dans .env : ANTHROPIC_API_KEY=sk-...

# Option B — Ollama (local / VPS)
ollama serve
ollama pull qwen3:8b
# .env : AI_SERVER_URL=http://localhost:11434, AI_MODEL=qwen3:8b

Où sont sauvegardés les documents

Base de données : table Document (id, filename, mimeType, filePath, uploadedById, analysisStatus, supplier, client, contractDate, terminationDate, summary, keyPoints, commitments, rawText, createdAt). Fichiers : uploads/[userId]/[docId].pdf. S'assurer que le répertoire uploads/ est accessible en écriture.

Comment charger et utiliser le module

Charger : le module est intégré à l'app ; après npm install et prisma migrate deploy, il est disponible. Aucun import ou script supplémentaire. Utiliser : depuis l'interface, ouvrez /modules/documents pour uploader des PDF et consulter la liste ; depuis du code, appelez POST /api/documents (FormData avec file) pour uploader, GET /api/documents pour lister. Le module Documents est enregistré dans le registry de l'assistant IA : en cochant « Documents » dans le panneau de contexte, les métadonnées des documents sont injectées dans le contexte des conversations.

Variables d'environnement et paramétrage

  • DATABASE_URL — Connexion PostgreSQL (obligatoire).
  • ANTHROPIC_API_KEY — Clé API Anthropic pour l'analyse via Claude (optionnel ; si absent, fallback Ollama).
  • AI_SERVER_URL, AI_MODEL — Serveur Ollama pour l'analyse (ex. http://localhost:11434, qwen3:8b).
  • Formats acceptés : PDF uniquement (côté API actuel).
  • Taille max : dépend du serveur (proxy). En cas d'erreur 413, augmenter client_max_body_size (nginx) ou la limite côté Next.js si configurée.

Base de données et prérequis production : table Document, variables d'environnement et déploiement détaillés dans docs/DATABASE.md du dépôt.

API (résumé)

  • GET /api/documents — Liste des documents de l'utilisateur.
  • POST /api/documents — Upload d'un PDF. FormData : file. Réponse : document créé (analyse lancée en synchrone).
  • GET /api/documents/[id] — Détail d'un document.
  • DELETE /api/documents/[id] — Supprimer un document (et le fichier si implémenté).