程序聚合 软件案例 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%
相似推荐
AI自动寻访
基于大语言模型与RPA技术打造的智能化招聘寻访系统,通过机器人在主流招聘平台自动抓取候选人简历,结合AI语义分析进行岗位匹配度打分,并模拟招聘话术完成初步意向沟通,大幅降低HR初筛成本,提升寻访效率与覆盖面。
房屋租赁管理系统
项目目标是搭建一套轻量化房屋租赁管理 Web 系统,解决房源信息登记、租客管理、合同记录等基础管理需求。系统分为管理员端与租客端,管理员可实现房源新增、修改、下架,查看租客信息、租赁合同、租金记录;租客可浏览房源、查看房屋详情、提交租房申请。使用 SpringBoot 搭建后端接口,MySQL 存储房源、用户、订单数据,前端实现页面渲染,完成基础业务流转,实现房屋租赁业务线上化管理。
代码生成网站
一款基于 Web 的全栈代码生成工具,通过数据库元数据驱动,自动生成前后端可运行代码,消除 CRUD 等重复性编码工作,让开发者聚焦业务逻辑。 **核心能力:** - **多数据库兼容**:支持 MySQL、Oracle、SQLServer、PostgreSQL 四种主流数据库,通过统一元数据读取层屏蔽差异,自动解析表结构、字段、主键、索引与注释。 - **前后端一键生成**:基于 FreeMarker 模板引擎,生成后端实体类、Mapper、Service、Controller 及前端 Vue 页面(含列表、表单、搜索、分页),代码开箱即用。 - **模板可定制**:模板文件独立管理,支持按团队编码规范自定义代码风格与包结构。 **技术栈:** Spring Boot + FreeMarker + Vue,元数据驱动架构。 **后续规划:** 持续丰富模板库(微服务、MyBatis-Plus、React 等),支持在线预览与增量生成,完善字段类型映射规则配置,打造轻量高效的开发辅助平台。
房抵贷小程序(图片仅供参考)
房屋抵押贷款微信小程序,里面包含了线上评估房屋、申请贷款、个人征信初审、第三方大数据信息二审、上门签约、贷款发放、贷后预警等模块。相当于一个小的信贷管理系统,包含对个人用户是否具备贷款资格的决策引擎。
某电商平台商品后台曝光流量分析平台
给电商企业管理PR博主库和与博主的合作视频,实时分析带货视频曝光情况,以及对应曝光款式的后台走量来判断投流ROI,以此辅助决策投流方案,便于电商企业做复盘和数据分析。解决了电商后台、自媒体平台、飞书、ERP等多个零散数据的碎片化问题,做了集成。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服