Skip to content

DiabloZhang/sql2html

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQL2HIVE

把一段 SQL 交给一个固定的三段 Skill Pipeline,让大模型返回:

  • CTE / Final Query 的逻辑关系
  • 每个块在整条链路里的职责
  • 每个块的关键计算、过滤、having、分组、join 条件和表列信息
  • 可直接渲染成结构图的图节点、边和 layout hints

本地不做 SQL AST 解析。
本地只做一件小事:给每个顶层 CTE 和最终查询打稳定锚点 block_id,然后要求模型所有图对象都引用这些 id。

当前架构

  1. 浏览器输入 SQL
  2. 服务端给 SQL 做轻量 block 标记
  3. 服务端分三段把 SQL + block anchors + skill prompt + JSON schema 发给 OpenAI Responses API
  4. 模型依次返回关系 IR、block 语义 IR、graph projection
  5. 服务端统一归一化
  6. 前端把 JSON 渲染成左 SQL 右画板页面

如果本地没有配置 OPENAI_API_KEY,页面会自动退回 mock 模式,先让你测试:

  • SQL 选区联动
  • 图形布局
  • 节点点击弹层

项目目标

这个项目只做两件事:

  1. 把 SQL 讲成一张清楚的 CTE 关系图
  2. 让左边 SQL 输入区和右边结构图联动

不做:

  • SQL AST 工程解析器
  • schema 接入
  • 数据库执行
  • 业务元数据平台

本地运行

npm install
npm run build
npm run start

默认地址:

  • http://127.0.0.1:3000

Live 模式

配置环境变量后,页面里的 Auto / Live 会走真实模型:

export OPENAI_API_KEY=your_key
export OPENAI_MODEL=gpt-5.5
npm run build
npm run start

可选变量:

  • OPENAI_API_KEY
  • OPENAI_MODEL
  • PORT

文档

技术取舍

  • 本地只保留 block 锚点,不做 AST
  • 模型输出必须走 Structured Outputs
  • block 切分由本地负责,关系理解由模型负责
  • 布局坐标由前端负责,模型只给布局 hint
  • 图节点必须绑定已有 block_id
  • 前端只做渲染和交互,不做 SQL 理解

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages