How peramee/regulatory-rag-assistant works
Regulatory RAG Assistant accepts regulatory documents and questions, indexes document passages, retrieves relevant evidence, and returns grounded answers with validated citations or an insufficient-evidence refusal. The primary workflow runs through the Streamlit client, FastAPI, and RAG service; ingestion and question answering are distinct stages. The README also documents API-driven evaluation and structured operational logging. Source excerpts are partial, so uncertain internal route wiring is omitted; documented capabilities and the tree support the broader subsystem paths shown.
Main entry points: service.py RAG service · api.py FastAPI · retrieval.py Retriever · evaluate_api.py Evaluation client
Components 19
User interface
- Streamlit UI
streamlit_app.py - HTTP client
src/regulatory_rag/api_client.py
API and orchestration
- FastAPI
src/regulatory_rag/api.py - RAG service
src/regulatory_rag/service.py - Typed schemas
src/regulatory_rag/models.py
Document ingestion
- Extract and chunk
src/regulatory_rag/ingestion.py
Retrieval and generation
- Retriever
src/regulatory_rag/retrieval.py - Embedding adapter
src/regulatory_rag/providers.py - Chroma index
src/regulatory_rag/store.py - Grounding and citations
src/regulatory_rag/generation.py - Chat adapter
src/regulatory_rag/providers.py
Evaluation and observability
- Structured logging
src/regulatory_rag/observability.py - Evaluation client
scripts/evaluate_api.py - Evaluation metrics
src/regulatory_rag/evaluation.py - Evaluation cases
evaluation/dataset.json
Other components
- User
- Embedding service
- Chat service
- Evaluation API
Connections 23
- User → Streamlit UI: asks
- Streamlit UI → HTTP client: submits question
- HTTP client → FastAPI: POST /query
- FastAPI → RAG service: handles request
- RAG service → Retriever: searches
- Retriever → Embedding adapter: embeds text
- Embedding adapter → Embedding service: requests vectors
- Retriever → Chroma index: queries index
- Chroma index → Retriever: returns passages
- RAG service → Grounding and citations: builds and validates
- RAG service → Chat adapter: requests completion
- Chat adapter → Chat service: sends prompt
- RAG service → Structured logging: emits lifecycle logs
- Streamlit UI → FastAPI: displays response
- FastAPI → Typed schemas: validates requests
- FastAPI → Extract and chunk: indexes documents
- RAG service → Extract and chunk: extracts and chunks
- Retriever → Chroma index: writes vectors
- Evaluation client → Evaluation cases: loads cases
- Evaluation client → Evaluation API: submits cases
- Evaluation API → FastAPI: queries same API
- Evaluation client → Evaluation metrics: evaluates results
- Evaluation metrics → Typed schemas: checks responses