{"repo":"fengyede79/text-to-sql-agent-system","free":true,"listed":false,"github":"https://github.com/fengyede79/text-to-sql-agent-system","clone":"git clone https://github.com/fengyede79/text-to-sql-agent-system.git","description":"面向企业结构化数据问数的可控 Text-to-SQL Agent 工程实践，覆盖语义预检、多路元数据召回、LangGraph 编排、SQL 安全校验、有界纠错、Recovery Agent 与真实链路评测闭环。","language":"Python","stars":77,"topics":["agent","elasticsearch","evaluation","fastapi","langgraph","qdrant","sqlglot","sse","text-to-sql"],"license":"MIT","category":"databases-storage","readme_excerpt":"面向结构化数据问数的可控 Text-to-SQL Agent 目标不是演示“LLM 会写 SQL”，而是把自然语言问数做成一条可运行、可观测、可评测、可迭代的工程链路。 项目围绕企业结构化数据分析场景展开，覆盖从前端请求、服务运行时、语义预检、元数据召回、图执行、SQL 安全校验、有界纠错、结果恢复、SSE 返回到评测闭环的完整流程。当前版本已经完成最后一轮 targeted hardening，进入项目封结状态。 项目定位 很多 Text-to-SQL Demo 会把 schema 直接塞给模型，然后让模型一次性生成 SQL。这个项目更关注真实系统里的控制问题： - 用户问题需要先被判断是否适合问数，恶意操作、越权探测、注入类输入不能进入 SQL 链路。 - 表、字段、指标、字段取值来自不同信息源，不能只依赖模型硬猜。 - SQL 生成后必须经过确定性安全校验、schema 校验、执行和有界修复。 - 结果异常、空结果、修复耗尽等场景需要有可追踪的 recovery 分支。 - 项目质量不能只靠主观演示，需要场景集、评分器、bad case 分析和回归套件。 一句话概括：这是一个面向企业结构化数据的可控 Text-to-SQL Agent 工程原型，不是一个已经具备完整 RBAC/ABAC 和生产 SLA 的企业上线系统。 主链路 已落地能力 服务与运行时边界 - React - FastAPI - QueryService - QueryRuntime - LangGraph - SSE 分层清晰。 - 前端不直接绑定 LangGraph 内部节点事件，后端通过事件归一化层输出稳定 SSE 协议。 - QueryRuntime 统一管理一次查询生命周期，承接 preflight、graph 执行、事件封装和错误返回。 检索到 SQL 的推理链路 - SemanticPlan assist 先把用户问题整理成结构化语义计划，再增强 extract keywords 和召回输入。 - 多路召回：字段、指标、字段取值分别召回。 - retrieval selection 输出结构化证据包，不是把所有候选文本直接堆给模型。 - SQL 生成前会补充上下文，降低模型硬猜表字段和指标口径的概率。 SemanticPlan SFT 微调闭环 - 已完成 SemanticPlan 数据构建、SFT 微调、离线评估、远端 provider 接入和 targeted A/B 验证。 - 微调目标不是让模型直接生成 SQL，而是先输出可校验的业务语义计划，增强关键词抽取、字段/指标/过滤召回和风险信号识别。 - SemanticPlan 只作用于召回输入增强层，不绕过 SQL 安全校验、schema 校验、graph 路由和执行闭环。 SQL 安全与有界纠错 - SQL 安全校验使用 sqlglot AST，而不是只靠字符串正则。 - 已覆盖只读约束、多语句、DDL/DML、注释注入、 SELECT 、未知表/列、LIMIT 注入/钳位等场景。 - SQL 纠错链具备失败分类、修复预算、重复无进展终止。 - 对破坏性意图和 SQL 注入类输入，纠错链会快速终止，避免把“应该拒绝的请求”硬修成查询。 - schema 校验已支持 CTE 和子查询别名，避免把虚拟表/别名误报为未知表。 Recovery Agent - 已实现 check recovery - diagnose recovery - prepare recovery - finalize recove","default_branch":null,"files":null,"tree":[],"storefront":"/r/fengyede79","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/fengyede79/text-to-sql-agent-system/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}