1. Le Problème : Noyés sous les PDFs
Notre client, un cabinet d'affaires suisse de 50 collaborateurs, disposait d'une base de connaissances de plus de 15'000 documents (contrats, jurisprudences, mémos internes) stockés sur un serveur SharePoint classique.
La recherche par mots-clés était inefficace : taper "clause de non-concurrence abusive" ne remontait que les documents contenant exactement ces termes, ratant ceux parlant de "limitation d'activité" ou de "restriction post-contractuelle".
Impact : Les associés juniors passaient jusqu'à 2h par jour à retrouver des précédents juridiques pertinents.
2. La Solution Technique (Architecture RAG)
Nous avons implémenté une architecture RAG (Retrieval Augmented Generation) "State-of-the-Art" pour permettre une recherche sémantique.
2.1 Pipeline d'Ingestion
Le défi principal n'était pas l'IA, mais l'OCR. Beaucoup de documents étaient des scans anciens.
# Pipeline d'ingestion simplifié 1. Ingestion : Connecteur SharePoint via API Graph 2. OCR : Azure AI Vision (pour les scans) 3. Cleaning : Suppression des en-têtes/pieds de page (regex) 4. Chunking : RecursiveCharacterTextSplitter (chunk_size=1000, overlap=200) 5. Embedding : OpenAI text-embedding-3-large (via Azure Suisse pour la data residency) 6. Stockage : Qdrant (Self-hosted sur serveur suisse sécurisé)
2.2 Le Moteur de Réponse
Pour la génération, nous avons choisi Claude 3.5 Sonnet pour sa capacité supérieure de raisonnement juridique et sa fenêtre de contexte de 200k tokens, permettant d'analyser plusieurs documents longs en parallèle.
3. Défis Rencontrés & Résolutions
Le problème du multilingue
En Suisse, les documents sont en FR, DE et parfois IT. Nous avons testé des modèles d'embedding multilingues open-source (E5-mistral), mais text-embedding-3-large s'est avéré plus robuste pour capter les nuances juridiques entre l'allemand et le français.
Un autre défi majeur fut la hallucination des références. Un avocat ne peut pas citer une jurisprudence qui n'existe pas.
Solution : Nous avons forcé le modèle à citer ses sources (page et nom du document) et implémenté une étape de vérification post-génération qui check si la citation existe bien dans le contexte fourni.
4. ROI et Impact Métier
Après 3 mois de production, les résultats sont sans appel :
- Gain de temps : Passage de ~2h à ~30min de recherche par jour pour les juniors.
- Qualité : Découverte de "précédents oubliés" dans 40% des recherches.
- ROI financier : Coût du projet amorti en 4 mois grâce aux heures billables réaffectées à des tâches à plus haute valeur ajoutée.
5. Stack Technique Détaillée
Pour ceux qui veulent reproduire cette architecture :
- Frontend : Streamlit (Python) pour le POC, puis React pour la prod.
- Backend : FastAPI.
- Orchestration : LangChain.
- Vector DB : Qdrant (Docker).
- LLM : Claude 3.5 Sonnet (via Anthropic API) ou GPT-4o (via Azure Suisse).
- Monitoring : LangSmith pour tracer les chaines et évaluer les réponses.