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.py:Streamlit 可视化网页界面,做输入校验、图形化展示结果,复用 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 性能优化知识,掌握分层开发、进程托管、程序安全校验等工程化开发思路。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)