openEuler 轻量化 AI SQL 工具实战
一、项目简介本项目基于国产openEuler操作系统、MySQL 8.0数据库,结合腾讯云TokenHub大模型网关,开发轻量化InnoAl SQL智能助手系统,面向电商订单数据业务场景,支持接收自然语言需求自动生成合规只读SQL查询语句、执行数据统计并输出AI业务分析结果,同时可解析SQL执行计划、智能生成索引优化方案。项目单人完成开发与部署,提供命令行终端、Web网页两套交互方式,无需使用者掌握专业SQL开发技能,能够替代人工制作统计报表、手动分析SQL性能瓶颈等重复运维工作,实现数据查询、SQL调优、AI智能数据分析。核心实现功能1.通过中文自然语言描述业务需求自动生成只读 SQL执行查询并输出 AI 业务分析总结2.支持传入 SQL 语句自动获取执行计划识别性能瓶颈输出索引优化方案3.内置安全防护机制拦截增删改、建删表等高危 SQL敏感配置独立存储避免密钥泄露。二、整体逻辑说明整套工具采用分层解耦思路开发模块职责划分清晰便于后续迭代拓展1.交互入口分为服务器终端交互式菜单、Streamlit 可视化网页两端复用同一套底层逻辑减少重复开发2.Python 核心业务层包含数据库封装模块、大模型提示词模块、程序调度入口、网页 UI 代码、独立配置文件3.数据存储层openEuler 虚拟机内部署 MySQL8.0创建电商订单测试表使用模拟订单数据开展测试4.AI 能力支撑依托 TokenHub 大模型聚合网关兼容多款主流大模型统一接口调用。三、环境部署步骤1.openEuler 系统初始化关闭防火墙与 SELinux 防止端口拦截配置阿里云时间同步服务提前安装 gcc、openssl 等编译依赖包查看服务器内网 IP命令hostname -I。2.源码编译 Python3.11.9从官网https://www.python.org/downloads/release/python-3119/下载 Python 源码包上传服务器编译安装配置国内 pip 镜像加速依赖下载安装 pymysql、streamlit、langchain 等项目所需第三方库。3.MySQL8.0 单机部署下载https://downloads.mysql.com/archives/community/采用二进制包方式部署 MySQL创建专用系统用户降低权限风险新建order_info订单业务测试表导入 20 条模拟订单数据。4.大模型平台密钥配置注册腾讯云并完成实名认证在 TokenHub 平台创建 API 密钥优先选择无冗余思考链输出的模型避免多余文本干扰程序提取 SQL。四、项目核心文件说明1.项目根目录一共 5 个核心代码文件.env存放数据库、腾讯云TokenHub大模型密钥等配置分离敏感信息与业务代码mysql_client.py封装MySQL连接、查询与执行计划获取拦截危险SQL保障数据库安全prompts.py统一存放生成SQL、调优分析两套AI提示词并提供提取纯净SQL的工具函数main.py项目总调度串联数据库、大模型、提示词提供终端菜单交互实现完整业务逻辑web_main.pyStreamlit可视化网页界面做输入校验、图形化展示结果复用main核心逻辑。五、业务 SQL 功能测试设计多组真实电商业务用例完成全量测试覆盖分组统计、区间筛选、模糊匹配、聚合计算等场景自然语言查询测试输入需求统计 1001、1002、1003 每个用户的订单总消费金额与订单笔数按总消费从高到低排序。工具自动生成规范 SELECT 语句执行后输出格式化表格同时 AI 输出分层用户价值、复购行为等业务分析总结。SQL 性能调优测试将上一步生成的统计 SQL 粘贴至调优功能程序自动抓取 EXPLAIN 执行计划识别全表扫描、临时表、文件排序等性能问题输出可直接执行的覆盖索引创建语句同时给出优化后的标准 SQL。边界场景测试针对无匹配数据、空白输入、超长复合需求、含特殊字符的商品名称等场景验证程序不会崩溃报错安全测试验证工具不会生成 DELETE、ALTER 等危险修改语句。六、功能实测演示终端自然语言查询运行python3 main.py输入中文需求自动生成 SQL、打印表格并附带业务总结终端 SQL 性能调优粘贴查询语句自动获取执行计划输出索引优化方案Web 网页访问浏览器输入服务器IP:8501可视化操作业务人员可自助查询、调优 SQL。六、项目开发难点与解决方案大模型输出格式杂乱通过标准化提示词约束输出搭配正则函数精准提取 SQL数据安全风险增加 SQL 黑白名单校验仅放行 SELECT 只读查询Web 服务易中断编写 systemd 托管程序实现后台常驻、开机自启。七、项目优势与学习收获1.项目优势适配国产 openEuler 系统轻量化单机部署低配虚拟机即可运行Streamlit 零前端开发快速交付可视化网页完善安全机制密钥与代码分离杜绝误删数据、信息泄露自动化完成报表统计、慢 SQL 分析减少开发与运维重复工作。2.学习收获完整实践国产 Linux 服务部署、Python 模块化开发、大模型 API 调用、MySQL 性能优化知识掌握分层开发、进程托管、程序安全校验等工程化开发思路。