Lokimo : un audit IA pour extraire les règles d'urbanisme de PLU scannés
Lokimo analyse plus de 10 000 territoires par an pour des promoteurs et des investisseurs. Extraire les règles d'urbanisme depuis des PLU scannés, hétérogènes, pleins de tableaux et de cartes, bloquait leur équipe. Un audit IA de 3 semaines a comparé les OCR (reconnaissance de caractères), benchmarké (comparé sur mesures) plusieurs stratégies de découpage, réécrit le prompt (consigne donnée au modèle) d'extraction et livré 3 POC (preuves de concept) en Python repris tels quels.

Contexte
Lokimo est une PropTech parisienne qui fournit aux promoteurs et aux investisseurs une lecture des règles d'urbanisme applicables à un terrain. Ces règles se trouvent dans les plans locaux d'urbanisme (PLU et PLUi) : des PDF longs, souvent scannés, mêlant tableaux de prescriptions, cartes de zonage et mises en page qui changent d'une commune à l'autre. Les extraire à la main ne passe pas à l'échelle de 10 000 territoires par an.
L'équipe avait déjà un système, sous forme de notebooks Jupyter (carnets de code) : découpage naïf des documents sans tenir compte de leur structure, prompts d'extraction jamais optimisés, aucun benchmark entre les OCR ou les modèles de langage disponibles, aucun cadre d'évaluation pour mesurer la qualité des sorties. Chaque amélioration se jugeait à l'œil. Ils ont choisi un audit IA de 3 semaines par un freelance IA plutôt qu'un cadrage d'agence, pour obtenir des mesures et du code.
Ce qui a été construit
- J'ai d'abord comparé les OCR (Azure Document AI et Google Document AI, deux services d'extraction structurée de documents) sur des PLU réels de leur corpus, tableaux et cartes compris, avec des mesures de fidélité du texte et de la structure.
- Plusieurs stratégies de découpage (chunking) ont ensuite été benchmarkées : naïve, par mise en page et sémantique, avec des visualisations qui montrent ce que chaque stratégie conserve ou casse dans un règlement de zone.
- Les modèles de langage candidats ont été comparés sur des documents de référence, puis le prompt d'extraction a été diagnostiqué et réécrit, avec une séparation nette entre localisation de la règle et structuration du résultat.
- J'ai conçu un module de self-healing pour les cas d'échec (champ vide, valeur incohérente), qui relance l'extraction avec un contexte élargi avant de signaler le cas pour revue.
- Un cadre d'évaluation champ par champ compare les sorties à une vérité terrain constituée avec l'équipe, ce qui rend chaque changement mesurable.
- Les 3 POC livrés (découpage, extraction des dispositions générales, évaluation) sont des modules Python prêts pour la production, que l'équipe a repris directement comme base technique.
Un besoin proche de celui de Lokimo ?
Vingt minutes suffisent pour savoir si c'est faisable, par où commencer et à quel ordre de grandeur s'attendre.
Outils et techniques
« Mehdi a su décomposer un problème complexe en briques claires, avec des benchmarks concrets et du code qu'on a pu reprendre directement. Exactement ce qu'il nous fallait pour avancer. »