- 使用 Agentic RAG 搜索表元数据、示例查询和编写更好 SQL 查询的规则。
- 使用动态少样本示例和规则来改进查询构建。
- 提供交互式 Streamlit UI,供用户查询数据库。
主要功能
- 自然语言到 SQL 的转换
- 使用 Agentic RAG 检索表元数据、示例查询和规则
- 在动态少样本示例和规则的帮助下改进查询构建
- 交互式 Streamlit UI
简单的查询尝试
- “谁是获得最多比赛胜利的前 5 名车手?”
- “比较梅赛德斯 vs 法拉利在车队总冠军赛中的表现”
- “展示一下蒙扎赛道最快单圈时间的进展”
- “哪些车手曾效力于多个车队并赢得过总冠军?”
- “哪些赛道举办的比赛最多?”
- “展示一下刘易斯·汉密尔顿每个赛季的获胜百分比”
高级查询与表连接
- “冠军车手每年赢得了多少场比赛?”
- “比较 2019 年车队的比赛胜利数与车队总冠军数”
- “按年度展示刘易斯·汉密尔顿的比赛胜利数和车队总冠军排名”
- “哪些车手在摩纳哥既赢得过比赛又创造过最快圈速?”
- “展示一下法拉利从 2015 年到 2020 年的比赛胜利数和车队总冠军排名”
代码
完整代码可在 Agno 仓库 中找到。使用方法
1
克隆仓库
2
创建虚拟环境
3
安装依赖
4
运行 PgVector
5
加载 F1 数据
6
加载知识库
知识库包含表元数据、规则和示例查询,这些有助于 Agent 生成更好的响应。为增强知识库的专业技巧:
- 添加
table_rules
和column_rules
来指导 Agent 的查询格式 - 将示例查询添加到
cookbook/examples/apps/sql_agent/knowledge_base/sample_queries.sql
7
设置 API 密钥
8
启动应用