Skip to main content
Glama

mcp-dbutils

MIT License
81
  • Linux
  • Apple
advanced-llm-interactions.md17.3 kB
# 高级 LLM 交互示例 *[English](../../en/examples/advanced-llm-interactions.md) | 中文 | [Français](../../fr/examples/advanced-llm-interactions.md) | [Español](../../es/examples/advanced-llm-interactions.md) | [العربية](../../ar/examples/advanced-llm-interactions.md) | [Русский](../../ru/examples/advanced-llm-interactions.md)* 本文档展示了 MCP 数据库工具与各类大型语言模型(LLM)的高级交互示例,帮助您充分发挥数据分析潜力。 ## 目录 - [使用 DeepSeek 生成数据分析报告](#使用-deepseek-生成数据分析报告) - [在 Claude Desktop 中生成 BI 面板](#在-claude-desktop-中生成-bi-面板) - [使用 GPT-4 进行数据异常检测](#使用-gpt-4-进行数据异常检测) - [与 Gemini 协作进行预测分析](#与-gemini-协作进行预测分析) - [使用 Llama 3 进行自然语言数据查询](#使用-llama-3-进行自然语言数据查询) ## 使用 DeepSeek 生成数据分析报告 DeepSeek 模型在数据分析和代码生成方面表现出色。以下示例展示如何使用 DeepSeek 生成完整的 HTML 数据分析报告。 ### 步骤 1:准备数据查询 首先,使用 MCP 数据库工具查询所需数据: ``` 您:能否帮我查询过去 12 个月的销售数据,按月份和产品类别分组? AI:我来帮您查询这些数据。我将使用 dbutils-run-query 工具执行查询。 查询结果如下: 月份 | 产品类别 | 销售额 | 订单数量 | 平均订单金额 ---------|-----------|----------|---------|------------ 2023-01 | 电子产品 | ¥245,670 | 432 | ¥568.68 2023-01 | 家居用品 | ¥156,890 | 689 | ¥227.71 ... 2023-12 | 食品饮料 | ¥98,320 | 1,290 | ¥76.22 ``` ### 步骤 2:请求 DeepSeek 生成分析报告 将查询结果提供给 DeepSeek,并请求生成分析报告: ``` 您:请根据这些销售数据生成一个详细的 HTML 分析报告,包含趋势分析、季节性分析和产品类别对比。报告应包含交互式图表和关键发现。 DeepSeek:我将为您生成一个详细的 HTML 分析报告。以下是完整的 HTML 代码: ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>销售数据分析报告 - 2023年</title> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels"></script> <style> body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: #333; max-width: 1200px; margin: 0 auto; padding: 20px; background-color: #f9f9f9; } /* 更多样式... */ </style> </head> <body> <header> <h1>销售数据分析报告</h1> <p class="subtitle">2023年1月 - 2023年12月</p> </header> <section id="executive-summary"> <h2>执行摘要</h2> <div class="summary-cards"> <div class="card"> <h3>总销售额</h3> <p class="highlight">¥2,845,670</p> <p class="trend positive">↑ 同比增长 15.3%</p> </div> <!-- 更多卡片... --> </div> <div class="key-findings"> <h3>关键发现</h3> <ul> <li>电子产品类别贡献了最高销售额,占总销售额的 42%</li> <li>第四季度销售额较第一季度增长了 28.5%</li> <li>家居用品类别在假日季节(10-12月)表现最佳</li> </ul> </div> </section> <!-- 更多报告内容... --> <script> // 月度销售趋势图表 const monthlySalesCtx = document.getElementById('monthly-sales-chart').getContext('2d'); const monthlySalesChart = new Chart(monthlySalesCtx, { type: 'line', data: { labels: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], datasets: [ { label: '电子产品', data: [245670, 234560, 256780, 267890, 278900, 289760, 301230, 312450, 325670, 345670, 367890, 389760], borderColor: 'rgba(54, 162, 235, 1)', backgroundColor: 'rgba(54, 162, 235, 0.1)', tension: 0.4, fill: true }, // 更多数据集... ] }, // 更多配置... }); // 更多图表... </script> </body> </html> ``` 这个 HTML 报告包含了完整的销售数据分析,包括交互式图表、趋势分析和关键发现。您可以将此代码保存为 HTML 文件并在浏览器中打开查看。 ``` ### 步骤 3:保存并使用报告 将生成的 HTML 代码保存为文件,并在浏览器中打开: ```bash echo '<!DOCTYPE html>...' > sales_analysis_report.html open sales_analysis_report.html # 在 macOS 上 # 或 xdg-open sales_analysis_report.html # 在 Linux 上 # 或 start sales_analysis_report.html # 在 Windows 上 ``` ## 在 Claude Desktop 中生成 BI 面板 Claude Desktop 支持通过 artifact 输出生成可视化内容。以下示例展示如何使用 Claude 生成交互式 BI 面板。 ### 步骤 1:准备数据 使用 MCP 数据库工具获取所需数据: ``` 您:请帮我查询客户细分数据,包括客户 ID、购买频率、平均消费金额和最近一次购买日期。 AI:我将为您查询客户细分数据。 查询结果如下: 客户ID | 购买频率 | 平均消费金额 | 最近购买日期 -------|---------|------------|------------- 1001 | 12 | ¥1,245.67 | 2023-12-15 1002 | 3 | ¥567.89 | 2023-10-23 ... 1100 | 8 | ¥876.54 | 2023-11-30 ``` ### 步骤 2:请求 Claude 生成 BI 面板 将数据提供给 Claude,并请求生成 BI 面板: ``` 您:请根据这些客户数据生成一个交互式 BI 面板,用于客户细分分析。面板应包含 RFM 分析、客户价值分布和客户生命周期阶段。请将结果作为 HTML artifact 输出。 Claude:我将为您创建一个交互式 BI 面板用于客户细分分析。这个面板将包含 RFM 分析、客户价值分布和客户生命周期阶段的可视化。 以下是基于您提供的数据创建的 BI 面板: [Claude 会生成一个 HTML artifact,包含交互式 BI 面板] ``` ### 步骤 3:保存并使用 BI 面板 Claude 生成的 HTML artifact 可以直接下载并在浏览器中打开。面板通常包含: - RFM (Recency, Frequency, Monetary) 分析图表 - 客户价值分布热图 - 客户生命周期阶段漏斗图 - 交互式筛选器和控件 ## 使用 GPT-4 进行数据异常检测 GPT-4 擅长识别数据中的模式和异常。以下示例展示如何使用 GPT-4 进行数据异常检测。 ### 步骤 1:获取时间序列数据 使用 MCP 数据库工具获取时间序列数据: ``` 您:请帮我查询过去 30 天的系统登录数据,包括日期、时间、用户 ID 和登录 IP。 AI:我将为您查询系统登录数据。 查询结果如下: 日期 | 时间 | 用户ID | 登录IP ----------|---------|-------|--------------- 2023-12-01 | 08:23:45 | user_a | 192.168.1.101 2023-12-01 | 09:15:32 | user_b | 192.168.1.102 ... 2023-12-30 | 22:45:12 | user_a | 45.67.89.123 ``` ### 步骤 2:请求 GPT-4 进行异常检测 将数据提供给 GPT-4,并请求进行异常检测: ``` 您:请分析这些登录数据,识别任何可能的安全异常,如不寻常的登录时间、异常的 IP 地址变化或可疑的登录模式。 GPT-4:我已分析了您提供的登录数据,发现了以下潜在安全异常: 1. **不寻常的登录时间**: - user_a 通常在工作时间(8:00-18:00)登录,但在 12月15日 凌晨 3:27 有一次登录记录 - user_c 在 12月10日 和 12月11日 连续两天在午夜 00:15 左右登录 2. **异常的 IP 地址变化**: - user_b 通常从 192.168.1.x 网段登录,但在 12月20日 从 78.34.56.89(位于俄罗斯)登录 - user_a 在 12月30日 22:45:12 从 45.67.89.123 登录,与其通常的 IP 范围不符 3. **可疑的登录模式**: - user_d 在 12月25日 的 10分钟内从3个不同的 IP 地址登录 - user_e 和 user_f 显示完全相同的登录模式(相同时间、相似 IP),可能表明账户共享或自动化脚本 4. **地理位置异常**: - user_b 在 12月19日 16:30:45 从美国 IP 登录,而在 12月20日 02:15:33 从俄罗斯 IP 登录,物理上不可能在这么短时间内完成的旅行 建议采取的措施: 1. 对 user_a、user_b 和 user_d 的账户实施临时锁定并要求密码重置 2. 调查 user_e 和 user_f 的账户共享情况 3. 实施双因素认证,特别是对管理员账户 4. 设置基于时间和地理位置的登录规则 ``` ## 与 Gemini 协作进行预测分析 Gemini 在处理结构化数据和预测分析方面表现出色。以下示例展示如何使用 Gemini 进行销售预测。 ### 步骤 1:获取历史销售数据 使用 MCP 数据库工具获取历史销售数据: ``` 您:请帮我查询过去 24 个月的月度销售数据,按产品类别分组。 AI:我将为您查询过去 24 个月的月度销售数据。 查询结果如下: 年月 | 产品类别 | 销售额 | 单位销量 --------|-----------|----------|-------- 2022-01 | 电子产品 | ¥198,450 | 324 2022-01 | 家居用品 | ¥123,670 | 567 ... 2023-12 | 食品饮料 | ¥98,320 | 1,290 ``` ### 步骤 2:请求 Gemini 进行预测分析 将数据提供给 Gemini,并请求进行预测分析: ``` 您:请基于这些历史销售数据,预测未来 6 个月的销售趋势。请考虑季节性因素、增长趋势和产品类别间的相关性。 Gemini:基于您提供的 24 个月历史销售数据,我已进行了时间序列分析并生成了未来 6 个月的销售预测。以下是我的分析结果: ## 预测概述 我使用了 SARIMA (季节性自回归综合移动平均) 模型进行预测,该模型考虑了季节性模式、整体趋势和产品类别间的相关性。 ## 未来 6 个月销售预测 | 年月 | 产品类别 | 预测销售额 | 预测单位销量 | 预测区间 (95% 置信度) | |---------|-----------|------------|------------|---------------------| | 2024-01 | 电子产品 | ¥267,830 | 437 | ¥245,670 - ¥289,990 | | 2024-01 | 家居用品 | ¥168,450 | 734 | ¥154,320 - ¥182,580 | | ... | ... | ... | ... | ... | | 2024-06 | 食品饮料 | ¥112,780 | 1,456 | ¥98,540 - ¥127,020 | ## 关键预测发现 1. **季节性模式**: - 电子产品在假日季节(11月-1月)销售额预计增长 35% - 家居用品在春季(3月-5月)预计有 22% 的销售增长 - 食品饮料类别显示相对稳定的月度销售,波动性最小 2. **增长趋势**: - 电子产品预计年增长率为 12.5% - 家居用品预计年增长率为 8.3% - 食品饮料预计年增长率为 5.7% 3. **产品类别相关性**: - 电子产品和家居用品销售呈现中度正相关 (r=0.65) - 食品饮料与其他类别相关性较低 (r<0.3) ## 预测方法说明 我使用了以下步骤进行预测: 1. 对每个产品类别的时间序列数据进行季节性分解 2. 应用 SARIMA 模型,参数通过 AIC 准则优化 3. 进行交叉验证以确保模型稳健性 4. 生成未来 6 个月的点预测和预测区间 预测准确度评估:MAPE (平均绝对百分比误差) = 7.2%,表明预测相对可靠。 ``` ## 使用 Llama 3 进行自然语言数据查询 Llama 3 在自然语言理解和 SQL 生成方面表现出色。以下示例展示如何使用 Llama 3 进行自然语言数据查询。 ### 步骤 1:了解数据库结构 首先,使用 MCP 数据库工具了解数据库结构: ``` 您:请帮我列出数据库中的所有表及其结构。 AI:我将为您列出数据库中的所有表及其结构。 数据库包含以下表: 1. customers(客户表) - id: INTEGER (主键) - name: TEXT - email: TEXT - registration_date: DATE - city: TEXT - status: TEXT 2. products(产品表) - id: INTEGER (主键) - name: TEXT - category: TEXT - price: DECIMAL - stock: INTEGER - description: TEXT 3. orders(订单表) - id: INTEGER (主键) - customer_id: INTEGER (外键 -> customers.id) - order_date: DATETIME - total_amount: DECIMAL - status: TEXT 4. order_items(订单项表) - id: INTEGER (主键) - order_id: INTEGER (外键 -> orders.id) - product_id: INTEGER (外键 -> products.id) - quantity: INTEGER - price: DECIMAL ``` ### 步骤 2:使用自然语言提问 向 Llama 3 提出自然语言问题: ``` 您:我想了解过去 3 个月中,哪些客户购买了电子产品类别的商品,他们的平均消费金额是多少,以及他们最常购买的产品是什么? Llama 3:我将帮您分析过去 3 个月购买电子产品的客户数据。为了回答您的问题,我需要编写一个 SQL 查询。 首先,我会分析您的问题: 1. 查找过去 3 个月购买了电子产品的客户 2. 计算这些客户的平均消费金额 3. 确定这些客户最常购买的产品 以下是我构建的 SQL 查询: ```sql WITH electronics_customers AS ( -- 找出过去 3 个月购买了电子产品的客户 SELECT DISTINCT c.id, c.name, c.email FROM customers c JOIN orders o ON c.id = o.customer_id JOIN order_items oi ON o.id = oi.order_id JOIN products p ON oi.product_id = p.id WHERE p.category = '电子产品' AND o.order_date >= DATE('now', '-3 months') AND o.status = 'completed' ), customer_spending AS ( -- 计算这些客户的平均消费金额 SELECT ec.id, ec.name, ROUND(AVG(o.total_amount), 2) AS avg_spending FROM electronics_customers ec JOIN orders o ON ec.id = o.customer_id WHERE o.order_date >= DATE('now', '-3 months') GROUP BY ec.id, ec.name ), popular_products AS ( -- 找出这些客户最常购买的产品 SELECT ec.id AS customer_id, p.id AS product_id, p.name AS product_name, COUNT(*) AS purchase_count, RANK() OVER (PARTITION BY ec.id ORDER BY COUNT(*) DESC) AS rank FROM electronics_customers ec JOIN orders o ON ec.id = o.customer_id JOIN order_items oi ON o.id = oi.order_id JOIN products p ON oi.product_id = p.id WHERE o.order_date >= DATE('now', '-3 months') GROUP BY ec.id, p.id, p.name ) -- 最终结果 SELECT cs.id AS customer_id, cs.name AS customer_name, cs.avg_spending, pp.product_name AS favorite_product FROM customer_spending cs JOIN popular_products pp ON cs.id = pp.customer_id WHERE pp.rank = 1 ORDER BY cs.avg_spending DESC; ``` 让我执行这个查询并为您分析结果。 查询结果显示: 客户ID | 客户名称 | 平均消费金额 | 最喜爱产品 -------|----------|------------|------------ 1045 | 张明 | ¥3,245.67 | 智能手表 Pro 1078 | 李华 | ¥2,876.50 | 无线耳机 X3 1023 | 王芳 | ¥2,567.89 | 超薄笔记本电脑 ... | ... | ... | ... 分析结果: 1. 过去 3 个月内,共有 37 位客户购买了电子产品 2. 这些客户的平均消费金额为 ¥2,156.78 3. 最受欢迎的电子产品是"智能手表 Pro",有 12 位客户将其作为最常购买的产品 4. 消费金额最高的客户主要购买高端电子产品,如笔记本电脑和智能手表 5. 有 8 位客户在过去 3 个月内进行了多次电子产品购买,平均每人购买 3.5 次 建议: 1. 针对这 37 位客户开展电子产品促销活动 2. 特别关注"智能手表 Pro"和"无线耳机 X3"的库存管理 3. 考虑为高消费客户提供会员优惠 ``` ## 最佳实践 ### 提高 LLM 交互效果的技巧 1. **提供清晰的上下文**:向 LLM 提供数据库结构、数据类型和关系的详细信息 2. **分步骤提问**:复杂分析任务分解为多个步骤,逐步引导 LLM 3. **指定输出格式**:明确要求 LLM 以特定格式(如 HTML、Markdown、JSON)输出结果 4. **验证和迭代**:检查 LLM 生成的查询和分析,必要时提供反馈并要求修改 5. **利用模型优势**:根据不同 LLM 的优势选择适合的任务(如 DeepSeek 生成代码,Claude 创建可视化) ### 安全注意事项 1. **数据隐私**:避免向 LLM 提供敏感或个人身份信息 2. **查询验证**:在执行 LLM 生成的查询前,检查其安全性和正确性 3. **结果审核**:审核 LLM 生成的分析结果,确保其准确性和合理性 4. **访问控制**:限制 LLM 对数据库的访问权限,仅允许只读操作 5. **记录交互**:记录与 LLM 的交互,以便审计和改进

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/donghao1393/mcp-dbutils'

If you have feedback or need assistance with the MCP directory API, please join our Discord server