Text2SQL是一个基于大语言模型(LLM)与**LangGraph**构建的智能体(Agent)系统。用户通过自然语言提问(如“上个月销量前十的产品是什么?”),系统自动生成并执行SQL查询,返回直观结果,极大降低了非技术人员的数据获取门槛。
点击空白处退出提示
Text2SQL是一个基于大语言模型(LLM)与**LangGraph**构建的智能体(Agent)系统。用户通过自然语言提问(如“上个月销量前十的产品是什么?”),系统自动生成并执行SQL查询,返回直观结果,极大降低了非技术人员的数据获取门槛。
智能体状态机(基于LangGraph的图编排与循环决策),多模型适配与配置管理中心,数据库操作工具集(Schema查询、SQL执行、结果格式化、SQL自动修正),双端交互界面:StreamlitWeb前端+命令行Demo
杂自然语言(如嵌套条件、多表JOIN)生成SQL易出错→引入Schema检索增强:仅向LLM提供相关表结构(而非全部),减少噪声,并加入ReAct模式让Agent先思考再行动。
多轮对话上下文管理→使用LangGraph的Checkpointer保存会话状态,实现记忆功能。
1.架构设计:设计并实现了基于LangGraph的智能体状态机,将自然语言→SQL→执行→反馈修正→最终答案封装为循环状态图;Agent具备自主Schema探索能力(先查询库/表/列信息,再生成SQL)和SQL自动修正**功能(执行失败后将错误信息喂给LLM并重试1-2次),整体任务成功率由72%提升至91%。
2.模型集成与调优:成功集成DeepSeek-V2、通义千问Qwen-plus等主流大模型,通过抽象接口实现一键切换;针对SQL生成任务设计了ew-shotPromptTemplate(包含5组典型问答示例),并优化温度参数(temperature=0.1)与Top-p,确保输出稳定、确定性强;使用JSONMode约束输出格式,便于后处理解析。
3.安全性优化:实现数据库连接信息、APIKey等敏感数据的环境变量(.env)管理,严禁硬编码;对用户输入的自然语言进行基础过滤(防止注入攻击的初级防御),并在SQL执行层限制危险语句(如DROP、DELETE),保障数据库安全。
4.交互体验:开发Streamlit界面,支持对话式多轮交互,可展示生成的SQL语句、执行耗时与查询结果表格(或图表);提供词云、柱状图等简易数据可视化功能,进一步提升用户友好度。同时开发了命令行版本,方便开发者调试。
5.项目价值:项目完整复现了RAG+Agent的工程范式,代码结构清晰(模块化拆分:agents/,tools/,models/,utils/),可作为个人AI应用代表作。



评论