跳到主要内容

🗄️ 连接并分析数据库

直接连接到您的 PostgreSQL、MySQL 或 SQLite 数据库,让 AI 探索其 Schema 表结构、运行查询并生成业务洞察 —— 所有这些操作都无需您自己撰写 SQL。

您: $Database Analyst
连接我位于 db.example.com 的 PostgreSQL 数据库,并分析 orders 表。本季度最畅销的产品是什么?有什么我需要了解的趋势吗?

AI 执行的操作

  1. 在需要时自动安装数据库驱动(如 pip install psycopg2-binarypymysql
  2. 使用您的凭据建立与数据库的连接
  3. 探索 Schema 表结构 —— 列出数据库表、列、主外键关系
  4. 编写并运行 SQL 查询以解答您的问题
  5. 将结果拉入 pandas 进行深度分析
  6. 生成图表(收入趋势、热门产品、地区细分等)
  7. 将所有内容整合保存为一份详尽报告
妥善保管机密凭据

在启动 Open Terminal 时以环境变量的方式传入数据库机密凭据,或者在容器内的 .env 文件中进行存储。切勿在聊天中直接粘贴密码 —— 它们会被永久记录在聊天历史中。示例如下:

docker run -d --name open-terminal \
  -e DB_HOST=db.example.com \
  -e DB_USER=analyst \
  -e DB_PASS=your-password \
  -e DB_NAME=production \
  ghcr.io/open-webui/open-terminal

随后告知该技能直接从环境变量中读取凭据即可。

支持的数据库

数据库Python 驱动安装命令
PostgreSQLpsycopg2pip install psycopg2-binary
MySQL / MariaDBpymysqlpip install pymysql
SQLitesqlite3内置(无需安装)
Microsoft SQL Serverpymssqlpip install pymssql
MongoDBpymongopip install pymongo

技能指令内容

将以下内容复制到 Workspace → Skills → Create 中:

---
name: database-analyst
description: 连接 SQL 数据库、探索 Schema、执行查询并生成数据分析报告
---

## 数据库分析

当被要求分析数据库时:

1. **安全连接**:从环境变量(DB_HOST、DB_USER、DB_PASS、DB_NAME)中读取凭据。切勿硬编码密码。对于 PostgreSQL 使用 `psycopg2`,对于 MySQL 使用 `pymysql`,对于 SQLite 使用 `sqlite3`
2. **首先探索 Schema 表结构**
   - 列出所有数据库表及其行数统计
   - 展示相关表的列名、类型以及示例数据
   - 识别主键和外键关系
   - 在运行具体分析查询前,先呈现一份 Schema 概览
3. **编写高效的 SQL**
   - 尽量使用适当的 JOIN 连接(而非子查询)
   - 添加 LIMIT 限制子句,以防止意外读取数百万行数据
   - 使用聚合函数(COUNT、SUM、AVG、GROUP BY)来生成总结数据
   - 始终包含 ORDER BY 以提升数据可读性
4. **在 Python 中分析结果**
   - 将查询结果加载到 pandas DataFrame 中
   - 计算额外的指标:增长率、百分比占位、排行等
   - 识别出趋势、异常值以及显著的消费模式
5. **创建可视化图表**
   - 使用 matplotlib 并配以清晰的标签及协调一致的风格
   - 时间序列数据 → 折线图
   - 排名对比 → 水平条形图
   - 比例占位 → 饼图或甜甜圈图
   - 将每张图表另存为 PNG 格式
6. **输出报告**,包括:
   - Schema 概览(有哪些表、它们如何关联)
   - 配以数据支撑的核心发现
   - 融入上下文的图表
   - 所使用的真实 SQL 查询语句(以便用户能够重新运行)
7. 操作完成后,**关闭数据库连接**

始终在呈现数据结果前先展示其 SQL 查询,以便用户能验证其正确性。
This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.