CoolFace
Apppublic

Sandipan1976/CRAG_Implementation

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
App README

Corrective RAG (CRAG) Service

This is the backend API exposing the /query endpoint for the CRAG model layout. Make sure you provide the following Secrets to Hugging Face Spaces setting:

  • OPENAI_API_KEY
  • TAVILY_API_KEY
  • BETTERDB_TOKEN (optional)
  • BETTERDB_URL (optional)

System Architecture

Below is the high-level architecture diagram of the Corrective RAG (CRAG) system deployed on Hugging Face Spaces:

mermaid
graph TD
    %% Define User and Gateway
    User([User / Agent / Claude])
    API[FastAPI Gateway]
    
    %% Cache & Observability
    Cache[(Upstash Redis Cache)]
    Obs[(BetterDB Observability)]
    
    %% LangGraph Pipeline
    subgraph CRAG LangGraph Pipeline
        Router[Graph Entry Route]
        Retriever[ChromaDB Retriever]
        Grader[Document Grader LLM]
        WebSearch[Tavily Web Search API]
        Generator[OpenAI Generator]
    end

    %% External APIs
    OpenAI[OpenAI API Embeddings/LLM]

    %% Connections
    User -- "POST /query" --> API
    API -- "1. Check Cache" --> Cache
    Cache -- "Cache Hit (return instant)" --> API
    
    API -- "2. Cache Miss (Execute Graph)" --> Router
    Router --> Retriever
    Retriever -- "Embeddings" --> OpenAI
    Retriever --> Grader
    
    Grader -- "Grades Docs" --> OpenAI
    
    Grader -- "Docs Relevant" --> Generator
    Grader -- "Docs Irrelevant" --> WebSearch
    
    WebSearch -- "Augment Context" --> Generator
    Generator -- "Synthesize Answer" --> OpenAI
    
    Generator -- "Final Answer" --> API
    
    %% Async operations
    API -. "3. Save to Cache" .-> Cache
    API -. "4. Async Log Telemetry" .-> Obs
    
    API -- "Return JSON" --> User

    %% Styling
    classDef api fill:#4CAF50,stroke:#333,stroke-width:2px,color:white;
    classDef logic fill:#2196F3,stroke:#333,stroke-width:2px,color:white;
    classDef ext fill:#FF9800,stroke:#333,stroke-width:2px,color:white;
    classDef db fill:#9C27B0,stroke:#333,stroke-width:2px,color:white;
    
    class API api;
    class Router,Retriever,Grader,Generator logic;
    class WebSearch,OpenAI ext;
    class Cache,Obs db;