Skip to content

クイックスタート:OpenAIノードを使ったFlowの作成

このセクションでは、FlowデザイナーでLLMベースのFlowを実際のユースケースを通じて素早く作成・テストする方法を説明します。

このデモでは、MQTTトピックからセンサーデータを受信し、LLM(例:OpenAI GPT)を使ってデータを解釈し、その意味を自然言語で要約するワークフローを構築します。生成された要約は新しいトピック ai/summary に再パブリッシュされ、下流で利用されます。

シナリオの説明

デバイスが温度と湿度の読み取り値をMQTTトピック sensors/temp_humid に報告すると仮定します。各メッセージはJSON形式の生データを含みます。EMQX Flowは以下の処理を行います:

  • データ処理:デバイスIDとセンサー値を抽出します。
  • LLMベースの処理:OpenAIモデルを使ってセンサーの読み取り値を要約します。
  • メッセージ再パブリッシュ:AI生成の要約を新しいトピック ai/summary にパブリッシュします。

サンプルメッセージ:

json
{
  "device_id": "device123",
  "temperature": 38.2,
  "humidity": 75,
  "timestamp": 1717568000000
}

期待される出力(AI生成):

Device device123 reported a temperature of 38.2°C and 75% humidity.

Flowの作成

前提条件

有効なOpenAI APIキーを用意してください。

  1. FlowsページでNew Flowボタンをクリックします。

  2. Messagesノードを追加します。

    • ソースパネルからMessagesノードをドラッグします。
    • トピックをsensors/temp_humidに設定します。
    • Saveをクリックします。
  3. Data Processingノードを追加します。

    • ProcessingセクションからData Processingノードをドラッグします。
    • 以下のマッピングを追加します:
      • payload.device_id → エイリアス device_id
      • payload.temperature → エイリアス temperature
      • payload.humidity → エイリアス humidity
    • Saveをクリックします。
  4. OpenAIノードを追加します。

    • ProcessingセクションからOpenAIノードをドラッグし、Data Processingノードに接続します。

    • ノードを設定します:

      • Inputpayloadを入力します。

      • System MessageGenerate a short summary of the device’s sensor readings in human-readable format と入力します。

      • Base URL:デフォルトは https://api.anthropic.com/v1 ですが、Anthropic APIフォーマットに対応した任意のベースURLを使用できます。

        注意

        公開アドレスのベースURLを使用する場合は、NAT Gatewayが有効になっていることを確認してください。プライベートネットワーク上でAnthropic APIフォーマットに対応したモデルのベースURLを使用する場合は、VPC PeeringまたはPrivateLinkのいずれかを設定してください。

      • Modelgpt-4oを選択します。

      • API Key:OpenAI APIキーを入力します。

      • Output Result Aliassummaryと入力します。

    • Saveをクリックします。

  5. Republishノードを追加します。

    • SinkセクションからRepublishノードをドラッグし、OpenAIノードに接続します。
    • トピックをai/summaryに設定します。
    • ペイロードを${summary}に設定します。
    • Saveをクリックします。
  6. 全てのノードを接続し、右上のSaveをクリックしてFlowを保存します。

    openai_node_flow

    Flowとフォームルールは相互運用可能です。ルール設定ページでSQLや関連ルール設定も確認できます。

    openai_node_rule_page

Flowのテスト

  1. MQTTクライアントをEMQXに接続します。

    Flowを素早くテストするには、デプロイメントメニューのOnline Testを使ってMQTTクライアントをシミュレートできます。あるいは、MQTTXツールや実際のMQTTクライアントを使用しても構いません:

    • デプロイメントに接続します。
    • トピックai/summaryをサブスクライブします。
  2. テストを開始します。

    • Flowデザイナーで任意のノードをクリックし、編集パネルを開きます。

    • Edit flowをクリックし、次にStart Testをクリックして画面下部にテストパネルを表示します。

    • Input Simulated Dataをクリックし、以下のメッセージをトピックsensors/temp_humidにパブリッシュするためSubmit Testをクリックします:

      json
      {
        "device_id": "device123",
        "temperature": 38.2,
        "humidity": 75
      }
  3. 結果を確認します。

    • Flowの実行結果が成功したことを確認できます。

      openai_node_test_result

    • Online Testページに戻ると、以下のようなAI生成の要約を受信できます:

      “The sensor readings from device "device123" indicate that the current temperature is 38.2°C and the humidity level is 75%.”

    • テストが失敗した場合は、エラーメッセージが表示されます。

    • OpenAIノードの実行統計やメトリクスを確認するには、ノードをクリックして編集パネルを開き、Metricsタブをクリックしてください。

      openai_node_statistics