当前位置: 首页 > news >正文

项目:InnoAI SQL 助手

目录

1. 项目说明

2. 项目背景知识

2.1. 系统需求

2.3. 大模型 API

2.4. 技术架构

2.4.1. 流程图

2.4.2. 架构说明

3. 软硬件环境清单

4. 项目实施

4.1. 环境搭建

4.1.1. 系统搭建及初始化

4.1.2. 源码编译安装Python3.11.9

4.1.3. 配置国内 pip 源及安装项目依赖

4.1.4. 部署并初始化MySQL 8.0.45

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原则

6.1.2安装Python依赖

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

6.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,适配QwenDeepSeek系列开源模型;
② 稳定性:自然语言识别容错率高,无匹配数据可正常提示,API、数据库异常捕获不崩溃;
③ 安全性:仅开放只读查询权限,密钥文件设置600权限,不打印明文账号密钥

2.3.大模型API

腾讯云TokenHub大模型平台

2.4.技术架构

2.4.1.流程图

2.4.2.架构说明

接入交互层(左侧)

面向运维、开发、业务运营人员,提供两种使用入口,适配不同场景:

  1. 命令行终端模式:在openEuler服务器终端执行python3 main.py进入交互式菜单,支持自然语言
  2. 查数据、SQL性能调优两大功能。
  3. Web可视化模式:浏览器访问Streamlit面板,通过图形化界面完成查询与调优操作,自带输入校
  4. 验、结果表格、代码复制等易用性功能。

Python程序核心层

采用分层解耦设计,共4个核心文件+ 1个配置文件,职责边界清晰,便于教学与二次开发:

main.py:总调度入口与公共服务层。封装自然语言转SQL查询、AI业务总结、SQL性能调优三大核心业务流程,同时提供命令行交互入口,Web端统一调用该文件的公共函数,避免代码重复。

web_main.pyWeb可视化界面层。基于Streamlit实现图形化交互,包含输入合法性校验、页面版式优化、代码块复制修复、结果表格渲染等前端能力。

prompts.py:提示词工程层。统一管理NL2SQLSQL调优的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性能分析三类场景提供大模型能力:

  1. 平台兼容OpenAI接口标准,一套代码可无缝切换DeepSeek V4 ProQwen3.5-Plus等多款主流模型
  2. 统一鉴权、统一计费、统一运维,避免多厂商对接成本
  3. 依托腾讯云基础设施提供高可用保障,满足生产环境使用需要

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.网址:腾讯云官网

访问腾讯云官网,手机号注册并完成实名认证
登录后进入“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.py

6.1.4创建systemd后台常驻服务

1.建立streamlit为后台服务

2.启动服务

6.1.5Windows网页访问测试

先查看自己的IP:hostname -I

浏览器访问

http://www.cnnetsun.cn/news/3731158.html

相关文章:

  • 【回眸】Airi 智能助手深度评测:从参数解析到实战边界
  • Prometheus监控Nginx:核心指标与生产实践
  • Java修饰符与运算符核心用法及实战技巧
  • C++异常处理:throw机制深度解析与实战指南
  • x64dbg逆向分析五大核心技巧:从调试基础到实战工作流
  • 如何用GetQzonehistory三步永久保存你的QQ空间青春记忆
  • Nintendo Switch大气层系统:从入门到精通的终极指南
  • 如何5分钟掌握League Akari:英雄联盟玩家的终极本地化工具箱
  • AI创业工作室怎么搭建:BBWEYY GEO小团队运营,,含零代码SAAS、AI编程、源码定制交付
  • 头脑奥林匹克:在成本限制与即兴挑战中培养创造力与工程思维
  • 【AI】前沿模型混战、开源急速追赶与监管收紧
  • 【AI】本周AI领域三大重磅事件
  • 2026 年 AI 呼叫新趋势:用‘沃创云’让效率翻 10 倍
  • 从原料到生活:高青氟化工全链延伸,解锁日常科技与舒适
  • Android 7系统休眠唤醒(十)实战调试与问题排查
  • NBM7100A芯片与TM4C129XNCZAD的低功耗物联网电源管理方案
  • 欧美户外AI咖啡机器人组网计费避坑:大流量包月与按量后付费真实适配逻辑
  • Hermes Agent 实战:让它去 X 上给我盯 AI 圈的一手消息
  • 基于SpringBoot+Vue的体育社区系统设计与实现
  • kotlin中属性声明getter、setter、backing field
  • Unity网络游戏实战:从状态同步到客户端预测的大乱斗游戏开发
  • Python全栈开发2026:FastAPI + Vue3 + Docker从零到部署完整指南
  • 没API的老系统数据怎么取——异构对接的数据库只读路线
  • 液压缸不同步、走位偏差大?液压同步分流马达不同步的7大核心原因+解决方案
  • 零基础转型网络安全:学习路线与职业发展指南
  • UnityWebRequest核心架构与实战:从HTTP请求到文件下载的完整指南
  • Intel Edison嵌入式Linux平台Python开发环境搭建与物联网应用实践
  • 告别论文踩坑!2026五大AI学术工具权威测评,Gradpaper、笔墨AI实力领跑
  • Triton语言where操作:GPU高性能计算的条件筛选利器
  • 金蝶合作伙伴等级怎么划分?一文看懂完整金字塔体系