项目概述 - Text-to-SQL 领域的开源 RAG 框架
Vanna 是一款基于 MIT 许可证的开源 Python 检索增强生成(RAG,Retrieval-Augmented Generation)框架,主要用于 SQL 生成及相关功能开发。核心定位是通过 RAG 与 LLM 实现高精度的 Text-to-SQL,最终让用户以自然语言与任意 SQL 数据库交互,无需手动编写 SQL 语句。
跨组件兼容性,支持 LLM + 向量数据库 + SQL 数据库的组合。
- 支持的大模型包括:OpenAI、Anthropic、Gemini、HuggingFace、AWS Bedrock、Ollama、Qianwen、Qianfan、Zhipu。
- 支持的向量存储包括:AzureSearch、Opensearch、PgVector、PineCone、ChromaDB、FAISS、Marqo、Milvus、Qdrant、Weaviate、Oracle。
- 支持的数据库包括:PostgreSQL、MySQL、PrestoDB、Apache Hive、ClickHouse、Snowflake、Oracle、Microsoft SQL Server、BigQuery、SQLite、DuckDB。
- 安全性与隐私保护。作为企业级工具的核心诉求,Vanna 确保数据库内容永不外传——训练阶段仅将表结构、业务文档、历史 SQL 转化为向量存储,不涉及原始数据;SQL 执行过程在用户本地环境完成,避免数据泄露风险。
- 自学习能力:通过反馈 - 迭代机制持续提升精度。如在 Jupyter Notebook 中可开启'自动训练',将成功执行的 SQL 查询自动纳入训练数据;在 Web、Slack 等前端界面中,系统会主动提示用户反馈结果准确性;正确的问题 - SQL 对将被存储,为后续查询提供参考,实现'用得越多,精度越高'。
- 多前端适配性:支持从开发到落地的全流程前端需求。开发阶段可通过 Jupyter Notebook 快速调试;落地阶段可扩展为 Streamlit Web 应用、Flask 服务、Slack 机器人,或自定义前端,满足不同用户群体的交互习惯。
核心架构 - '训练 - 查询'双阶段驱动的技术链路
Vanna 的架构设计围绕 RAG 赋能 Text-to-SQL 展开,核心分为模型训练'与查询交互两大阶段,各阶段由 LLM 层、向量存储层、数据库连接层、前端层四大组件协同支撑,形成低耦合、高可扩展的技术架构。

Vanna 的使用流程分为两个步骤:
- 在你的数据上训练一个 RAG 模型
- 提出问题,系统会返回可配置为在你的数据库上运行的 SQL 语句

Vanna 选择 RAG 而非传统 LLM 微调作为核心技术路径,原因如下:

部署与使用 - 从环境搭建到 Text2SQL 查询落地
Vanna 的部署与使用门槛较低,基于 Python 生态,支持快速上手,核心流程分为环境准备 - 初始化配置 - 模型训练 - 查询交互四步,同时支持自定义扩展。
-
环境准备 通过 PyPI 安装 Vanna 核心包,命令如下:
pip install vanna根据选择的 LLM、向量数据库、目标数据库安装对应依赖。

