littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于Python的Vanna SQL生成框架

项目简介

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】