How chaithanyabs441-ux/text2sql-with-guardrails works
SafeQuery AI turns authenticated natural-language questions into policy-checked, read-only SQL, then verifies results and returns an answer, warning, or abstention. Its major product areas also include role-based administration, dataset selection/import, schema visualization, and query history. The request flow is documented in the README and supported by the API and generation excerpts; some UI and auxiliary capability wiring is documented but not shown in source excerpts.
Main entry points: main.py FastAPI service · generator.py SQL generation · app.py Web interface · openai_adapter.py LLM adapter
Components 20
User interaction
- Web interface
frontend/app.py - FastAPI service
src/t2s/api/main.py
Access and datasets
- Identity and grants
src/t2s/auth/store.py - Role permissions
src/t2s/auth/permissions.py - Dataset import
src/t2s/api/main.py
Query construction and execution
- Schema introspection
src/t2s/schema/introspector.py - Schema retrieval
src/t2s/schema/retriever.py - SQL generation
src/t2s/generation/generator.py - Prompt building
src/t2s/generation/prompt_builder.py - LLM adapter
src/t2s/llm/openai_adapter.py - SQL policy
src/t2s/guardrails/policy.py - Read-only sandbox
src/t2s/sandbox/executor.py - PostgreSQL
Verification and decisions
- Candidate agreement
src/t2s/verification/agreement.py - Back-translation
src/t2s/verification/back_translation.py - Result sanity
src/t2s/verification/sanity_checks.py - Result comparison
src/t2s/verification/result_comparison.py - Confidence calibration
src/t2s/verification/calibration.py - Answer decision
src/t2s/verification/abstention.py
Other components
- Questioner
Connections 23
- Questioner → Web interface: asks
README.md - Web interface → FastAPI service: submits queries
README.md - FastAPI service → Identity and grants: checks login and grants
src/t2s/api/main.py - FastAPI service → Role permissions: checks roles
src/t2s/api/main.py - FastAPI service → Dataset import: selects or imports
README.md - FastAPI service → SQL generation: requests SQL
README.md - SQL generation → Schema introspection: loads schema
src/t2s/generation/generator.py - SQL generation → Schema retrieval: retrieves context
src/t2s/generation/generator.py - SQL generation → Prompt building: builds prompt
src/t2s/generation/generator.py - SQL generation → LLM adapter: requests candidates
src/t2s/generation/generator.py - LLM adapter → PostgreSQL: calls provider
- SQL generation → SQL policy: validates SQL
src/t2s/generation/generator.py - FastAPI service → Read-only sandbox: executes validated SQL
README.md - Read-only sandbox → PostgreSQL: reads rows
src/t2s/sandbox/executor.py - FastAPI service → Candidate agreement: measures agreement
README.md - Candidate agreement → Result comparison: compares results
src/t2s/verification/agreement.py - FastAPI service → Back-translation: gets similarity signal
README.md - FastAPI service → Result sanity: checks results
README.md - FastAPI service → Confidence calibration: scores confidence
README.md - FastAPI service → Answer decision: chooses response
README.md - FastAPI service → Web interface: returns results and history
README.md - Web interface → FastAPI service: requests schema and history
README.md - FastAPI service → PostgreSQL: persists account and audit state