基于openEuler+MySQL8.0+大模型的InnoAI SQL智能助手 📅 2026/7/29 9:36:57 一、项目简介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 KeyXFTP/SSH工具用于文件上传、远程服务器操作防火墙放行8501端口Streamlit Web端口、3306MySQL、443大模型HTTPS接口三、环境完整部署步骤3.1 openEuler系统初始化配置3.1.1 关闭SELinux、防火墙、修改主机名sed -i ‘7s/enforcing/disabled/’ /etc/selinux/config3.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-server3.2 源码编译安装Python3.11.93.3 配置国内阿里Pip源 安装项目依赖创建pip配置目录mkdir ~/.pipvim ~/.pip/pip.confpip3 install --upgrade pippip3 install pymysql python-dotenv tabulate langchain langchain-openai streamlit sqlparsepython3 -c “import pymysql,streamlit,langchain_openai;print(‘全部依赖安装完成’)”3.4 MySQL8.0.45 编译部署初始化配置Mysql系统服务开机自启创建systemd服务文件加载服务并开机启动3.5 腾讯云TokenHub大模型平台密钥申请四、项目代码完整开发4.1 创建项目目录结构目录结构4.2 编写.env配置文件权限加固6004.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危险语句拦截、仅开放只读查询。