How ronil999/legal-zoning-rag works
intelli-site answers architects’ NYC property and zoning questions from a BBL and natural-language query. The UI submits the request to the pipeline, which routes it to rejection, structured property lookup, or legal retrieval; it then builds a route-aware prompt, generates an answer, evaluates citations and temporal risk, and formats the result with warnings and sources. The README also documents retrieval transparency and corpus-backed zoning coverage. The graph follows documented and indexed call relationships; unsampled implementation details are omitted where they cannot be verified.
Main entry points: main.py Pipeline orchestrator · gemini_client.py Gemini client · app.py Streamlit UI · loader.py Structured data loader
Components 20
User interaction
- Streamlit UI
app.py - Pipeline orchestrator
src/main.py
Routing and retrieval
- Query router
src/routing/router.py - Structured lookup
src/structured/retrieval.py - Structured data loader
src/structured/loader.py - Hybrid legal retrieval
src/retrieval/retriever.py
Answer processing
- Route-aware prompts
src/prompt_builder.py - Answer generation
src/generation/llm.py - Citation validation
src/generation/validator.py - Citation grounding evaluation
src/evaluation/citation_evaluator.py - Temporal risk analysis
src/evaluation/temporal_layer.py - Response formatting
src/response_formatter.py - Pipeline trace logging
src/logging/pipeline_logger.py
Data and model services
- Site records
corpus/structured/site_records.csv - PLUTO site data
corpus/structured - Zoning corpus
corpus/zoning - Retrieval indexes
chroma_db.bak_1788770862 - Gemini client
src/generation/gemini_client.py
Other components
- Architect / AEC user
- Gemini API
Connections 22
- Architect / AEC user → Streamlit UI: asks question
Readme.md - Streamlit UI → Pipeline orchestrator: submits query
Readme.md - Pipeline orchestrator → Query router: routes query
src/main.py - Query router → Gemini client: classifies via
src/routing/router.py - Gemini client → Gemini API: calls API
src/generation/gemini_client.py - Pipeline orchestrator → Structured lookup: requests site lookup
src/main.py - Structured lookup → Structured data loader: loads data through
src/structured/retrieval.py - Structured data loader → Site records: reads records
- Structured data loader → PLUTO site data: reads enrichment
- Pipeline orchestrator → Hybrid legal retrieval: retrieves legal context
src/main.py - Hybrid legal retrieval → Retrieval indexes: queries indexes
src/retrieval/retriever.py - Hybrid legal retrieval → Zoning corpus: retrieves corpus chunks
- Pipeline orchestrator → Route-aware prompts: builds prompt
src/main.py - Pipeline orchestrator → Answer generation: submits prompt
src/main.py - Answer generation → Gemini client: generates through
src/generation/llm.py - Pipeline orchestrator → Citation validation: validates answer
src/main.py - Pipeline orchestrator → Citation grounding evaluation: evaluates citations
src/main.py - Citation grounding evaluation → Gemini client: judges grounding via
src/evaluation/citation_evaluator.py - Pipeline orchestrator → Temporal risk analysis: checks amendment risk
src/main.py - Pipeline orchestrator → Response formatting: formats response
src/main.py - Streamlit UI → Response formatting: renders citation details
app.py - Pipeline orchestrator → Pipeline trace logging: records run
src/main.py