À propos du projet
CrawlViz est un crawler web de niveau recherche, axé sur un thème. Contrairement aux crawlers traditionnels en largeur d'abord qui explorent toutes les pages liées, CrawlViz décide en temps réel, lien par lien, quelles pages méritent d'être visitées pour satisfaire un thème donné. Il utilise une cascade de notation en deux étapes : un modèle local peu coûteux d'enchâssement de phrases note chaque lien candidat, et seul un échantillon budgété de liens à confiance moyenne est envoyé à un LLM pour un jugement de pertinence. Cela maintient le coût et la latence à un niveau bas.
Le système est construit autour d'un bus d'événements asyncio en processus avec 57 événements typés distincts, découplant la récupération, l'extraction, la déduplication, la notation, la priorité, la transformation, l'export, la nouvelle tentative et la journalisation en pipelines indépendants. Une barrière de disponibilité basée sur Future sur chaque nœud résout une condition de course, permettant au pipeline de notation de prendre un nœud dès sa création sans noter un contenu incomplet.
Le frontend est une application React qui affiche le graphe d'exploration en direct via WebSocket et permet de parcourir en arrière l'historique des événements grâce à une traçabilité événementielle assistée par points de contrôle. La configuration d'exploration est déclarative : les graines, domaines, stratégie de notation, champs d'extraction et conditions d'arrêt sont définis dans un blueprint JSON validé par un schéma Pydantic.
CrawlViz n'est pas distribué ; c'est une application asyncio mono-processus avec un état en mémoire. La persistance est locale via SQLite. La suite de tests backend comprend 123 tests couvrant les pipelines, le schéma de blueprint et le câblage des événements, mais aucun test de bout en bout ni d'intégration LLM en direct.
Le projet inclut une étude de cas sur wikimd.org, amorcée à partir de « Type 2 Diabetes », qui a exploré 539 nœuds sur 50 828 liens identifiés (~1 %) et produit un graphe se regroupant en sous-thèmes de complications, traitements et épidémiologie. La configuration est enregistrée dans templates/wikiMD.json.
La documentation est étendue, avec des analyses approfondies de l'architecture, du déroulement de l'exécution, du pipeline d'événements, de la notation sémantique, de la résilience, des algorithmes, du protocole de recherche, du guide du développeur et des décisions de conception. Un rapport de projet académique complet est disponible en PDF.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.