Sortee IA
Comment fonctionne Sortee IA ?
Un assistant conçu et développé par Fabien Poulain, qui s’appuie sur les LLM Google Gemini et Groq (modèles open-weight).
Architecture
Sortee IA n’est pas un chatbot « libre » : c’est un pipeline RAG (Retrieval-Augmented Generation) branché sur la base de données de Sortee. Le modèle ne répond jamais de mémoire, il rédige à partir de fiches réellement présentes sur le site.
- Extraction d’intention : un LLM transforme la phrase libre en JSON structuré (catégories, ville, département, dates relatives résolues, public, difficulté, rayon, mots-clés). Un parseur de secours à base de règles prend le relais si l’API est indisponible.
- Géocodage et localisation : ville citée (API officielle des communes), sinon position du navigateur ou ville du profil. Recherche par rayon avec distance orthodromique (formule de Haversine) directement en SQL.
- Retrieval multi-paliers : requêtes MySQL paramétrées sur idées sorties, randonnées, zoos, brocantes, cinémas et bowlings, avec score de pertinence pondéré (titre et thème plus lourds que la description). Si peu de résultats, les contraintes sont relâchées palier par palier (mots-clés, dates, puis zone élargie).
- Génération contrainte : les résultats sont numérotés (R1, R2…) et le LLM ne peut recommander que ces références, ce qui limite fortement les hallucinations. Chaque suggestion renvoie vers la fiche réelle.
- Résilience : pool de modèles Gemini et Groq découverts dynamiquement, bascule automatique avec cooldown en cas d’erreur ou de quota (429), limitation de débit par visiteur, et réponse par gabarit si aucun modèle ne répond.
Limites à connaître
- L’IA ne connaît que ce qui est dans la base Sortee : une absence de résultat ne veut pas dire que l’événement n’existe pas.
- Les événements passés sont exclus ; les horaires et tarifs sont à vérifier sur la fiche ou auprès de l’organisateur.
- Les messages envoyés à l’assistant sont transmis à Google ou Groq pour générer la réponse : n’y saisissez pas de données personnelles sensibles. Voir la politique de confidentialité.