vanna

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 搜索知识 🍴 复刻 2550 🐛 待处理 289 👀 关注 4 ⚠️ 作者已归档(停止维护)
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 23803
维护状态 低维护
是否开源 开源
定价模式 🏷️完全免费 开源项目,MIT许可证,可免费使用和部署。

项目预览

vanna 项目界面预览图
图片来源:项目官网

项目数据

分类搜索知识
开发团队vanna-ai
定价模式🏷️完全免费
价格说明开源项目,MIT许可证,可免费使用和部署。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言Python
技术栈/模型agent,ai,data-visualization,database,llm,rag,sql,text-to-sql
GitHub 星标★ 23803
上线时间2023-05-13 00:00:00
代码更新2026-02-02
仓库体积8.4 MB
本站数据更新2026-11-09
维护状态低维护
收录时间2026-08-09
浏览次数3

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 23803

使用教程

⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。

难度:进阶 约 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 指向你的聊天接口。

    <script src="https://img.vanna.ai/vanna-components.js"></script>
    <vanna-chat
      sse-endpoint="https://your-api.com/chat"
      theme="dark">
    </vanna-chat>

关键配置

配置项必填说明示例
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

上一篇:RAG_Techniques

下一篇:SurfSense

同类项目推荐

deepRAG 开源

混合实验技术,让 RAG 检索结果更准更干净

Uses a blend of experimental techniques to enhance LLM RAG resultsets.

★ 105 2026-10-02
StruInfo 开源

把文档变成可追溯、可编辑的知识图谱,数据自己掌控

Self-hosted, traceable document-to-knowledge workspace with deterministic workflows,···

★ 91 2026-10-09
local-rag-llamaindex 开源

本地跑通论文问答,快速定位研究要点

Local llamaindex RAG to assist researchers quickly navigate research papers

★ 135 2026-08-09
ai-research-assistant 开源

用大白话提问,自动查资料写报告,省下几小时文献苦工。

Aria is Your AI Research Assistant Powered by GPT Large Language Models

★ 1731 2026-08-09
alpha_agentic_search 开源

给 RAG 加上分层记忆,多轮问答不再失忆

Alpha Agentic Search — 分层记忆 RAG 检索问答系统

★ 474 2026-10-02
direct-rag-learning 开源

让RAG检索与生成协同训练,提升知识利用效率

Official code for TOIS2026 "Direct Retrieval-augmented Optimization: Synergizing Kno···

★ 263 2026-08-09
Awesome-AI-Pedia 开源

一站搜罗 AI 资源,找项目、学路线、备面试不迷路

AI skills大全 mcp ai知识库 Agent 全维度 AI 资源百科,DSH插件 收录大模型、智能 Agent、···

★ 663 2026-09-20
mini-rag 开源

手把手分步教学,带你从零搭出生产级 RAG 应用

An Educational Project (step by step) to teach how to build a production-ready app f···

★ 754 2026-08-09
Starcat 开源

把吃灰的 GitHub Stars 变成能搜能问的私人知识库

A native macOS app that turns GitHub Stars into a searchable, organized, AI-powered ···

★ 216 2026-09-12