Sandipan1976/CRAG_Implementation
0
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_KEYTAVILY_API_KEYBETTERDB_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:
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;