AI-MySQL客户端

项目主页 创建于 1天前 查看作者主页
仓库 私有仓库
状态 正常
分支 master
类型 git
同步 10小时前

集成AI的MySQL看板系统

作者暂时还没有补充项目介绍。

MySQL AI UI

MySQL AI UI 是一个面向 MySQL 场景的本地桌面数据分析工具。它把传统数据库客户端、自然语言转 SQL、轻量看板、参数化查询和交付分享能力放在同一个应用里,让团队可以直接连接自己的 MySQL 数据库,在本地完成查询、分析、沉淀和交付,而不是把数据搬到外部 SaaS。

这个项目特别适合“没有完整 BI 团队,但又需要把业务数据快速用起来”的团队:技术同学可以先配置连接、模型、指标和模板,产品、运营、业务负责人再基于这些能力做日常分析和看板查看。

这个项目是做什么的

它解决的是一个很常见的问题:

  • 团队已经有 MySQL 数据,但日常分析还依赖研发临时写 SQL
  • 业务同学会提问题,但不会写 SQL 或不熟悉表结构
  • 现成 BI 平台太重、太贵,或者引入成本太高
  • 团队又不希望把核心业务数据上传到第三方平台

MySQL AI UI 的思路不是替代数据库,也不是做一个云端大而全平台,而是提供一个本地运行的智能分析客户端:

  • 像普通 MySQL 客户端一样直连数据库
  • 读取 schema,帮助 AI 理解库表结构
  • 把自然语言问题转换为 SQL
  • 对 SQL 做只读安全校验后执行
  • 将结果保存为指标卡、图表或表格
  • 进一步组织成业务看板
  • 还可以把连接、AI 配置和看板能力打包分享给其他团队或客户环境

核心定位

从产品形态上看,它是一个“本地客户端 + AI 辅助查询 + 轻量 BI 看板”的组合。

从使用方式上看,它更像一个适合中小团队、实施交付、内部模板复用的工具,而不是一个复杂的企业级数据中台。

从数据安全上看,它强调“数据尽量不出域”:

  • 应用本地运行
  • 直接连接 MySQL
  • 本地保存连接、AI 配置和应用状态
  • 支持使用本地 Ollama 模型,进一步减少外部依赖

从权限控制上看,它尽量复用企业已经存在的 MySQL 原生账号体系,而不是在应用侧再发明一套独立权限模型。这样做的好处是:权限边界更清晰,审计责任更明确,也更容易接入现有 DBA 管理流程。

适合谁用

  • 产品经理、运营、业务负责人:用自然语言提问、看固定看板、做经营复盘
  • 数据或研发同学:维护连接、确认口径、沉淀标准 SQL 和参数模板
  • 实施顾问或交付团队:把一套分析模板打包后交付给不同客户环境
  • 小团队创业项目:先用一个本地工具快速把分析体系跑起来

主要能力

1. MySQL 连接管理

  • 保存数据库连接信息
  • 支持环境标识、标签、描述
  • 支持 SSH 跳板机场景
  • 推荐按业务线或环境维护多个连接

连接信息和应用状态会保存到用户本地目录中。当前代码里默认路径来自 os.UserConfigDir(),例如在 macOS 上通常位于:

~/Library/Application Support/mysql-ai-ui

其中会包含本地 SQLite 状态库,例如 connections.db

2. AI 配置与多 Provider 支持

当前内置支持以下 AI Provider:

  • Kimi
  • DeepSeek
  • Ollama

这意味着项目既可以接在线模型,也可以接本地模型。对于重视数据出域控制的场景,可以优先使用本地 Ollama;对于更看重生成质量的场景,可以配置在线推理服务。

2.1 原生 MySQL 账号控制

MySQL AI UI 本身不是一个替代数据库权限系统的中间层,它更适合作为 MySQL 原生权限体系之上的分析客户端。

这意味着:

  • 应用能看到什么表、什么库,取决于当前连接使用的 MySQL 账号权限
  • 如果数据库账号本身没有某张表的 SELECT 权限,应用侧也无法绕过数据库直接访问
  • 不同业务团队可以直接复用现有的只读账号、分库账号、分环境账号
  • 生产、测试、演示环境可以通过不同 MySQL 账号天然隔离

推荐做法:

  • 生产环境为 MySQL AI UI 单独创建只读账号
  • 按业务域或项目创建不同账号,而不是所有人共用一个高权限账号
  • 将权限控制尽量下沉到 MySQL 的 GRANT 体系中,而不是依赖前端界面约束
  • 对敏感库、敏感表、敏感字段继续沿用现有数据库权限和脱敏策略

换句话说,这个项目的权限边界首先由数据库决定,应用只是遵守这条边界,而不是重新定义它。

3. 自然语言生成 SQL

这是项目最核心的工作流之一:

  1. 用户输入业务问题
  2. 应用读取当前数据库 schema
  3. AI 结合表结构、历史上下文和提示词生成 SQL
  4. 结果回填到工作台,用户可以复核并执行

生成结果不只包含 SQL,代码里还保留了这些结构化信息:

  • 组件标题建议
  • 字段中文标题建议
  • 推理摘要
  • 安全提示

这让它不只是“一次性生成 SQL”,而是在为后续保存图表、构建看板做铺垫。

4. SQL 安全控制

项目内置了只读 SQL 校验逻辑,默认限制执行内容必须是单条只读查询:

  • 仅允许 SELECT / WITH
  • 不允许注释
  • 不允许多语句执行
  • 禁止 INSERTUPDATEDELETEDROPALTER 等危险关键字

这使它更适合作为业务分析工具,而不是数据库管理工具。

数据安全与合规思路

这个项目更适合放在“内网、本地客户端、直连企业数据库”的安全模型下理解。它的设计重点不是把权限和数据都托管到平台侧,而是尽量复用企业已经有的安全边界。

1. 数据链路尽量短

  • 应用本地运行,不要求先把 MySQL 数据同步到外部 BI 仓库
  • 默认直接连接企业自己的 MySQL
  • 如果使用本地 Ollama,AI 调用链路也可以留在本机或内网环境

这类模式更适合对数据出域敏感的场景,例如客户现场交付、私有化部署、内部经营数据分析。

2. 最小权限原则

推荐始终使用最小权限原则部署:

  • 业务分析场景优先使用只读账号
  • 不给应用连接分配 DDL、DML 权限
  • 将库级、表级权限交给 DBA 在 MySQL 中统一管理
  • 用不同账号区分生产、测试、演示环境

这样即使应用配置被误用,风险边界也仍然受数据库账号本身限制。

3. 应用层再做一层只读防护

除了依赖 MySQL 账号权限,项目内部还增加了一层只读 SQL 校验,主动拦截高风险语句。这一层不能替代数据库权限,但可以降低误操作概率,尤其适合业务用户直接提问、AI 自动生成 SQL 的场景。

4. 更容易对接现有审计与合规流程

因为它沿用的是原生 MySQL 账号、网络访问和数据库授权体系,所以通常更容易接入企业已有流程:

  • 数据库账号申请与审批
  • 堡垒机或 SSH 跳板访问
  • 数据库审计日志
  • 敏感数据分级与脱敏
  • 客户现场或私有网络环境交付

对于很多团队来说,这一点比“功能更多”更重要,因为它决定了工具能不能真正进入生产分析流程。

5. 查询结果沉淀为视图和看板

查询不止停留在执行结果页,用户还可以继续沉淀为:

  • 指标卡
  • 图表
  • 表格

然后把这些组件放进 Dashboard 页面中,形成按主题组织的业务看板,例如:

  • 经营总览
  • 渠道分析
  • 销售漏斗
  • 用户增长

6. 参数化查询

项目支持把固定 SQL 模板变成可复用查询视图,例如把日期范围、渠道、地区、业务线做成参数。

这样技术同学可以先定义一版标准模板,业务同学只需要切换参数,不必反复写 SQL。

7. 会话式分析上下文

项目不是“一问一答后就丢失上下文”的纯单轮工具。代码里包含会话与消息持久化能力,支持:

  • 保存分析对话
  • 继续基于上文追问
  • 复用同一个数据库连接下的上下文

这对连续分析场景很有帮助,例如先看趋势,再继续追问异常原因。

8. 分享与交付

项目支持分享包(share bundle)机制,可以导入或分发:

  • 数据库连接配置
  • AI 配置
  • 分享权限相关字段
  • 看板/分析资产初始化内容

这类能力很适合实施交付、模板复制和跨团队复用。

一个典型使用流程

  1. 新建并测试 MySQL 连接
  2. 配置 AI Provider 和模型
  3. 连接数据库并加载 schema
  4. 在工作台输入业务问题
  5. AI 生成 SQL,人工确认后执行
  6. 将结果保存为图表、指标卡或表格
  7. 组合成 Dashboard 页面
  8. 必要时通过分享包交付给其他团队