01
📊 Contexte et enjeux
La comptabilité d'entreprise génère des volumes massifs de données : factures, relevés bancaires, écritures, notes de frais, contrats. Les équipes financières passent 70% de leur temps sur des tâches manuelles et répétitives (saisie, rapprochement, vérification).
70%
du temps en tâches manuelles
30%
de réduction d'erreurs avec l'IA
80%
de temps gagné sur le rapprochement
💡 Le défi : Automatiser sans perdre en fiabilité, tout en respectant les normes fiscales (PCG, IFRS) et en traçant chaque opération.
02
🏗️ Solution architecturale
Architecture complète pour la comptabilité augmentée :
[Sources] → [Ingestion] → [Graphe] → [IA] → [Automatisation]
│ │ │ │
Factures OCR/NLP Ontologie LLM pour
Relevés Extraction comptable classification
Contrats Validation (PCG) et analyse
Ontologie comptable (extrait)
# Ontologie comptable en Turtle
@prefix : <http://compta.example.org/ontology#> .
:ÉcritureComptable a owl:Class .
:Facture a owl:Class ; rdfs:subClassOf :Document .
:RelevéBancaire a owl:Class ; rdfs:subClassOf :Document .
:estDébitéePar a owl:ObjectProperty ;
rdfs:domain :ÉcritureComptable ;
rdfs:range :Compte .
:estCréditéePar a owl:ObjectProperty ;
rdfs:domain :ÉcritureComptable ;
rdfs:range :Compte .
# Règle de partie double
:DétientÉcriture rdfs:subPropertyOf :EstLiéeÀ .
[ a owl:Restriction ;
owl:onProperty :estDébitéePar ;
owl:qualifiedCardinality 1 ] .
03
🎯 Cas d'usage concrets
1. Rapprochement bancaire automatique
📝 Avant : 3h par jour pour rapprocher 500 lignes bancaires
🤖 Après : 15 minutes, 98% de taux d'auto-rapprochement
🔧 Comment : Le graphe relie les écritures comptables aux relevés bancaires via des règles de correspondance (montant, date, libellé, bénéficiaire).
2. Classification automatique des factures
📝 Avant : Saisie manuelle du code comptable (classe 6 ou 7)
🤖 Après : LLM + ontologie propose le code avec 95% de justesse
🔧 Comment : Le LLM analyse la facture, l'ontologie valide la cohérence avec les règles comptables.
3. Détection d'anomalies et de fraudes
📝 Avant : Contrôle aléatoire ou après clôture
🤖 Après : Alertes en temps réel sur transactions suspectes
🔧 Comment : Règles d'inférence dans le graphe (ex: "paiement > 10k€ sans bon de commande" → alerte).
4. Conformité fiscale automatique (TVA)
📝 Avant : Calcul manuel, risque d'erreur
🤖 Après : Calcul automatique du taux de TVA selon nature de dépense
🔧 Comment : Ontologie avec règles de TVA (taux normal, réduit, exonérations).
04
⚙️ Implémentation technique
Pipeline complet
# 1. Extraction des factures (OCR + NLP)
def extract_invoice(file_path):
text = ocr_extract(file_path)
return {
'supplier': extract_company(text),
'amount': extract_amount(text),
'date': extract_date(text),
'vat': extract_vat(text),
'items': extract_items(text)
}
# 2. Enrichissement avec le graphe
def enrich_with_knowledge_graph(invoice):
# Recherche fournisseur existant
supplier = graph.query(f"""
SELECT ?s ?siren WHERE {{
?s a :Fournisseur ;
:nom "{invoice['supplier']}" .
}}
""")
# Déduit le code comptable via règles
account_code = graph.infer(f"""
:Facture_{invoice['id']} :aPourNature :{invoice['category']} .
:{invoice['category']} rdfs:subClassOf :Achats ?
""")
return {**invoice, 'account_code': account_code}
# 3. Génération écriture comptable
def generate_journal_entry(invoice):
entry = {
'debit': invoice['account_code'],
'credit': '401000' if invoice['type'] == 'fournisseur' else '706000',
'amount': invoice['amount'],
'vat_amount': invoice['amount'] * vat_rate(invoice['vat'])
}
graph.insert(entry)
return entry
Technologies recommandées
| Composant | Solution |
| Graphe de connaissances | Neo4j, RDFox, Stardog |
| Ontologie comptable | OWL 2, règles SWRL |
| OCR + NLP | DocTR, Camelot, spaCy |
| LLM | Mistral (local), GPT-4 (API) |
| Orchestration | Airflow, Prefect |
06
💬 Témoignage client
🎤 Semantic World Groupe - Directeur Financier
"Nous avons réduit de 70% le temps consacré au rapprochement bancaire. L'équipe comptable se concentre désormais sur l'analyse et le conseil plutôt que la saisie. La détection des anomalies est devenue quasi-instantanée."