基于openEuler+MySQL8.0+大模型的InnoAI SQL智能助手
一、项目简介
1.1 项目概述
本项目基于 openEuler Linux、MySQL 8.0.45、Python 3.11 以及腾讯云 TokenHub 大模型聚合平台,构建了一套名为 InnoAI SQL 助手的电商订单库 AI 智能查询与 SQL 性能调优一体化工具。
该工具旨在降低数据库查询门槛,业务人员无需掌握 SQL 语法,只需输入自然语言描述,即可自动生成安全的只读 MySQL 查询语句、执行查询,并以结构化表格形式展示结果,同时辅以 AI 生成的通俗易懂的业务解读。此外,工具也支持直接输入任意 SELECT 语句,自动解析其 EXPLAIN 执行计划,精准定位全表扫描、文件排序等性能瓶颈,并提供可直接执行的索引创建建议与 SQL 改写优化方案。
为适配不同用户习惯,工具提供了命令行终端与 Streamlit 可视化 Web 页面双操作入口,满足运维、开发、运营等多角色使用需求。
1.2 核心功能
-
NL2SQL 自然语言转查询:仅生成安全的 SELECT 查询语句,自动拦截 INSERT、UPDATE、DELETE、DROP 等危险操作,确保数据安全可控。
-
自动执行与智能解读:自动执行生成的 SQL,以清晰表格展示查询结果,并调用大模型输出通俗易懂的业务总结与分析。
-
SQL 性能智能调优:自动解析 SQL 的 EXPLAIN 执行计划,精准定位全表扫描、文件排序等性能瓶颈,输出可直接执行的索引创建语句与优化后的 SQL 改写方案。
-
配置与安全加固:采用配置文件分离敏感信息(如数据库密码、API密钥),并对密钥文件进行权限加固,杜绝账号密码明文泄露风险。
-
双端交互体验:提供 Shell 交互式菜单与 Streamlit 浏览器可视化面板两种使用方式,并支持后台常驻运行,方便不同场景下的使用。
分层架构说明: -
接入交互层
- 命令行: python3 main.py 终端交互式菜单
- Web可视化:Streamlit网页面板,浏览器访问使用
- Python程序核心层(分层解耦5个文件)
- main.py :总调度入口,封装两大核心业务逻辑,命令行主程序
- web_main.py :Streamlit前端页面,复用main底层逻辑
- mysql_client.py :数据库访问封装,SQL安全拦截、连接管理、EXPLAIN获取
- prompts.py :统一管理NL2SQL、SQL调优提示词,内置SQL提取工具
- .env :独立配置文件,存放数据库、大模型密钥,与代码分离
-
底层数据持久层
openEuler虚拟机MySQL8.0.45, testdb.order_info 电商订单测试表,内置20条测试订单数据 -
AI大模型服务层
腾讯云TokenHub聚合平台,兼容OpenAI标准接口,支持DeepSeek V4 Pro、Qwen3.5-Plus模型切换
二、前置准备工作 -
一台openEuler 2203_SP4虚拟机/云服务器,开通外网访问权限(需调用大模型API)
-
腾讯云账号,完成实名认证,开通TokenHub大模型平台,获取API Key
-
XFTP/SSH工具,用于文件上传、远程服务器操作
-
防火墙放行8501端口(Streamlit Web端口)、3306(MySQL)、443(大模型HTTPS接口)
三、环境完整部署步骤
3.1 openEuler系统初始化配置
3.1.1 关闭SELinux、防火墙、修改主机名
sed -i ‘7s/enforcing/disabled/’ /etc/selinux/config
3.1.2 配置同步时间并安装系统编译依赖包
dnf install -y gcc gcc-c++ make cmake zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel libffi-devel tk-devel wget tar vim tree net-tools openssh-server
3.2 源码编译安装Python3.11.9
3.3 配置国内阿里Pip源 + 安装项目依赖
创建pip配置目录
mkdir ~/.pip
vim ~/.pip/pip.conf
pip3 install --upgrade pip
pip3 install pymysql python-dotenv tabulate langchain langchain-openai streamlit sqlparse
python3 -c “import pymysql,streamlit,langchain_openai;print(‘全部依赖安装完成’)”
3.4 MySQL8.0.45 编译部署初始化
配置Mysql系统服务,开机自启:
创建systemd服务文件:
加载服务并开机启动:
3.5 腾讯云TokenHub大模型平台密钥申请
四、项目代码完整开发
4.1 创建项目目录结构
目录结构:
4.2 编写.env配置文件(权限加固600)

4.3 mysql_client.py 数据库封装代码

4.4 prompts.py 提示词管理 + SQL提取工具
4.5 main.py 项目核心调度 + 终端交互菜单
五、项目功能测试
5.1 终端命令行测试启动

提供2个核心功能:
- 自然语言查询测试用例示例:
查询用户1001、1002、1003每个用户的订单总消费金额与订单笔数,按总消费从高到低排序
程序自动生成SQL、执行查询、输出表格+AI业务总结;
2. SQL性能调优测试:粘贴生成的SELECT语句,自动解析EXPLAIN,输出索引创建SQL与优化方案。
5.2 Web页面访问测试
-
获取服务器IP: hostname -I
-
浏览器访问: http://服务器IP:8501
-
左侧侧边栏切换「数据查询」/「SQL调优」两大页面,图形化操作,支持代码复制、表格展示、折叠错误日志。
5.3 安全功能验证
-
安全拦截:输入包含DELETE/DROP/ALTER等需求,程序拦截危险SQL,提示仅支持SELECT;
-
密钥安全: .env 文件权限600,程序不会打印明文账号密钥;
-
异常捕获:空白输入、无匹配数据、数据库断连、大模型API超时均友好提示,程序不崩溃。
六、项目核心知识点总结(适合CSDN文末升华)
-
openEuler运维:系统初始化、防火墙/SELinux安全加固、源码编译Python、systemd服务托管;
-
MySQL8.0运维:InnoDB索引设计、EXPLAIN执行计划性能分析、生产级数据库初始化、只读权限管控;
-
Python分层开发:数据访问层、提示词工程层、业务调度层、前端展示层解耦,低耦合易维护;
-
NL2SQL提示词工程:强约束Prompt规范模型输出,SQL正则清洗、代码块提取,解决大模型幻觉;
-
MaaS大模型集成:基于OpenAI标准接口对接TokenHub聚合平台,一套代码切换多模型;
-
Streamlit低代码Web开发:零前端开发快速搭建数据工具可视化面板,后台常驻部署;
-
企业安全规范:配置文件与代码分离、文件权限管控、SQL危险语句拦截、仅开放只读查询。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)