Juriscan
Contexte
MVP d'extraction automatique de données depuis des documents juridiques (assignations, commandements, PV) pour un cabinet d'huissiers. OCR, interprétation par IA, extraction structurée des champs, puis export vers le CRM interne du client. Un mois en solo, en freelance, du cadrage jusqu'à la livraison.
Mon approche
Le cœur du projet, c'est un pipeline en deux temps. D'abord un OCR avec compréhension du layout sur le PDF, puis un modèle LLM qui interprète le markdown obtenu et identifie les champs à extraire (parties, dates, montants, adresses) selon le type de document. Tout tourne en local sur GPU, pas d'API cloud, les données sont trop sensibles pour ça. Un worker Rust orchestre le multithreading et garde un débit correct sur des batchs de PDFs.
- Pipeline IA 100% self-hosted : DeepSeek-OCR pour la lecture, DeepSeek-Coder-V2 pour la structuration, llama.cpp et CUDA pour l'inférence. Les données ne sortent jamais du serveur du client.
- Un worker Rust pour le multithreading et l'orchestration, avec un OCR parallélisé et une gestion mémoire prévisible, là où Node aurait flanché sur du gros volume.
- Front en Vue 3 et shadcn-vue, avec l'upload, la preview du PDF à gauche, les données extraites éditables à droite, et l'export CSV vers le CRM client.
Stack & choix techniques
Backend AdonisJS 6 et PostgreSQL pour la persistance et l'API. Front en Vue 3, Tailwind et shadcn-vue. La pièce maîtresse côté infra, c'est un worker Rust qui appelle DeepSeek-OCR puis DeepSeek-Coder-V2 (via llama.cpp) sur GPU local, multithreadé et déployé via Docker et le NVIDIA Container Toolkit. Tout est self-hosted : un cabinet d'huissiers ne peut pas envoyer ses documents à OpenAI.
Résultat & apprentissages
Le MVP est livré et en cours de test côté cabinet client. Pour moi, c'est mon premier vrai projet IA, et le premier où j'ai construit la majeure partie en binôme avec un assistant IA pour le code. Une stack que je ne connaissais pas du tout (Rust, llama.cpp, DeepSeek en local sur CUDA), apprise et mise en prod en un mois. C'est exactement le genre de cas où l'assistant accélère sans dégrader la qualité, à condition de garder la main sur l'archi.