Retour aux projets
Web Scraping & RAG Pipeline

Web Scraping & RAG Pipeline

Pipeline de scraping intelligent avec Crawl4AI et RAG avancé pour interroger n'importe quel site web

avr. 2025 - oct. 2025 6 mois

Technologies

Crawl4AIRAGHyDEChromaDBSupabasePythonLLMVector DatabaseOpenAI Embeddings

Description

Pipeline complet permettant de scraper n’importe quel site web et de l’interroger via RAG avancé. L’objectif : transformer des données web non structurées en une base de connaissances interrogeable par langage naturel.

Architecture

flowchart LR
    A[🌐 URL] --> B[Crawl4AI]
    B --> C[LLM Extraction]
    C --> D[Chunking]
    D --> E[Embeddings]
    E --> F[(Vector DB)]
    F --> G[RAG Agent]
    G --> H[💬 Response]

Scraping intelligent avec Crawl4AI

Utilisation de Crawl4AI, un crawler open-source optimisé pour les LLMs :

Vectorisation

Le contenu scrapé est transformé en vecteurs pour la recherche sémantique :

ComposantConfiguration
ChunkingRecursive character splitter (1000 chars, 200 overlap)
EmbeddingsOpenAI text-embedding-3-small (1536 dimensions)
Vector Store (dev)ChromaDB (local, rapide)
Vector Store (prod)Supabase pgvector (scalable, requêtes SQL)

Le chunking avec overlap permet de préserver le contexte entre les segments :

flowchart LR
    Doc[📄 Document] --> C1[Chunk 1<br/>1000 chars]
    Doc --> C2[Chunk 2<br/>1000 chars]
    Doc --> C3[Chunk 3<br/>1000 chars]

    C1 -.->|200 chars overlap| C2
    C2 -.->|200 chars overlap| C3

Techniques RAG avancées

Au-delà du RAG basique (retrieve → generate), plusieurs techniques améliorent la qualité des réponses :

HyDE (Hypothetical Document Embeddings)

Générer un document hypothétique répondant à la question, puis rechercher des documents similaires à cette réponse idéale :

flowchart TB
    Q[❓ Query utilisateur] --> LLM[LLM génère document hypothétique]
    LLM --> HDoc[📄 Document idéal fictif]
    HDoc --> Emb[Embedding du doc hypothétique]
    Emb --> Search[Recherche similarité]
    Search --> Results[📚 Documents pertinents]

Query Augmentation & Multiple Query Generation

Reciprocal Rank Fusion (RRF)

Combiner les résultats de plusieurs retrievers avec pondération intelligente :

flowchart LR
    Q[Query] --> R1[Retriever 1]
    Q --> R2[Retriever 2]
    Q --> R3[Retriever 3]
    R1 --> |Rank A| RRF[🔀 RRF Fusion]
    R2 --> |Rank B| RRF
    R3 --> |Rank C| RRF
    RRF --> Final[Score combiné pondéré]

Re-ranking

Affiner le classement final avec un modèle cross-encoder pour améliorer la précision.

Agentic RAG

L’approche “Agentic RAG” va au-delà du pipeline linéaire classique. Un agent LLM orchestre dynamiquement le processus de retrieval :

flowchart TB
    Q[Query] --> Agent[🤖 Agent RAG]
    Agent --> Decide{Stratégie ?}
    Decide --> |Reformuler| Rewrite[Query Rewriting]
    Decide --> |Multi-query| Multi[Générer variantes]
    Decide --> |Direct| Retrieve[Retrieval]

    Rewrite --> Retrieve
    Multi --> Retrieve
    Retrieve --> Eval{Résultats suffisants ?}
    Eval --> |Non| Agent
    Eval --> |Oui| Generate[Génération réponse]
    Generate --> Response[💬 Réponse finale]

L’agent peut :

Stack technique

Défis rencontrés

Résultats

Voir tous les projets