IA Locale & Souveraine #3 : Classifier vos tickets en local — JSON structuré, zéro hallucination#

Des tickets en texte libre qui arrivent par centaines. IT, RH, Finance, Commercial, Juridique — il faut les router maintenant, sans les lire un par un. Ce tuto montre comment un LLM local (Qwen2.5-3B) fait le job en JSON valide, déterministe, sans cloud.
Ce que fait ce tuto (en 15 min)#
- Réutilise l’image de base + volume
shared-modelsdu tuto 2 — zéro rebuild modèle, build image tuto en secondes. - Prompt système Few-shot qui force une réponse JSON stricte :
departement,frustration,urgence— valeurs énumérées, pas de texte libre. temperature=0+stop=["}"]→ réponse déterministe, coupée pile à la fin du JSON, refermée proprement.- 5 tickets d’exemple réalistes (panne critique, accès RH, remboursement, contrat fournisseur, imprimante) → fichier
resultats.jsonexploitable direct.
Résultat type#
{
"id": "INC-001",
"texte": "Bonjour, mon ordinateur portable ne s'allume plus...",
"departement": "IT",
"frustration": "Elevee",
"urgence": "Critique"
}Pourquoi ça marche en prod (pas juste en démo)#
| Problème classique | Solution du tuto |
|---|---|
| LLM répond en prose | Prompt + response_format={"type":"json_object"} + stop token |
| Hallucination de valeurs | Énumération fermée dans le prompt (IT|RH|Finance|…) |
| Non-déterminisme | temperature=0 |
| Intégration amont/aval | JSON natif → parsable par n’importe quel orchestrateur |
Pour qui ?#
Équipes support, Ops, Data qui veulent automatiser le tri sans envoyer les tickets chez un tiers. Le modèle tourne sur votre N100, les données ne bougent pas.
Accès au code complet#
👉 Tutoriel pas à pas (GitHub) : 03-classification/docs/tutoriel.md
Prochain épisode : extraction d’entités nommées — on transforme des bios en texte libre (CSV) en fiches profils structurées (prénom, nom, âge, email) JSON + CSV, prêtes pour CRM.
