How csallahbakash/enterprise-data-agent works
This is a database-focused AI agent application: users request schema analysis, natural-language querying, Airflow DAG generation, or data-quality checks through a Streamlit UI or REST API. The API dispatches each request to a LangGraph agent; those agents use database introspection, query execution, and, where applicable, Claude to produce results. The README also documents Prometheus monitoring and an evaluation framework. The schema-discovery implementation was not sampled, so its internal wiring is not shown.
Main entry points: routes.py Agent Routes · database.py Database Access · main.py FastAPI App · llm.py LLM Client
Components 25
User Interface
- Streamlit UI
frontend/app.py - FastAPI App
src/api/main.py - Agent Routes
src/api/routes.py
Agent Workflows
- Schema Discovery
src/agents/schema_discovery.py - NL-to-SQL
src/agents/nl_to_sql.py - Pipeline Generator
src/agents/pipeline_generator.py - Data Quality
src/agents/data_quality.py - Gather Schema Context
src/agents/pipeline_generator.py - Generate DAG
src/agents/pipeline_generator.py - Explain DAG
src/agents/pipeline_generator.py - Load Schema Context
src/agents/nl_to_sql.py - Generate SQL
src/agents/nl_to_sql.py - Execute Query
src/agents/nl_to_sql.py - Format Answer
src/agents/nl_to_sql.py - Null Checks
src/agents/data_quality.py - Duplicate Checks
src/agents/data_quality.py - Quality Summary
src/agents/data_quality.py
Data and LLM
- Database Access
src/core/database.py - PostgreSQL
- LLM Client
src/core/llm.py - Anthropic Claude
Evaluation and Monitoring
- Agent Evaluation
src/evaluation/evals.py - Prometheus Metrics
src/evaluation/metrics.py - Prometheus
monitoring/prometheus.yml
Other components
- User
Connections 34
- User → Streamlit UI: uses
- User → FastAPI App: requests
- Streamlit UI → FastAPI App: HTTP requests
- FastAPI App → Agent Routes: mounts routes
- Agent Routes → Schema Discovery: invokes
- Agent Routes → NL-to-SQL: invokes
- Agent Routes → Pipeline Generator: invokes
- Agent Routes → Data Quality: invokes
- NL-to-SQL → Load Schema Context: starts
- Load Schema Context → Generate SQL: passes context
- Generate SQL → Execute Query: passes SQL
- Execute Query → Format Answer: passes results
- Pipeline Generator → Gather Schema Context: starts
- Gather Schema Context → Generate DAG: passes schema
- Generate DAG → Explain DAG: passes DAG
- Data Quality → Null Checks: starts
- Null Checks → Duplicate Checks: passes checks
- Duplicate Checks → Quality Summary: passes checks
- Load Schema Context → Database Access: introspects
- Execute Query → Database Access: executes query
- Gather Schema Context → Database Access: introspects
- Null Checks → Database Access: checks data
- Duplicate Checks → Database Access: checks data
- Database Access → PostgreSQL: reads
- Generate SQL → LLM Client: requests SQL
- Format Answer → LLM Client: requests answer
- Generate DAG → LLM Client: requests DAG
- Explain DAG → LLM Client: requests explanation
- LLM Client → Anthropic Claude: invokes
- Agent Routes → Prometheus Metrics: records requests
- FastAPI App → Prometheus: exposes metrics
- Prometheus → FastAPI App: scrapes
- Agent Evaluation → NL-to-SQL: invokes graph
- Agent Routes → Streamlit UI: returns results