项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 23803
技术标签
使用教程
⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。
⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。
环境要求
- Python 运行环境(README 未标注具体版本要求)
- 可用的 SQLite 数据库文件(示例路径 ./data.db)
- Anthropic API 凭据(示例使用 AnthropicLlmService)
- 已有的 FastAPI 应用(用于注册聊天路由)
- 前端页面(React、Vue 或纯 HTML 均可)
安装与启动步骤
-
1查阅官方文档
README 未提供 pip 安装命令,安装与配置请以官网 Quickstart 和 Configure 文档为准,先完成基础环境准备。
-
2准备数据库
示例用 SQLite,需在项目中准备好数据库文件,代码中通过 SqliteRunner 指向该文件路径。
-
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装配 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注册聊天路由
用 README 提到的 register_chat_routes 把聊天接口挂到现有 FastAPI 应用上,并配合你自己的鉴权逻辑。
register_chat_routes(app, agent) -
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.
StruInfo
开源
把文档变成可追溯、可编辑的知识图谱,数据自己掌控
Self-hosted, traceable document-to-knowledge workspace with deterministic workflows,···
local-rag-llamaindex
开源
本地跑通论文问答,快速定位研究要点
Local llamaindex RAG to assist researchers quickly navigate research papers
ai-research-assistant
开源
用大白话提问,自动查资料写报告,省下几小时文献苦工。
Aria is Your AI Research Assistant Powered by GPT Large Language Models
alpha_agentic_search
开源
给 RAG 加上分层记忆,多轮问答不再失忆
Alpha Agentic Search — 分层记忆 RAG 检索问答系统
direct-rag-learning
开源
让RAG检索与生成协同训练,提升知识利用效率
Official code for TOIS2026 "Direct Retrieval-augmented Optimization: Synergizing Kno···
Awesome-AI-Pedia
开源
一站搜罗 AI 资源,找项目、学路线、备面试不迷路
AI skills大全 mcp ai知识库 Agent 全维度 AI 资源百科,DSH插件 收录大模型、智能 Agent、···
mini-rag
开源
手把手分步教学,带你从零搭出生产级 RAG 应用
An Educational Project (step by step) to teach how to build a production-ready app f···
Starcat
开源
把吃灰的 GitHub Stars 变成能搜能问的私人知识库
A native macOS app that turns GitHub Stars into a searchable, organized, AI-powered ···
