A production-oriented portfolio project that combines Data Science, Machine Learning, Agentic AI, LangGraph, FastAPI, and Vector Databases to create an autonomous system capable of performing the complete data science lifecycle.
Autonomous Data Science Agent is a multi-agent AI system designed to automate major stages of a real-world data science workflow.
The system can:
- Accept CSV datasets
- Validate and clean data
- Perform exploratory data analysis (EDA)
- Generate visualizations
- Engineer features
- Select machine learning models
- Train and evaluate models
- Explain model performance
- Generate reports
- Maintain workflow state using LangGraph
- Expose functionality through FastAPI
- Store metadata in relational databases
- Utilize vector databases for memory and retrieval
This project is being built over an 8-week engineering roadmap with a strong focus on:
- Software Engineering
- Data Science
- Machine Learning
- Agentic AI Systems
- Backend Development
- Production Architecture
- CSV dataset upload
- Dataset validation
- Metadata extraction
- Missing value handling
- Duplicate removal
- Datatype correction
- Outlier detection
- Summary statistics
- Correlation analysis
- Distribution analysis
- Automated insights
- Histograms
- Scatter plots
- Box plots
- Correlation heatmaps
- Encoding
- Scaling
- Normalization
- Feature generation
- Model selection
- Model training
- Cross-validation
- Hyperparameter tuning
- Feature importance
- Model comparison
- Performance interpretation
- HTML reports
- PDF reports
- Markdown reports
- Specialized autonomous agents
- Shared workflow state
- Multi-agent orchestration
- LangGraph execution graph
User
β
βΌ
FastAPI
β
βΌ
LangGraph Workflow
β
βββ Cleaning Agent
βββ EDA Agent
βββ Feature Agent
βββ Model Agent
βββ Evaluation Agent
βββ Reporting Agent
β
βΌ
Database + Vector Store
β
βΌ
Generated Insights & Reports
Each agent is responsible for a specific domain task.
| Agent | Responsibility |
|---|---|
| Cleaning Agent | Data cleaning and preprocessing |
| EDA Agent | Exploratory data analysis |
| Feature Agent | Feature engineering |
| Model Agent | Model selection and training |
| Evaluation Agent | Performance analysis |
| Reporting Agent | Report generation |
Benefits:
- Separation of concerns
- Better maintainability
- Easier scalability
- Reusable workflows
flowchart TD
A[Upload Dataset]
--> B[Data Loader]
B --> C[Cleaning Agent]
C --> D[EDA Agent]
D --> E[Feature Engineering Agent]
E --> F[Model Selection Agent]
F --> G[Training Agent]
G --> H[Evaluation Agent]
H --> I[Reporting Agent]
I --> J[Final Report]
LangGraph was selected because it provides:
- Stateful workflows
- Multi-agent orchestration
- Conditional execution
- Memory support
- Agent communication
- Production-grade workflow management
Unlike simple chains, LangGraph allows the project to model real-world autonomous workflows where agents collaborate and share context.
- Python 3.11+
- Pandas
- NumPy
- Scikit-Learn
- Plotly
- FastAPI
- Uvicorn
- LangGraph
- LangChain
- SQLite
- PostgreSQL
- ChromaDB
- Qdrant
- Pytest
- Git
- GitHub
autonomous-data-science-agent/
β
βββ app/
β βββ agents/
β βββ workflows/
β βββ tools/
β βββ services/
β βββ database/
β βββ vectorstore/
β βββ api/
β βββ core/
β βββ main.py
β
βββ data/
β βββ raw/
β βββ processed/
β βββ sample/
β βββ exports/
β
βββ reports/
β βββ html/
β βββ pdf/
β βββ figures/
β
βββ notebooks/
β
βββ tests/
β
βββ docs/
β
βββ config/
β
βββ assets/
β
βββ .github/
β βββ workflows/
β
βββ requirements.txt
βββ requirements-dev.txt
βββ README.md
βββ LICENSE
Clone repository:
git clone https://github.com/SulakshanCGhimire/autonomous-data-science-agent.git
cd autonomous-data-science-agentCreate virtual environment:
python -m venv venvActivate:
Windows:
venv\Scripts\activateLinux/Mac:
source venv/bin/activateInstall dependencies:
pip install -r requirements.txtCreate:
.envExample:
DATABASE_URL=sqlite:///app.db
VECTOR_DB=chromadb
API_HOST=0.0.0.0
API_PORT=8000python app/main.pyuvicorn app.api.routes:app --reloadAccess:
http://localhost:8000
Swagger Docs:
http://localhost:8000/docs
POST /uploadExample:
{
"file": "customers.csv"
}POST /analyzeExample:
{
"dataset_id": "123"
}POST /reportExample:
{
"dataset_id": "123"
}Upload CSV
β
Validation
β
Cleaning
β
EDA
β
Feature Engineering
β
Model Selection
β
Training
β
Evaluation
β
Report Generation
Dataset
β
Preprocessing
β
Feature Engineering
β
Train/Test Split
β
Model Selection
β
Training
β
Evaluation
β
Explainability
- Detect missing values
- Remove duplicates
- Correct datatypes
- Generate statistics
- Produce visualizations
- Identify correlations
- Create features
- Encode categories
- Scale data
- Select models
- Train models
- Compare performance
- Calculate metrics
- Rank models
- Generate final reports
- Summarize insights
Relational database stores:
- Dataset metadata
- Experiment history
- Training runs
- Evaluation results
- Generated reports
Potential tables:
datasets
experiments
model_runs
reports
users
Vector databases enable:
- Agent memory
- Report retrieval
- Similar dataset discovery
- Historical experiment search
Supported:
- ChromaDB
- Qdrant
Project foundation and dataset ingestion
Data profiling and EDA agents
Visualization and reporting agents
Feature engineering agents
Model training and selection agents
Evaluation and explainability
LangGraph orchestration and memory
FastAPI integration and deployment
- AutoML integration
- LLM-powered dataset insights
- SHAP explainability
- Multi-modal datasets
- Real-time monitoring
- Agent memory optimization
- Cloud deployment
- User authentication
Testing levels:
- Tools
- Services
- Utilities
- Agent workflows
- Database operations
- Complete analysis pipeline
Run tests:
pytestCreate feature branches:
git checkout -b feature/data-loaderCommit convention:
feat:
fix:
refactor:
docs:
test:
chore:Example:
git commit -m "feat: implement dataset loader"Every module should include:
- Docstrings
- Type hints
- Usage examples
Documentation locations:
docs/
README.md
This project demonstrates:
- Python Development
- Data Engineering
- Data Science
- Machine Learning
- Agentic AI
- FastAPI Development
- Database Design
- System Design
- Software Engineering
- Documentation Skills
By completing this project, I will gain experience with:
- Production Python development
- Data pipelines
- Machine learning workflows
- Multi-agent architectures
- LangGraph orchestration
- API development
- Database integration
- Vector databases
- Software architecture
Potential deployment targets:
- Docker
- Render
- Railway
- Fly.io
- AWS
- Azure
- Google Cloud
Future architecture:
FastAPI
β
LangGraph
β
PostgreSQL
β
Qdrant
Contributions are welcome.
Steps:
- Fork repository
- Create feature branch
- Commit changes
- Push branch
- Open Pull Request
This project is licensed under the MIT License.
See:
LICENSE
for details.
Sulakshan Chandra Ghimire
Computer Engineering Student
GitHub: https://github.com/SulakshanCGhimire
LinkedIn: https://www.linkedin.com/in/sulakshan-chandra-ghimire
Email: sulucghimire@gmail.com