Tutoriel pratique pour construire un pipeline RAG minimal avec Symfony AI, Cohere et SQLite, à partir de plusieurs versions de la documentation Symfony. Il détaille l’indexation des documents, la génération d’embeddings, la recherche des cinq passages les plus proches et la production d’une réponse contextualisée. L’auteur met aussi en évidence les limites de la recherche purement vectorielle : confusion entre versions, résultats sémantiquement proches mais peu pertinents et absence de reclassement. Une base reproductible pour comprendre pourquoi un RAG fiable nécessite des étapes supplémentaires.
L’auteur, insatisfait par la dégradation des résultats des moteurs de recherche actuels (spam SEO, manque de pertinence), a relevé le défi de construire son propre moteur de recherche en deux mois, en s’appuyant sur des modèles d’embeddings neuronaux (comme SBERT) pour comprendre le sens des requêtes plutôt que de se limiter à la correspondance de mots-clés. Le projet a impliqué la génération de 3 milliards d’embeddings à l’aide d’un cluster de 200 GPU, l’indexation de 280 millions de pages web, et une architecture distribuée combinant RocksDB et HNSW pour gérer 4 To de RAM et 82 To de stockage SSD, avec un temps de réponse moyen de 500 ms. L’approche innovante inclut une normalisation poussée du HTML, un découpage sémantique des pages pour préserver le contexte, et un crawler optimisé pour éviter les limitations de débit. Le moteur permet de répondre à des requêtes complexes et nuancées, même formulées en langage naturel, en identifiant des réponses précises et pertinentes, y compris dans des contenus obscurs ou peu accessibles. Le billet détaille chaque étape : preuve de concept, normalisation des données, chunking intelligent, optimisation des performances, et déploiement d’un graphe de connaissances. Un demo en ligne est disponible pour tester le résultat.