Skip to content

yur92607-cloud/Text-To-SQL

Repository files navigation

NottaLite Text-to-SQL · 在线 Demo

面向非技术 PM 的 Data Agent demo——从一句自然语言到一段 SQL,全程不接触真实数据。

在线体验:https://yur92607-cloud.github.io/Text-To-SQL/

单文件 HTML,浏览器打开即用。

一分钟体验

打开链接后试这几个 chip:

Chip 演示什么
多轮澄清 "去年王者荣耀的日活" → AI 反问澄清 → 回答后生成 SQL
禁止编造 "上周的狂热值" → AI 拒绝并推荐相近指标
权限拦截 切到 L3 → "上周 DAU" → 拒绝并推荐替代
多路径还原 切到 L2 → "昨天 GMV 和 ARPU" → 检测到可推 DAU 拦截

右上角 📐 整体流程 可以看完整架构图和 6 步流程。

设计

三层结构

┌──────────── Data Agent 三层底座 ────────────┐
│                                              │
│  语义层  ──→  Harness  ──→  信息边界          │
│  让 AI       让 AI         让 AI              │
│  正确理解    稳定使用       不越界返回         │
│                                              │
└──────────────────────────────────────────────┘
实现
语义层 8 张表 .md(语义模型)+ 3 个专题(业务方法论)+ 别名表(12 个指标的同义词)
Harness 意图理解 / 多轮澄清 / RAG 召回 / 三道防线 / 三层记忆
信息边界 数据不出域 + L1/L2/L3 权限分级 + 多路径还原检测 + 零信息量拒绝

4 个设计取舍

  1. 数据不出域——AI 只输出 SQL,全程不接触真实数据。安全边界从"事后做权限"前置到"产品形态"。
  2. 禁止编造——SQL 里每个字段、筛选值、计算逻辑必须能在知识库找到出处。找不到就问用户,不猜。
  3. 多轮澄清而不是直接生成——非技术用户的提问天然带歧义("去年" / "活跃" / "用户"),主动反问比直接生成错的 SQL 更安全。
  4. 按工作场景授权——不按单指标授权,按业务场景(用户增长 / 商业化 / 内容运营),并显式登记指标 DAG,防止低权限指标组合反推高敏指标。

仓库结构

Text-To-SQL/
├── index.html                    在线 Demo(GitHub Pages 入口)
├── README.md
│
├── app.py                        本地完整版 Flask 后端
├── requirements.txt
├── 启动.sh                       一键启动脚本
├── core/                         核心代码(4 个模块)
├── knowledge/                    知识库
│   ├── tables/                   8 张表语义 .md
│   ├── topics/                   3 个专题 .md
│   ├── glossary.json             业务术语别名表
│   └── permissions.json          权限矩阵
│
├── data/seed.py                  模拟数据生成
├── memory/                       LEARNINGS.md 自动维护
├── docs/                         6 份分模块设计文档
└── 项目介绍-怎么做的.docx

两种使用方式

方式 1:直接打开在线 Demo

https://yur92607-cloud.github.io/Text-To-SQL/

任何浏览器打开就能用。

方式 2:本地完整版(含 Flask 后端)

git clone https://github.com/yur92607-cloud/Text-To-SQL.git
cd Text-To-SQL
./启动.sh
# 访问 http://127.0.0.1:5050

技术栈

在线 Demo 完整本地版
单文件 HTML + 原生 JS Python + Flask
知识库内联(JSON) 文件系统读取
Mock LLM(规则模拟) Mock LLM(同)
离线运行 本地端口 5050

设计文档

docs/ 目录下分了 6 份:

也可以直接看 项目介绍-怎么做的.docx

关于

  • 作者:俞锐
  • 背景:港中深统计学硕士;前 Notta AI 数据科学;前腾讯 IEG 数据产品经理
  • 联系:yr92607@gmail.com
  • 同期项目:ai-radar-agent

About

NottaLite Text-to-SQL · 企业级 Data Agent Demo · 数据不出域 + 双层语义 + 三道防线 + 多路径权限检测

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors