Skip to content

Commit b5d57de

Browse files
committed
Initial set of changes
Signed-off-by: Vineeth Kalluru <[email protected]>
1 parent 6e96746 commit b5d57de

File tree

10 files changed

+4104
-0
lines changed

10 files changed

+4104
-0
lines changed
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# Misc
2+
config_examples.yml
3+
env.sh
4+
frontend/
5+
prompts.md
6+
7+
# Python
8+
__pycache__/
9+
*.py[cod]
10+
*$py.class
11+
*.so
12+
.Python
13+
*.egg
14+
*.egg-info/
15+
dist/
16+
build/
17+
*.whl
18+
pip-wheel-metadata/
19+
.DS_Store
20+
21+
# Virtual environments
22+
.venv/
23+
venv/
24+
ENV/
25+
env/
26+
27+
# IDEs and Editors
28+
.vscode/
29+
.idea/
30+
*.swp
31+
*.swo
32+
*~
33+
.DS_Store
34+
35+
# Testing
36+
.pytest_cache/
37+
.coverage
38+
htmlcov/
39+
.tox/
40+
.hypothesis/
41+
42+
# Jupyter Notebook
43+
.ipynb_checkpoints/
44+
*.ipynb_checkpoints/
45+
46+
# Output and Data Directories
47+
output_data/
48+
eval_output/
49+
example_eval_output/
50+
output/
51+
results/
52+
logs/
53+
54+
# Database files
55+
*.db
56+
*.sqlite
57+
*.sqlite3
58+
database/*.db
59+
database/*.sqlite
60+
61+
# Vector store data (ChromaDB)
62+
database/
63+
chroma_db/
64+
vector_store/
65+
vanna_vector_store/
66+
67+
# Model files (large binary files)
68+
models/*.pkl
69+
models/*.h5
70+
models/*.pt
71+
models/*.pth
72+
models/*.ckpt
73+
*.pkl
74+
*.h5
75+
*.pt
76+
*.pth
77+
moment/
78+
79+
# Data files (CSV, JSON, etc. - be selective)
80+
*.csv
81+
*.json
82+
!training_data.json
83+
!vanna_training_data.yaml
84+
!config*.json
85+
!config*.yaml
86+
!config*.yml
87+
!pyproject.toml
88+
!package.json
89+
90+
# Frontend build artifacts
91+
frontend/node_modules/
92+
frontend/dist/
93+
frontend/build/
94+
frontend/.next/
95+
frontend/out/
96+
97+
# Environment and secrets
98+
.env
99+
.env.local
100+
.env.*.local
101+
*.secret
102+
secrets/
103+
credentials/
104+
105+
# Temporary files
106+
*.tmp
107+
*.temp
108+
*.log
109+
*.cache
110+
111+
# OS specific
112+
Thumbs.db
113+
Desktop.ini
114+
115+
# Experiment tracking
116+
mlruns/
117+
wandb/
118+
119+
# Documentation builds
120+
docs/_build/
121+
docs/.doctrees/
122+
site/
Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
# Installation Guide
2+
3+
This guide explains how to install the Predictive Maintenance Agent with different database and vector store options.
4+
5+
## Base Installation
6+
7+
Install the core package with default dependencies (ChromaDB + SQLite):
8+
9+
```bash
10+
pip install -e .
11+
```
12+
13+
This includes:
14+
- **ChromaDB** - Default vector store for SQL retriever
15+
- **SQLite** - Built-in database support (no additional packages needed)
16+
- **SQLAlchemy** - Generic SQL database support framework
17+
- All core ML and visualization dependencies
18+
19+
## Optional Dependencies
20+
21+
Install additional packages based on your needs:
22+
23+
### Elasticsearch Vector Store
24+
25+
For production deployments with Elasticsearch as the vector store:
26+
27+
```bash
28+
pip install -e ".[elasticsearch]"
29+
```
30+
31+
### PostgreSQL Database
32+
33+
For PostgreSQL database support:
34+
35+
```bash
36+
pip install -e ".[postgres]"
37+
```
38+
39+
### MySQL Database
40+
41+
For MySQL database support:
42+
43+
```bash
44+
pip install -e ".[mysql]"
45+
```
46+
47+
### SQL Server Database
48+
49+
For Microsoft SQL Server support:
50+
51+
```bash
52+
pip install -e ".[sqlserver]"
53+
```
54+
55+
**Note:** You also need to install the Microsoft ODBC Driver for SQL Server from [Microsoft's website](https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server).
56+
57+
### Oracle Database
58+
59+
For Oracle database support:
60+
61+
```bash
62+
pip install -e ".[oracle]"
63+
```
64+
65+
**Note:** You also need to install Oracle Instant Client from [Oracle's website](https://www.oracle.com/database/technologies/instant-client.html).
66+
67+
## Combined Installations
68+
69+
### All Databases
70+
71+
Install support for all SQL databases at once:
72+
73+
```bash
74+
pip install -e ".[all-databases]"
75+
```
76+
77+
This includes: PostgreSQL, MySQL, SQL Server, and Oracle drivers.
78+
79+
### Everything
80+
81+
Install all optional dependencies (Elasticsearch + all databases):
82+
83+
```bash
84+
pip install -e ".[all]"
85+
```
86+
87+
## Installation Examples by Use Case
88+
89+
### Development Setup (Simplest)
90+
```bash
91+
# Base installation - ChromaDB + SQLite
92+
pip install -e .
93+
```
94+
95+
### Production with PostgreSQL
96+
```bash
97+
# Base + PostgreSQL
98+
pip install -e ".[postgres]"
99+
```
100+
101+
### Production with Elasticsearch and PostgreSQL
102+
```bash
103+
# Base + Elasticsearch + PostgreSQL
104+
pip install -e ".[elasticsearch,postgres]"
105+
```
106+
107+
### Enterprise with All Options
108+
```bash
109+
# Everything
110+
pip install -e ".[all]"
111+
```
112+
113+
## Verification
114+
115+
After installation, verify your setup:
116+
117+
```python
118+
# Check installed packages
119+
import chromadb # Should work with base install
120+
import sqlalchemy # Should work with base install
121+
122+
# Optional packages (only if installed)
123+
import elasticsearch # If [elasticsearch] installed
124+
import psycopg2 # If [postgres] installed
125+
import pymysql # If [mysql] installed
126+
import pyodbc # If [sqlserver] installed
127+
import cx_Oracle # If [oracle] installed
128+
```
129+
130+
## System Requirements
131+
132+
- **Python:** 3.11 or 3.12 (Python 3.13 not yet supported)
133+
- **OS:** Linux, macOS, or Windows
134+
- **Memory:** Minimum 8GB RAM recommended
135+
- **Disk:** Minimum 10GB free space
136+
137+
## External Service Requirements
138+
139+
Depending on your configuration, you may need:
140+
141+
### Elasticsearch (Optional)
142+
- Elasticsearch 8.0 or higher running
143+
- Network access to Elasticsearch cluster
144+
- Authentication credentials (API key or username/password)
145+
146+
### Database Servers (Optional)
147+
- **PostgreSQL:** PostgreSQL 12 or higher
148+
- **MySQL:** MySQL 8.0 or higher
149+
- **SQL Server:** SQL Server 2016 or higher
150+
- **Oracle:** Oracle 19c or higher
151+
152+
## Troubleshooting
153+
154+
### Import Errors
155+
156+
**Problem:** `ModuleNotFoundError: No module named 'elasticsearch'`
157+
**Solution:** Install elasticsearch support: `pip install -e ".[elasticsearch]"`
158+
159+
**Problem:** `ModuleNotFoundError: No module named 'psycopg2'`
160+
**Solution:** Install PostgreSQL support: `pip install -e ".[postgres]"`
161+
162+
### Binary Dependencies
163+
164+
**SQL Server on Linux/Mac:**
165+
```bash
166+
# Install unixODBC first
167+
# macOS:
168+
brew install unixodbc
169+
170+
# Ubuntu/Debian:
171+
sudo apt-get install unixodbc unixodbc-dev
172+
173+
# Then install ODBC driver from Microsoft
174+
```
175+
176+
**Oracle:**
177+
- Download and install Oracle Instant Client
178+
- Set environment variables:
179+
```bash
180+
export ORACLE_HOME=/path/to/instantclient
181+
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
182+
```
183+
184+
## Next Steps
185+
186+
After installation, see:
187+
- **Configuration Guide:** `configs/README.md` - How to configure vector stores and databases
188+
- **Examples:** `config_examples.yaml` - Sample configurations
189+
- **Getting Started:** Run the predictive maintenance workflow
190+
191+
## Support
192+
193+
For issues or questions:
194+
1. Check the configuration guide: `configs/README.md`
195+
2. Review example configs: `config_examples.yaml`
196+
3. See troubleshooting sections in the README

0 commit comments

Comments
 (0)