项目:InnoAI SQL 助手
目录
6.1.3创建 Streamlit 可视化入口 web_main.py
1. 项目说明
本项目以 MySQL 8.0 DBA 运维核心知识点为基础,结合硅基流动开源大模型 API,构建一套电商订单库智能查询与性能调优系统。
系统可接收业务自然语言自动生成合规 MySQL 查询语句,自动执行查询并输出结构化表格,依托大模型完成订单数据业务解读,同时解析 SQL 执行计划输出标准化索引优化方案,全程无需人工手写、分析 SQL。
核心价值:无需专业 SQL 开发能力即可完成业务数据查询,自动替代人工统计报表、手工分析执行计划等重复性运维工作;深度融合 MySQL 数据库运维能力与大模型自然语言解析能力,适配企业轻量化数据查询、SQL 性能优化、AI 智能解读一体化落地场景。
2. 项目背景知识
2.1. 系统需求
功能需求:
非功能需求:
2.3. 大模型 API
腾讯云TokenHub大模型平台
2.4. 技术架构
2.4.1. 流程图

2.4.2. 架构说明
接入交互层(左侧)
面向运维、开发、业务运营人员,提供两种使用入口,适配不同场景:
- 命令行终端模式:在 openEuler 服务器终端执行 python3 main.py 进入交互式菜单,支持自然语言
- 查数据、SQL 性能调优两大功能。
- Web 可视化模式:浏览器访问 Streamlit 面板,通过图形化界面完成查询与调优操作,自带输入校
- 验、结果表格、代码复制等易用性功能。
Python 程序核心层
采用分层解耦设计,共 4 个核心文件 + 1 个配置文件,职责边界清晰,便于教学与二次开发:
main.py:总调度入口与公共服务层。封装自然语言转 SQL 查询、AI 业务总结、SQL 性能调优三大核心业务流程,同时提供命令行交互入口,Web 端统一调用该文件的公共函数,避免代码重复。
web_main.py:Web 可视化界面层。基于 Streamlit 实现图形化交互,包含输入合法性校验、页面版式优化、代码块复制修复、结果表格渲染等前端能力。
prompts.py:提示词工程层。统一管理 NL2SQL、SQL 调优的 Prompt 模板,内置 SQL 提取工具函数,实现提示词与业务逻辑解耦,优化模型输出格式。
mysql_client.py:数据访问层。统一封装 MySQL 8.0 连接、查询、执行计划获取能力,内置 SQL 安全校验机制,仅允许 SELECT 语句执行,保障数据安全。
.env:独立配置文件。集中存放数据库连接参数、大模型 API 密钥与模型名称,敏感信息与代码分离,全局统一依赖。
底层数据持久服务层
AI 大模型服务层
采用腾讯云 TokenHub 大模型聚合平台作为统一 AI 能力出口,同时为 NL2SQL 生成、业务数据总结、SQL 性能分析三类场景提供大模型能力:
- 平台兼容 OpenAI 接口标准,一套代码可无缝切换 DeepSeek V4 Pro、Qwen3.5-Plus 等多款主流模型
- 统一鉴权、统一计费、统一运维,避免多厂商对接成本
- 依托腾讯云基础设施提供高可用保障,满足生产环境使用需要
3. 软硬件环境清单

4. 项目实施
4.1. 环境搭建
4.1.1. 系统搭建及初始化
1.配置一台OpenEuler2203_server虚拟机


硬件配置如图:

自定义分区:

安装成功之后使用XSHELL进行远程连接,进行基础配置
2.关闭防火墙
![]()
进入修改SELinux为disabled
最后取消开机启动

验证:是否为dead

3.关闭SELinux

重启后getenforce 改为disabled
4.更换时间同步服务器

![]()
修改为阿里云
5.下载所需软件及依赖

4.1.2. 源码编译安装Python3.11.9
1.进入源码存放目录并解压
使用Xftp8上传python压缩包
2.进入Python-3.11.9后编译配置

多核编译安装并配置动态链接库
![]()
解决libpython缺失报错
3.建立全局软连接并验证安装
不覆盖系统自带Python3
4.校验SSL模块(AI)接口必备
4.1.3. 配置国内 pip 源及安装项目依赖
1.配置pip仓库为阿里镜像站,提高下载速度


2.安装python及ai所需依赖

4.1.4. 部署并初始化MySQL 8.0.45
1.使用xftp将MySQL软件包上传到根目录
2.解压缩


3.使用前的准备
3.1移动到默认安装目录

3.2创建mysql的系统用户,将其添加到mysql组中,并设置其不可登录,以限制该用户的登录权限

3.3设置mysql目录的账户及工作组,生产环境中不要使用root

4.初始化软件
4.1初始化

需要复制密码,后续登录时要用
4.2再启动一个终端

4.3修改密码并刷新


返回上一个终端,敲一个回车,显示进程以杀死
5.设置mysql的配置文件


6.配置启动脚本


7.设置mysql命令识别

添加语句:export PATH=$PATH:/usr/local/mysql/bin
8.测试

4.1.5创建库和表
创建订单业务表

验证数据

4.2获取API Key
4.2.1. 网址:腾讯云官网
4.3脚本开发阶段
4.3.1. 新建目录及脚本

4.3.2编写环境变量脚本


4.3.3编写数据库连接脚本




4.3.4.编写sql转换脚本




4.3.5. 编写程序入口脚本










5.测试
5.1. 项目执行

5.2生产SQL测试
6.web可视化版本
6.1部署流程
6.1.1原则
已有业务文件: main.py mysql_client.py prompts.py .env文件不变
需要编写web_main.py入口文件即可
6.1.2安装Python依赖

检查:

6.1.3创建 Streamlit 可视化入口 web_main.py








6.1.4创建 systemd 后台常驻服务
1.建立streamlit为后台服务


2.启动服务

6.1.5Windows网页访问测试
先查看自己的IP:hostname -I

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)