程序聚合 软件案例 NLP2SQL 智能数据库查询系统

NLP2SQL 智能数据库查询系统

2026-08-04 19:06:46
行业:人工智能
载体:网站
技术:Oracle SQL Developer

业务和功能介绍

1. 立项背景和目标

NLP2SQL 是从零搭建的智能数据库查询 Demo。立项背景是想验证一条朴素的假设:让业务人员用自然语言直接查库,能不能用现有
LLM 加 LangChain 拼出一条端到端、不依赖写代码就能用的最短路径。

系统解决的核心问题是"懂业务的人查不到数据,懂数据的人问不到业务"——业务侧的需求(比如"研发部和市场部的人数对比"、"他们
薪资呢")必须经过开发翻译成 SQL,且每次新需求都要排期。立项目标只有一句话:让用户用中文提问,系统自己生成
SQL、执行、总结结果,三步内拿到答案。

项目以 employees 示例库(5 张表、20 员工)为基准,覆盖统计、过滤、聚合、JOIN、模糊匹配、多轮引用 6
类典型问题。设计文档里明确写了不做什么:不支持写操作、不做多租户与权限隔离、不做生产监控、只支持 MySQL
一种方言、不引入 ReAct Agent 的多步推理——避免范围蔓延。

2. 软件功能与核心功能模块

系统暴露 6 个 HTTP 端点,对应 6 类能力,全部在 app/main.py 里实现。

主端点是 POST /api/v1/query,承担"自然语言→SQL→执行→总结"的全流程。辅助端点包括 GET /api/v1/schema/tables 和
/schema/tables/{name} 浏览库表和单表 schema、/schema/tables/{name}/sample 读样本行;POST /api/v1/schema/reload
在数据库结构变更后重建向量索引;GET 与 DELETE /api/v1/sessions/{sid} 拉取和清空多轮对话历史;GET /health
用于健康探活,GET /docs 是 Swagger UI,零额外成本即可调试。

核心代码按单一职责拆成 7 个模块。Pipeline 是 app/pipeline.py 里的编排器,run 方法按"检索 schema→生成
SQL→校验→执行→总结→写记忆"六步串行执行,任意一步失败都返回结构化 QueryResponse,含
sql_validated、validation_error、execution_time_ms 三个可观测字段。SQLGenerator 在
app/chains/sql_generator.py,负责调用 LLM 并把"LLM 自由输出"压成"纯 SQL",需要剥离 think 标签、Markdown
代码块、按分号切分后逐条验证取第一条合法只读语句。validate_sql 在 app/chains/validator.py,是系统的安全防线,用
sqlglot 解析 AST,白名单只放 Select、Uni

项目实现

架构选的是单链 Pipeline,明确放弃 ReAct Agent,避免循环调试成本。HTTP 进入后 6
步顺序执行,每一步独立可测,失败立即返回结构化错误。

各模块的技术栈如下。Web 层用 FastAPI ≥0.110 配 Uvicorn ≥0.27,因为异步原生、Pydantic 模型自校验、/docs 零成本生成
Swagger。LLM 适配用 LangChain ≥0.3 配 langchain-openai,通过 OpenAI 兼容接口接入 MiniMax-M3,无需为单家厂商写适配。SQL
校验用 sqlglot ≥20,真正解析 AST 而不是正则,支持方言且能递归扫子节点。数据库用 SQLAlchemy 2 配 PyMySQL,2.x 新风格
API,pymysql 纯 Python 免编译。向量检索用 ChromaDB ≥0.5 配 ONNX embedding,轻量、本地持久化、不引入 torch
那套重依赖,schema 改动可手动 reload。配置用 pydantic-settings ≥2 做 .env 强类型解析,启动即失败。测试用 pytest 加
pytest-asyncio 加 httpx 加 pytest-cov。

前后端是分离的。后端纯 REST;前端(frontend/)是独立的 Vite 加 React 加 shadcn/ui 工程,开发端口 5173 通过 Vite proxy
把 /api、/health 转给 8000,跨机部署用 VITE_API_TARGET 环境变量覆盖,无需改代码。

示例图片视频


豆翔苏斌油
30天前活跃
方向: 人工智能-AI应用开发、
交付率:100.00%
相似推荐
quick_server
1、背景和目标:对企业所有服务请求进行轻量级安全和速度优化,减轻服务器的并发压力。 2、quick_server系统,不依赖外部引用,即插即用,主要用来进行极速快捷安全的http请求。大大减轻服务器的并发压力。轻松实现高并发场景下极速快捷安全的http请求。
json解析转换器
1、背景和目标:一、超级快速、安全对json的解析与对象转换;二、支持分布式超高并发 2、json解析转换器,支持分布式高并发,支持百万级别访问。用于快速进行json的解析与对象转换。原有的开源工具,要么安全性不够,要么性能不够强悍,要么不支持定制,很难满足企业日益严苛的业务需求。开发的这个json解析转换器,可以同时满足以上三种需求。
消息中心
1、背景和目标:解决高并发,对外提供统一的消息处理业务 2、功能模块介绍:六大功能模块:http通讯模块、缓存模块、消息队列模块、消息重试中心模块、消息调度模块、公共模块;对外百万级别并发项目,TPS可达1000/s。作为中间件,对外提供统一的消息处理业务。所有系统,包括电子签章平台、一照通行平台、一网通办平台,消息的请求和处理都经过消息中心。轻松实现异步、解耦、削峰。 3、功能描述:支持企业所有的内部系统接入,包括电子签章平台、一照通行平台、一网通办平台。轻松实现异步、解耦、削峰。
CRM客户管理后台
立项背景:针对中小型企业客户信息分散、销售跟进过程不透明、合同管理混乱等痛点,旨在打造一个轻量级的客户全生命周期管理后台,提升销售团队协作与转化效率。 核心功能:涵盖管理员登录鉴权、客户主表管理、联系人维护、跟进记录追踪、合同管理等六大模块。支持客户信息分页查询、关键字搜索、新增编辑与逻辑删除;客户详情页以名片形式集中展示联系人、跟进记录及关联合同。 业务流程:从潜在客户录入,到日常跟进记录,再到最终合同签订与操作日志审计,覆盖完整的销售业务闭环。
个人记账与资产管理平台
本项目是一套从零搭建的全栈个人财务管理平台,目标是替代功能单一的记账工具,把日常记账、资金账户、借贷往来、预算控制、资产盘点收敛到一个数据自主的系统中。系统由 12 个业务模块、23 个控制器、170 个 REST 接口、36 张数据表构成:记账核心支持三级分类树、商家联想、多平台支付与 CSV 批量导入导出,每笔账单自动联动账户余额并留存流水日志;借贷模块实现未结清 / 已结清 / 已放弃三态模型,支持分期还款与坏账核销;预算模块提供月度 + 年度双层体系与阶梯式执行规则;资产模块通过快照与趋势图呈现净资产变化;报表模块支持从月度 / 年度报表下钻到分类明细。系统还包含完整 RBAC 权限体系、软删除回收站、8 套主题实时切换与中英双语国际化。核心业务流程为:记一笔 → 余额幂等联动 → 报表与预算同步更新;借据从创建、关联账单凭证、分期还款到三态判定的完整生命周期;以及登录后由后端菜单树动态生成侧边菜单、路由与区块双重门控的权限链路。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服