vanna

用大白话问数据库,自动生成SQL并出结果,告别手写查询。

Vanna 是一个开源的 Text-to-SQL 工具,它利用大语言模型(LLM)和检索增强生成(RAG)技术,让用户可以用自然语言直接查询 SQL 数据库。它解决的核心问题是传统数据库查询需要掌握 SQL 语法、门槛高且效率低的问题。Vanna 通过“训练”阶段将数据库 schema、文档和示例查询向量化存储,在“提问”阶段检索最相关的上下文并生成准确的 SQL,然后自动执行并返回结果。它支持多种数据库(如 PostgreSQL、MySQL、Snowflake 等)和多种 LLM 后端(如 OpenAI、Anthropic、本地模型),并提供 Python 库、Jupyter Notebook 集成以及可定制的 UI 界面,方便开发者快速构建企业内部的智能数据问答助手。

开源 free 搜索知识
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 23814
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类搜索知识
开发团队vanna-ai
所属国家
定价模式free
价格说明开源项目,MIT许可证,可免费使用和部署。
访问状态
是否开源是
开源协议MIT
主要语言Python
技术栈/模型agent,ai,data-visualization,database,llm,rag,sql,text-to-sql
GitHub 星标★ 23814
30天Star增速
HF 下载量
上线时间2023-05-13 00:00:00
最近更新2026-09-22 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数1

使用教程

难度:进阶 约 30 分钟 部署方式:库/依赖 6 步

⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。

环境要求

  • Python 运行环境(README 未标注具体版本要求)
  • 可用的 SQLite 数据库文件(示例路径 ./data.db)
  • Anthropic API 凭据(示例使用 AnthropicLlmService)
  • 已有的 FastAPI 应用(用于注册聊天路由)
  • 前端页面(React、Vue 或纯 HTML 均可)

安装与启动步骤

  1. 1查阅官方文档

    README 未提供 pip 安装命令,安装与配置请以官网 Quickstart 和 Configure 文档为准,先完成基础环境准备。

  2. 2准备数据库

    示例用 SQLite,需在项目中准备好数据库文件,代码中通过 SqliteRunner 指向该文件路径。

  3. 3导入 Vanna 模块

    在你的 FastAPI 项目中导入 Agent、FastAPI 路由注册、Anthropic LLM 服务、SQL 工具与用户解析相关模块。

    from fastapi import FastAPI
    from vanna import Agent
    from vanna.servers.fastapi.routes import register_chat_routes
    from vanna.servers.base import ChatHandler
    from vanna.core.user import UserResolver, User, RequestContext
    from vanna.integrations.anthropic import AnthropicLlmService
    from vanna.tools import RunSqlTool
    from vanna.integrations.sqlite import SqliteRunner
    from vanna.core.registry import ToolRegistry
  4. 4装配 Agent

    创建 Anthropic LLM 服务、把 RunSqlTool 注册进工具表,再实例化 Agent 并传入你自己的 user_resolver。

    llm = AnthropicLlmService(model="claude-sonnet-4-5")
    tools = ToolRegistry()
    tools.register(RunSqlTool(sql_runner=SqliteRunner("./data.db")))
    
    agent = Agent(
        llm_service=llm,
        tool_registry=tools,
        user_resolver=MyUserResolver()
    )
  5. 5注册聊天路由

    用 README 提到的 register_chat_routes 把聊天接口挂到现有 FastAPI 应用上,并配合你自己的鉴权逻辑。

    register_chat_routes(app, agent)
  6. 6嵌入前端组件

    在任意网页引入 vanna-components.js,放置 vanna-chat 标签,把 sse-endpoint 指向你的聊天接口。

    
    
    

关键配置

配置项必填说明示例
sse-endpoint是vanna-chat 组件请求的流式聊天接口地址https://your-api.com/chat
theme否前端聊天组件的主题风格dark
model否AnthropicLlmService 使用的模型名称claude-sonnet-4-5
SqliteRunner 路径是指向待查询的 SQLite 数据库文件./data.db

如何确认成功

打开嵌入 vanna-chat 的页面,用自然语言提问,观察是否流式返回进度、SQL、数据表与图表。

常见问题

Q:从 0.x 升级到 2.0 有什么变化?

A:README 指向 Migration Guide(MIGRATION_GUIDE.md)和 What changed 章节,升级前建议先阅读迁移指南再改动代码。

Q:为什么看不到生成的 SQL?

A:README 说明默认只有 admin 角色用户能看到 SQL 代码块,普通用户仅看到表格、图表和自然语言总结。

Q:前端组件要自己处理登录吗?

A:不需要单独写登录,组件会复用页面已有的 cookies/JWT,后端再通过 user_resolver 解析用户身份与权限。

Q:用户权限如何隔离?

A:Vanna 2.0 支持按用户权限过滤查询、行级安全和审计日志,但需要你实现自己的 UserResolver 来提供用户信息。

注意事项

  • README 未给出 pip 安装命令与具体依赖版本,安装方式请以 https://vanna.ai/docs 为准。
  • 示例中的 MyUserResolver 需由使用者自行实现,否则无法完成用户解析与权限过滤。
  • register_chat_routes 的完整参数签名 README 未列出,请参考官方文档与源码。
  • 版本迭代较快,生产使用前建议核对 MIGRATION_GUIDE.md。

核心亮点

  • 通过RAG检索schema和示例,SQL生成准确率显著高于纯LLM提示
  • 支持主流数据库和多种LLM后端,灵活适配企业现有技术栈
  • 提供Python API和UI组件,可快速集成到数据产品中

不足之处

  • 对复杂多表关联查询的生成能力有限,需要人工校验
  • 文档和社区支持相对薄弱,高级定制需深入源码

适用场景

  • 企业内部数据分析师快速获取业务数据,无需写SQL
  • 为数据产品(如BI工具)添加自然语言查询入口
  • 帮助非技术团队自助探索数据库,降低数据访问门槛

替代项目

TextQL、LangChain SQL Agent、MindsDB

项目介绍

vanna 是搜索知识领域的开源项目,由 vanna-ai 开发,2023 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(23,814)位列前 2%,在搜索知识分类的 585 个项目里位列前 5%。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-22。MIT许可证,可免费使用和部署。

它主要面向的使用场景是:企业内部数据分析师快速获取业务数据,无需写SQL。同类可对比的替代方案包括 TextQL、LangChain SQL Agent、MindsDB。

上一篇:RAG_Techniques

下一篇:SurfSense

同类项目推荐

firecrawl 开源

网页抓取像喝水一样简单,开发者省下整周加班

The web data API to search, scrape, and interact at scale.

★ 183325 2026-08-09
contoso-chat 开源

一键跑通 Azure RAG 应用,从代码到评估部署全流程

This sample has the full End2End process of creating RAG application with Prompty an···

★ 766 2026-08-09
graphify 开源

整个代码库画成一张图,找问题一眼定位

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable k···

★ 120493 2026-08-09
ragflow 开源

让大模型用上你的私有知识,搭建可靠的企业级RAG应用

RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fu···

★ 91170 2026-08-09