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ページでCreate 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 と入力
      • Modelgpt-4oを選択
      • API Key:OpenAI APIキーを入力
      • Base URL:空欄のまま
      • Output Result Aliassummaryと入力
    • Saveをクリックします。
  5. Republishノードを追加します。

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

    openai_node_flow

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

    openai_node_rule_page

Flowのテスト

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

    Flowを素早くテストするには、ダッシュボードのDiagnostic ToolsWebSocket Clientを使ってMQTTクライアントをシミュレートできます。あるいは、MQTTXなどのツールや実際のMQTTクライアントも利用可能です。

    • EMQXサーバーに接続します。
    • トピックai/summaryをサブスクライブします。
  2. テストを開始します。

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

    • Editをクリックし、続けて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

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

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

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

    • OpenAIノードの稼働状況やメトリクスを確認するには、ノードをクリックして編集パネルを開き、Overviewタブをクリックしてください。

      openai_node_statistics