使用 n8n 结合通义千问大模型构建业务数据库分析智能体

使用 n8n 结合通义千问大模型构建业务数据库分析智能体

在当今数据驱动的商业环境中,快速从业务数据库中提取有价值的信息并进行智能分析是许多企业的核心需求。本文将介绍如何利用 n8n(一个开源的工作流自动化工具)结合阿里云的 通义千问 大模型,构建一个智能体,用于自动化业务数据库分析。本项目通过集成 MySQL 数据库查询、数据处理以及大模型的自然语言处理能力,实现了从原始数据到智能分析的全流程自动化。

项目背景

随着企业数据的快速增长,手动分析数据库中的业务数据变得低效且容易出错。我们希望开发一个智能体,能够:

  1. 自动从 MySQL 数据库中提取业务数据;
  2. 对数据进行预处理和格式转换;
  3. 利用通义千问大模型进行数据分析,生成自然语言的分析报告;
  4. 将分析结果保存为文件,支撑对数据库的问答应用。

为此,我们选择了 n8n 作为工作流引擎,因其强大的节点式工作流设计和丰富的集成能力,可以无缝连接数据库和 AI 模型。

实现步骤

以下是构建该智能体的核心步骤:

  1. 准备工作

    • 安装并配置 n8n(可以选择本地部署或云端部署)。
    • 准备 MySQL 数据库,包含业务数据(例如销售记录、用户行为等)。
    • 获取通义千问大模型的 API 访问权限(通过阿里云平台申请)。
    • 确保 n8n 环境中已安装 MySQL 节点和 OpenAI 兼容的 Chat 节点(通义千问支持 OpenAI API 协议)。
  2. 设计工作流
    n8n 的工作流由多个节点组成,每个节点执行特定的任务。我们通过以下节点搭建了完整的工作流(参考截图):

    • 触发节点:使用 When chat message received 节点监听用户的分析请求。
    • 数据库查询节点:通过 MySQL 节点(如 get one tableget one table2)从数据库中提取数据。
    • 数据处理节点:使用 Merge 节点合并多表数据,并通过 Convert to JSON 节点将数据转换为 JSON 格式。
    • 大模型分析节点:通过 OpenAI Chat Model 节点调用通义千问大模型,输入处理后的数据,生成分析报告。
    • 结果保存节点:使用 Write File to Disk 节点将分析结果保存为文件。
  3. 配置通义千问大模型

    • OpenAI Chat Model 节点中,将 API 端点设置为通义千问的 API 地址。
    • 输入 API Key 和模型参数(例如温度、最大 token 数等),确保模型能够生成符合需求的分析报告。
  4. 测试与优化

    • 运行工作流,输入一个简单的分析请求(例如“分析最近一个月的销售数据”)。
    • 检查每个节点的输出,确保数据流转和模型分析结果符合预期。
    • 根据实际需求调整节点参数,例如优化 SQL 查询或调整大模型的提示词。
工作流解析

以下是截图中工作流的核心节点及其功能:

  • When chat message received:触发节点,接收用户输入的分析请求(例如“分析销售数据”)。
  • get one table / get one table2:MySQL 节点,分别从两个表中提取数据(例如销售表和用户信息表)。
  • Merge:合并来自多个表的数据,生成统一的数据集。
  • Convert to JSON:将合并后的数据转换为 JSON 格式,便于后续处理。
  • OpenAI Chat Model(通义千问大模型):接收 JSON 数据,结合用户请求,生成分析报告(例如“本月销售额增长了 10%,主要由新用户贡献”)。
  • Write File to Disk:将分析报告保存为文件(路径为 /documents/AIBrain_test/now.txt)。

此外,工作流中还使用了 Loop Over Items 节点来处理批量数据,以及 Aggregate 节点对数据进行汇总,确保分析的全面性。

关键代码:工作流配置

以下是 n8n 工作流的 JSON 配置(部分),展示了如何连接 MySQL 和通义千问大模型:

{
  "nodes": [
    {
      "name": "When chat message received",
      "type": "n8n-nodes-base.webhook",
      "parameters": {
        "httpMethod": "POST",
        "path": "analyze"
      }
    },
    {
      "name": "get one table",
      "type": "n8n-nodes-base.mySql",
      "parameters": {
        "query": "SELECT * FROM sales WHERE date >= DATE_SUB(NOW(), INTERVAL 1 MONTH)"
      }
    },
    {
      "name": "OpenAI Chat Model",
      "type": "n8n-nodes-base.openAiChatModel",
      "parameters": {
        "apiKey": "your-tongyi-qianwen-api-key",
        "model": "qwen-turbo",
        "prompt": "Analyze the following sales data: {{ $json.data }}"
      }
    },
    {
      "name": "Write File to Disk",
      "type": "n8n-nodes-base.writeBinaryFile",
      "parameters": {
        "filePath": "/documents/AIBrain_test/now.txt",
        "data": "{{ $json.result }}"
      }
    }
  ],
  "connections": {
    "When chat message received": {
      "main": [
        [
          {
            "node": "get one table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "get one table": {
      "main": [
        [
          {
            "node": "OpenAI Chat Model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "main": [
        [
          {
            "node": "Write File to Disk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
成果与总结

通过 n8n 和通义千问大模型的结合,我们成功构建了一个业务数据库分析智能体。该智能体能够:

  • 自动化地从 MySQL 数据库中提取和处理数据;
  • 利用通义千问大模型生成自然语言的分析报告;
  • 将结果保存为文件,便于后续查阅。

这个项目展示了 n8n 在工作流自动化中的强大能力,以及通义千问大模型在数据分析中的潜力。未来,我们计划进一步优化工作流,例如支持更多类型的数据源(如 PostgreSQL 或 API 数据),并增强大模型的分析能力,以生成更深入的洞察。

如果你对 n8n 或通义千问大模型有兴趣,不妨尝试类似的自动化项目,探索数据分析的更多可能性!

操作演示
工作流

主要搭建了4个工作流
在这里插入图片描述

操作步骤

  1. 运行『AI分析数据库表作用_V1.0_示例数据库Demo』,调试流程
    在这里插入图片描述

运行效果见全量运行的截图。

  1. 运行『AI分析数据库表作用_V1.0_全量数据库』,分析真实的业务数据库,包含333张表。

运行效果图

  • 数据合并节点,将表的结构和数据合并到一起
    在这里插入图片描述

  • 模型配置
    在这里插入图片描述

  • 智能体节点对上一步合并的数据进行分析
    在这里插入图片描述

  • 将结果保存到文件
    在这里插入图片描述

  • 表关系分析结果
    在这里插入图片描述

  1. 运行『AI针对数据库表问答V0.1』,测试问答效果。
    在这里插入图片描述
  • 模型配置为max,上下文比较长
    在这里插入图片描述

  • 测验问题:一共有多少项目?
    在这里插入图片描述

  • 测验问题:关于『绩效』的最新公告内容
    在这里插入图片描述

  • 测验问题:** 项目最近一条完成的沟通内容
    在这里插入图片描述

  1. 运行『AI针对数据库表问答V0.2_引入知识库』
  • 前面流程直接把所有333张表的分析结果都给了通义,结果token很长,模型分析就比较慢,后面把表格分析结果保存到知识库,然后根据问题分析关联表,接下来从知识库检索相关表结构,把结果给到模型进行分析,效率高了很多。

后续优化点:
对相似问题可以缓存
对业务数据的分析结果可以再精简,降低token消耗
发布流程,与阿里百炼的应用结合,发布公开应用
结合非结构化数据的分析,可以提供数据资产梳理服务

<think>嗯,用户想了解n8n如何与大语言模型集成或使用。首先,我需要回顾一下n8n的基本功能,它是一个工作流自动化工具,支持各种节点的连接。然后,大语言模型比如GPT、Claude或者开源的如LLAMA,这些模型通常通过API或者本地部署来调用。 根据用户提供的引用,特别是引用[1]提到Elastic集成了AI助手来处理安全威胁和查询生成,这可能类似于n8n的集成方式。引用[3]提到Haystack框架使用LLMs与Hugging Face、OpenAI等集成,这可能提示n8n可以通过HTTP请求节点调用这些API。 接下来,我需要考虑n8n的具体集成方法。首先,使用HTTP节点调用OpenAI的API,比如发送POST请求到他们的聊天接口。然后,处理返回的JSON数据,提取生成的文本。另外,用户可能想用本地部署的模型,比如通过Hugging Face的Inference API节点,或者搭建自定义API服务,用Python或JavaScript编写脚本节点。 还需要考虑数据处理和流程优化,比如错误处理、速率限制、结果缓存等。用户可能还关心实际应用场景,比如自动化客服、内容生成、数据分析等。此外,安全性和权限管理也很重要,比如正确存储API密钥。 最后,根据用户之前的引用,他们可能对性能分析和优化方法感兴趣,所以可能需要建议监控工作流执行时间、处理错误日志,以及如何扩展模型能力,比如结合RAG或知识库。需要确保回答结构清晰,分步骤说明,并提供实际示例,如代码片段或配置步骤,帮助用户理解如何操作。</think>### n8n与大语言模型集成方法 n8n作为开源工作流自动化平台,可通过以下方式与LLM集成: #### 1. 原生HTTP请求集成 通过HTTP Request节点直接调用大模型API: ```json { "nodes": [ { "parameters": { "url": "https://api.openai.com/v1/chat/completions", "headers": { "Authorization": "Bearer YOUR_API_KEY" }, "body": { "model": "gpt-4", "messages": [{"role": "user","content": "{{$json.input}}"}] } }, "name": "OpenAI API", "type": "n8n-nodes-base.httpRequest" } ] } ``` 支持主流的LLM服务商包括: - OpenAI GPT系列 - Anthropic Claude - Cohere - Hugging Face Inference API[^3] #### 2. 本地模型部署集成 对私有化部署的大模型,可通过以下方式接入: ```python # 自定义代码节点示例 from transformers import pipeline def process_input(item): generator = pipeline('text-generation', model='local/llama-2-7b') return { "output": generator(item.json.input)[0]['generated_text'] } ``` 需注意模型推理的硬件要求[^2] #### 3. 中间件桥接模式 通过Haystack等框架建立中间层: ```mermaid graph LR A[n8n工作流] --> B[Haystack管道] B --> C[Elasticsearch] B --> D[LLM推理服务] ``` 此架构支持复杂NLP任务处理[^3] ### 典型应用场景 1. **智能客服自动化** - 对话日志分析 → 生成服务报告 - 自动工单分类 → 建议解决方案 2. **内容生成流水线** ``` 用户输入 → 敏感词过滤 → LLM内容生成 → 人工审核 → 发布 ``` 3. **数据分析增强** 使用SQL生成节点: ```sql -- LLM自动生成的查询示例 SELECT DATE_TRUNC('week', created_at) AS week, COUNT(DISTINCT user_id) AS active_users FROM user_activity WHERE {{LLM生成的过滤条件}} ``` ### 配置注意事项 1. **权限管理** - 使用n8n Credentials系统加密存储API密钥 - 设置细粒度节点执行权限 2. **性能优化** - 启用工作流缓存(对重复请求) - 配置合理的超时时间(建议5-30秒) - 使用流式响应处理长文本生成 3. **错误处理** ```json "errorHandling": { "continueOnFail": true, "retry": { "maxAttempts": 3, "backoffStrategy": "exponential" } } ``` 最新实践建议参考Elastic的AI Assistant实现方案[^1],结合RAG(检索增强生成)模式可显著提升响应准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铭记北宸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值