Enhanced wrapper for Vanna SQL generation library with custom utilities
Project description
RNIT Vanna - Enhanced SQL Generation (v2.0)
RNIT Vanna is an enhanced wrapper around the official Vanna library with custom utilities and smart dependency management.
🚀 New in v2.0: Choose Your Dependencies!
Minimal Installation (50 packages only!)
pip install rnit-vanna
✅ Core Vanna functionality ✅ Basic SQL generation ✅ All RNIT utilities ❌ No heavy ML dependencies unless you need them
Install What You Need
| Use Case | Installation | Packages Added |
|---|---|---|
| OpenAI GPT | pip install rnit-vanna[openai] |
+60 packages |
| Anthropic Claude | pip install rnit-vanna[anthropic] |
+40 packages |
| Local LLMs | pip install rnit-vanna[local] |
+30 packages |
| Just ChromaDB | pip install rnit-vanna[chromadb] |
+50 packages |
| PostgreSQL | pip install rnit-vanna[postgres] |
+5 packages |
| MySQL | pip install rnit-vanna[mysql] |
+3 packages |
| Everything | pip install rnit-vanna[all] |
+110 packages |
💡 Why This Matters
Before (v1.0): Everyone downloads 110+ packages even if they only need basic features Now (v2.0): Download only what you need!
📦 Quick Start
For OpenAI Users
pip install rnit-vanna[openai]
from rnit_vanna import RNITVanna
vn = RNITVanna() # Auto-detects OPENAI_API_KEY from environment
vn.connect_to_sqlite('my_database.sqlite')
sql = vn.generate_sql("Show all users")
For Anthropic Users
pip install rnit-vanna[anthropic]
from rnit_vanna import RNITVanna
vn = RNITVanna(config={'api_key': 'your-anthropic-key'})
For Local LLM Users (No API Key!)
pip install rnit-vanna[local]
from rnit_vanna import RNITVanna
vn = RNITVanna(config={'model': 'llama2'})
🎯 Enhanced Features
RNITVanna Class
- Auto-detects API keys from environment
- Optimized defaults for SQL generation
- Batch training support
- Training history tracking
VannaQuickStart
from rnit_vanna import VannaQuickStart
# Auto-setup and train from SQLite
vn = VannaQuickStart.for_sqlite('database.sqlite', auto_train=True)
# Create a sample project
VannaQuickStart.create_sample_project('my_sql_assistant')
DatabaseInspector
from rnit_vanna import DatabaseInspector
inspector = DatabaseInspector()
db_info = inspector.inspect_sqlite('database.sqlite')
print(inspector.generate_summary(db_info))
TrainingGenerator
from rnit_vanna import TrainingGenerator
generator = TrainingGenerator()
queries = generator.generate_basic_queries(table_name, columns)
🔄 Upgrading from v1.0
If you're upgrading from v1.0:
# Uninstall old version
pip uninstall rnit-vanna
# Install new version with the features you need
pip install rnit-vanna[openai] # or [anthropic], [local], etc.
📊 Dependency Comparison
| Installation | v1.0 | v2.0 (minimal) | v2.0 [openai] | v2.0 [all] |
|---|---|---|---|---|
| Packages | 110+ | 50 | 110 | 110+ |
| Size | ~200MB | ~50MB | ~150MB | ~200MB |
| ChromaDB | ✅ Always | ❌ Optional | ✅ Included | ✅ Included |
| OpenAI | ✅ Always | ❌ Optional | ✅ Included | ✅ Included |
| Anthropic | ❌ Never | ❌ Optional | ❌ Not included | ✅ Included |
🛠️ Development
# Clone the repo
git clone https://github.com/rnit/rnit-vanna
cd rnit-vanna
# Install in development mode with dev tools
pip install -e .[dev]
# Run tests
pytest
📝 Examples
Basic Usage (Works with minimal install!)
from rnit_vanna import DatabaseInspector, TrainingGenerator
# These utilities work even without OpenAI/ChromaDB!
inspector = DatabaseInspector()
db_info = inspector.inspect_sqlite('my_db.sqlite')
generator = TrainingGenerator()
queries = generator.generate_basic_queries('users', db_info['tables']['users']['columns'])
Full Featured (Requires [openai] or [all])
from rnit_vanna import RNITVanna, VannaQuickStart
vn = VannaQuickStart.for_sqlite('database.sqlite', auto_train=True)
sql = vn.generate_sql("Complex question about your data")
df = vn.run_sql(sql)
🤝 Contributing
Contributions welcome! Please feel free to submit a Pull Request.
📄 License
MIT License - see LICENSE file
🙏 Acknowledgments
Built on top of the excellent Vanna.AI library.
Note: This is a wrapper that enhances Vanna. For core Vanna documentation, visit vanna.ai
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rnit_vanna-2.0.0.tar.gz.
File metadata
- Download URL: rnit_vanna-2.0.0.tar.gz
- Upload date:
- Size: 14.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b94dad77bd4c836e19738c57c3bbdeaee253dc52693e69b0b48fce025ffaa725
|
|
| MD5 |
fcfe3bf37ceb40849b2897ff64f072a5
|
|
| BLAKE2b-256 |
2f1be255cf3565bfaebe0d186d8e7c21454b34270d432f0b5ef58ca72224cedf
|
File details
Details for the file rnit_vanna-2.0.0-py3-none-any.whl.
File metadata
- Download URL: rnit_vanna-2.0.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
774d21adc77b0dbc7cd87776a51a33d2593f5d63e91a245fcc6d9235b105036f
|
|
| MD5 |
89592a378ec376f7952708dfcbf57a9f
|
|
| BLAKE2b-256 |
7017068d216a77cae613db59eb6adaae1a4cdf71c61e3608f17489013d3639cb
|