项目:InnoAI SQL 助手

项目:InnoAI SQL 助手
目录1. 项目说明2. 项目背景知识2.1. 系统需求2.3. 大模型 API2.4. 技术架构2.4.1. 流程图2.4.2. 架构说明3. 软硬件环境清单4. 项目实施4.1. 环境搭建4.1.1. 系统搭建及初始化4.1.2. 源码编译安装Python3.11.94.1.3. 配置国内 pip 源及安装项目依赖4.1.4. 部署并初始化MySQL 8.0.454.1.5创建库和表4.2获取API Key4.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原则6.1.2安装Python依赖6.1.3创建 Streamlit 可视化入口 web_main.py6.1.4创建 systemd 后台常驻服务6.1.5Windows网页访问测试1.项目说明本项目以MySQL 8.0 DBA运维核心知识点为基础结合硅基流动开源大模型API构建一套电商订单库智能查询与性能调优系统。系统可接收业务自然语言自动生成合规MySQL查询语句自动执行查询并输出结构化表格依托大模型完成订单数据业务解读同时解析 SQL执行计划输出标准化索引优化方案全程无需人工手写、分析SQL。核心价值无需专业SQL开发能力即可完成业务数据查询自动替代人工统计报表、手工分析执行计划等重复性运维工作深度融合 MySQL数据库运维能力与大模型自然语言解析能力适配企业轻量化数据查询、SQL性能优化、AI智能解读一体化落地场景。2.项目背景知识2.1.系统需求功能需求① 支持自然语言转MySQL只读查询语句仅生成SELECT拦截所有增删改DDL/DML语句② 自动执行生成SQL格式化输出表格化查询结果调用大模型输出通俗易懂业务总结③ 输入任意业务SQL自动解析EXPLAIN执行计划输出分级性能问题、可直接执行索引、改写方案④ 配置独立环境文件存储数据库账号、大模型密钥避免代码硬编码保障敏感信息安全非功能需求① 兼容性适配openEuler/RHEL Linux系统兼容MySQL 8.0.45适配Qwen、DeepSeek系列开源模型② 稳定性自然语言识别容错率高无匹配数据可正常提示API、数据库异常捕获不崩溃③ 安全性仅开放只读查询权限密钥文件设置600权限不打印明文账号密钥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.pyWeb可视化界面层。基于Streamlit实现图形化交互包含输入合法性校验、页面版式优化、代码块复制修复、结果表格渲染等前端能力。prompts.py提示词工程层。统一管理NL2SQL、SQL调优的Prompt模板内置SQL提取工具函数实现提示词与业务逻辑解耦优化模型输出格式。mysql_client.py数据访问层。统一封装MySQL 8.0连接、查询、执行计划获取能力内置SQL安全校验机制仅允许 SELECT语句执行保障数据安全。.env独立配置文件。集中存放数据库连接参数、大模型API密钥与模型名称敏感信息与代码分离全局统一依赖。底层数据持久服务层运行于openEuler虚拟机的MySQL 8.0.45数据库作为项目唯一数据源存储testdb.order_info电商订单测试数据支撑查询与性能调优全流程。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最后取消开机启动验证是否为dead3.关闭SELinux重启后getenforce 改为disabled4.更换时间同步服务器修改为阿里云5.下载所需软件及依赖4.1.2.源码编译安装Python3.11.91.进入源码存放目录并解压使用Xftp8上传python压缩包2.进入Python-3.11.9后编译配置多核编译安装并配置动态链接库解决libpython缺失报错3.建立全局软连接并验证安装不覆盖系统自带Python34.校验SSL模块AI接口必备4.1.3.配置国内pip源及安装项目依赖1.配置pip仓库为阿里镜像站提高下载速度2.安装python及ai所需依赖4.1.4.部署并初始化MySQL 8.0.451.使用xftp将MySQL软件包上传到根目录2.解压缩3.使用前的准备3.1移动到默认安装目录3.2创建mysql的系统用户将其添加到mysql组中并设置其不可登录以限制该用户的登录权限3.3设置mysql目录的账户及工作组生产环境中不要使用root4.初始化软件4.1初始化需要复制密码后续登录时要用4.2再启动一个终端4.3修改密码并刷新返回上一个终端敲一个回车显示进程以杀死5.设置mysql的配置文件6.配置启动脚本7.设置mysql命令识别添加语句export PATH$PATH:/usr/local/mysql/bin8.测试4.1.5创建库和表创建订单业务表验证数据4.2获取API Key4.2.1.网址腾讯云官网访问腾讯云官网手机号注册并完成实名认证登录后进入“API Key管理”→“新建API密钥”填写密钥名称并保存选择deepseek-v4-pro模型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.py6.1.4创建systemd后台常驻服务1.建立streamlit为后台服务2.启动服务6.1.5Windows网页访问测试先查看自己的IPhostname -I浏览器访问