How raghuvarma-gilth/cycloneiq works
IP-SAKTI Sahayak is a multilingual, source-cited regulatory and IP research platform. A user asks a question in the Streamlit research UI; the API runs the RAG pipeline, which detects language, classifies intent and product, extracts entities, routes the query, retrieves and filters evidence, then generates and verifies a cited answer. The repository also documents document ingestion, temporal/version-aware research, knowledge-graph context, and evaluation. The graph follows the README and sampled orchestration/API excerpts; unsampled subsystem wiring is shown only where documented, and ingestion detail is limited to the available tree.
Main entry points: pipeline.py RAG pipeline · retriever.py Hybrid retriever · api/app.py FastAPI API · frontend/app.py Streamlit UI
Components 23
User interfaces
- Streamlit UI
frontend/app.py - Research pages
frontend/pages - FastAPI API
backend/api/app.py
Query intelligence
- RAG pipeline
backend/rag/pipeline.py - Language detection
backend/ml/language_detector.py - Query classifiers
backend/ml - Legal NER
backend/ml/legal_ner.py - Domain router
backend/rag/query_router.py
Evidence retrieval
- Hybrid retriever
backend/rag/retriever.py - Dense search
backend/retrieval/dense_retriever.py - BM25 search
backend/retrieval/bm25_retriever.py - Fusion and reranking
backend/retrieval/rrf.py - Evidence filtering
backend/retrieval/evidence_filter.py - Vector index
backend/retrieval/dense_retriever.py - Temporal retrieval
backend/temporal/temporal_retrieval.py - Knowledge graph
backend/knowledge_graph/graph.py
Grounded answering
- Prompt builder
backend/rag/prompt_builder.py - LLM provider
backend/generation/provider.py - Citation verification
backend/generation/citation_verifier.py
Corpus and evaluation
- Document ingestion
backend/ingestion - Evaluation metrics
backend/evaluation
Other components
- Researcher
- LLM service
Connections 24
- Researcher → Streamlit UI: asks
- Streamlit UI → Research pages: opens
- Research pages → RAG pipeline: queries
- Researcher → FastAPI API: submits query
- FastAPI API → RAG pipeline: runs
- RAG pipeline → Language detection: detects language
- RAG pipeline → Query classifiers: classifies query
- RAG pipeline → Legal NER: extracts entities
- RAG pipeline → Domain router: routes query
- RAG pipeline → Hybrid retriever: retrieves evidence
- Hybrid retriever → Dense search: searches semantically
- Hybrid retriever → BM25 search: searches keywords
- Hybrid retriever → Fusion and reranking: fuses and reranks
- Hybrid retriever → Evidence filtering: filters evidence
- Dense search → Vector index: reads index
- RAG pipeline → Temporal retrieval: filters by time
- RAG pipeline → Knowledge graph: adds graph context
- RAG pipeline → Prompt builder: builds prompt
- RAG pipeline → LLM provider: requests generation
- LLM provider → LLM service: generates answer
- RAG pipeline → Citation verification: verifies citations
- Citation verification → FastAPI API: returns verified result
- Document ingestion → Vector index: builds index
- RAG pipeline → Evaluation metrics: measured by