项目简介
Vanna是一个开源的Python框架,借助检索增强生成(RAG)技术,实现SQL查询生成及相关功能。它结合向量数据库(如ChromaDB)与大型语言模型(如OpenAI的GPT - 4),可将自然语言问题转化为对应的SQL查询。
项目的主要特性和功能
- SQL生成:依据自然语言问题生成相应的SQL查询。
- 多数据库支持:支持连接多种SQL数据库,像PostgreSQL、MySQL等。
- 用户界面:提供多种用户界面,包含Jupyter Notebook、Streamlit、Flask和Slack。
- 自我学习:执行查询后能自动更新训练数据,提升准确性。
- 可扩展性:可连接任何数据库、LLM和向量数据库,便于扩展。
安装使用步骤
1. 安装Vanna
bash
pip install vanna
2. 导入并配置Vanna
```python from vanna.openai.openai_chat import OpenAI_Chat from vanna.chromadb.chromadb_vector import ChromaDB_VectorStore
class MyVanna(ChromaDB_VectorStore, OpenAI_Chat): def init(self, config=None): ChromaDB_VectorStore.init(self, config=config) OpenAI_Chat.init(self, config=config)
vn = MyVanna(config={'api_key': 'YOUR_API_KEY', 'model': 'gpt-4-...'}) ```
3. 训练数据
```python vn.train(ddl=""" CREATE TABLE IF NOT EXISTS my-table ( id INT PRIMARY KEY, name VARCHAR(100), age INT ) """)
vn.train(documentation="Our business defines XYZ as ...")
vn.train(sql="SELECT name, age FROM my-table WHERE name = 'John Doe'") ```
4. 查询数据
python
sql_query = vn.ask("What are the top 10 customers by sales?")
print(sql_query)
5. 执行查询
使用数据库查询工具(如mysql
命令行工具或Python的aiomysql
库)执行Vanna生成的SQL查询。
6. 清理资源
python
vn.close()
注意事项
- 确保数据库和向量数据库服务正常运行,正确配置环境变量。
- API密钥和模型名称需根据实际情况调整。
- Vanna的性能和准确性取决于训练数据的质量和数量。
- Vanna持续发展,新功能和改进可能随时发布,请定期查看更新。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】