How dhanyahegdek/ai-data-analyst works
AI Data Analyst turns a business question into a validated PostgreSQL query, analyzed results, and a visualization for the React UI. The main path runs through the FastAPI analyze endpoint and LangGraph’s documented question-understanding, schema, SQL, execution, analysis, visualization, and response stages. Query history is a separate persistence branch, restored through the history endpoint. Workflow stages and feature links follow the README; source excerpts are partial, so uncertain internal calls are omitted.
Main entry points: main.py FastAPI application · routing.py Validation routing · App.jsx Question and results UI · graph.py LangGraph workflow
Components 22
Web interface
- Question and results UI
frontend/src/App.jsx
API entry points
- FastAPI application
src/ai_data_analyst/main.py
Analysis workflow
- LangGraph workflow
src/ai_data_analyst/agents/graph.py - Understand question
src/ai_data_analyst/agents/question_understanding.py - Retrieve schema
src/ai_data_analyst/agents/schema_retrieval.py - Business schema context
src/ai_data_analyst/agents/schema_context.py - Generate SQL
src/ai_data_analyst/agents/sql_generator.py - Validate SQL
src/ai_data_analyst/agents/sql_validation.py - Correct SQL
src/ai_data_analyst/agents/sql_fix.py - Validation routing
src/ai_data_analyst/agents/routing.py - Execute query
src/ai_data_analyst/agents/sql_execution.py - Analyze results
src/ai_data_analyst/agents/result_analysis.py - Choose visualization
src/ai_data_analyst/agents/visualization.py - Final response
src/ai_data_analyst/agents/final_response.py
Data and persistence
- SQL execution service
src/ai_data_analyst/services/sql_executor.py - SQL safety checks
src/ai_data_analyst/tools/sql_validator.py - Business PostgreSQL
src/ai_data_analyst/models - Query history service
src/ai_data_analyst/services/query_history.py - Query history records
src/ai_data_analyst/models/query.py - History PostgreSQL
src/ai_data_analyst/database/connection.py
Other components
- Business user
- Gemini language model
Connections 30
- Business user → Question and results UI: asks question
- Question and results UI → FastAPI application: HTTP request
- FastAPI application → LangGraph workflow: invokes
- LangGraph workflow → Understand question: dispatches
- Understand question → Retrieve schema: continues
- Retrieve schema → Business schema context: returns schema
- Retrieve schema → Generate SQL: continues
- Generate SQL → Validate SQL: continues
- Validate SQL → Validation routing: routes result
- Validation routing → Execute query: valid query
- Validation routing → Correct SQL: invalid; retry
- Correct SQL → Validate SQL: revalidates
- Validation routing → Final response: retry limit
- Execute query → Analyze results: returns rows
- Analyze results → Choose visualization: continues
- Choose visualization → Final response: continues
- Understand question → Gemini language model: uses model
- Generate SQL → Gemini language model: uses model
- Correct SQL → Gemini language model: uses model
- Analyze results → Gemini language model: uses model
- Final response → Gemini language model: uses model
- Execute query → SQL execution service: executes SQL
- SQL execution service → SQL safety checks: checks SQL
- SQL execution service → Business PostgreSQL: reads rows
- LangGraph workflow → FastAPI application: returns result
- FastAPI application → Query history service: saves success; reads history
- Query history service → Query history records: maps records
- Query history service → History PostgreSQL: reads and writes
- FastAPI application → Question and results UI: returns analysis or history
- Question and results UI → Business user: renders results