Skip to content

快速开始:使用 Anthropic 节点创建 Flow

本页面展示如何使用 Claude 3 Sonnet 模型,对接收到的遥测数据进行数值聚合处理。该示例模拟一个真实场景,在智能工厂或楼宇等物联网系统中,设备通过 MQTT 发送状态消息,系统需要对这些数据进行自动化、智能化的处理。

场景描述

在许多工业或智能楼宇应用中,IoT 设备会在一条 MQTT 消息中同时上报多个指标。例如,一个电力监测设备可能会一次性上报多个回路的电力数据。

每条消息发布到主题 devices/power_report,其字段包括:

  • device_id:设备唯一标识
  • 多个数值型字段,例如 circuit_1circuit_2circuit_3
  • 其他非数值字段,如 statustimestamp

目标是使用 LLM(Claude 3 Sonnet)对消息中的所有数值字段进行求和(即各个回路的总耗电量),并将结果以数值形式转发到下游用于计费或存储处理。

示例消息

json
{
  "device_id": "pmu-1008",
  "circuit_1": 120.5,
  "circuit_2": 98.7,
  "circuit_3": 103.2,
  "status": "nominal",
  "timestamp": "2025-06-06T10:00:00Z"
}

预期输出(由 Claude 模型生成)

322.4

即所有回路电量字段的总和。

创建 Flow

前置条件

请确保你拥有有效的 Anthropic API Key,并设置正确的 API 版本(如 2023-06-01)。

  1. Flows 页面点击 Create Flow 创建新的流程。

  2. 添加消息节点:

    • 从左侧 Source 区域拖拽一个消息节点到画布中。
    • 设置订阅主题为 devices/power_report
    • 点击保存
  3. 添加 Anthropic 节点:

    • 从 Processing 区域拖拽一个 Anthropic 节点并连接到上一步的消息节点。

    • 配置节点如下:

      • 输入:填入 payload

      • 系统消息:输入如下提示词:

        你是一个电力消耗计算器。给定一个包含多个键的输入 JSON 对象,请对其中所有数值型字段(如各回路读数)进行求和,并仅返回总和。
      • 模型:选择 claude-3-sonnet-20240620

      • 最大令牌数:输入 50

      • Anthropic 版本:输入 2023-06-01

      • API 密钥:输入你的 Anthropic API 密钥。

      • 基础 URL:留空(使用默认地址)。

      • 输出结果别名:输入 total_power

    • 点击保存以保存节点配置。

  4. 添加消息重发布节点:

    • 从 Sink 区域拖拽一个消息重发布节点,并连接到 Anthropic 节点。
    • 设置目标主题为 devices/power_total
    • 设置 Payload 为 ${total_power}
    • 点击保存
  5. 点击右上角的保存按钮保存整个 Flow。

    anthropic_node_flow

  6. Flow 和表单规则是互通的。你也可以在 Rule 页面中查看对应的 SQL 和规则配置。

    anthropic_node_rule_page

测试 Flow

  1. 使用 MQTT 客户端连接到 EMQX。

    你可以使用 Dashboard 的 诊断工具 -> WebSocket 客户端模拟 MQTT 客户端,也可以使用 MQTTX 或实际 MQTT 客户端:

    • 连接至 EMQX 服务端。
    • 订阅主题 devices/power_total
  2. 开始测试:

    • 在 Flow 设计器中点击任意节点,打开编辑面板。

    • 点击编辑,然后点击开始测试打开底部测试面板。

    • 点击输入模拟数据,设置消息主题为devices/power_report,在 Payload 中输入以下测试消息,然后点击提交测试发布到:

      json
      {
        "device_id": "pmu-1008",
        "circuit_1": 120.5,
        "circuit_2": 98.7,
        "circuit_3": 103.2,
        "status": "nominal",
        "timestamp": "2025-06-06T10:00:00Z"
      }
  3. 查看结果和节点运行指标:

    • 你将看到 Flow 成功执行并产出结果。

      anthropic_node_test_result

    • 回到 WebSocket 客户端 页面,你应能收到类似以下的 AI 输出结果:

      322.4

    • 若测试失败,页面会显示对应错误信息。

    • 若需查看该 Anthropic 节点的运行统计,在 Flows 页面中点击节点,在弹出的编辑面板中点击概览选项卡。

      anthropic_node_statis