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に設定します。
    • 保存をクリックします。
  3. Data Processingノードを追加します。

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

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

    • ノードを設定します:

      • Input:payloadを入力します。

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

      • Model:gpt-4oを選択します。

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

      • Base URL:空欄のままにしてOpenAIのデフォルトエンドポイントを使用します。

        TIP

        このフィールドには、他のOpenAI互換サービスのAPIベースURLとAPIキーを入力して接続することも可能です。

      • Output Result Alias:summaryと入力します。

    • 保存をクリックします。

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

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

    openai_node_flow

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

    openai_node_rule_page

Flowのテスト ​

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

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

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

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

    • 編集をクリックし、続けてテスト開始をクリックして画面下部にテストパネルを表示します。

    • シミュレートデータ入力をクリックし、以下のメッセージをトピックsensors/temp_humidにパブリッシュするためにテスト送信をクリックします。

      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ノードの稼働状況やメトリクスを確認するには、編集ページを閉じてノードをクリックし、編集パネルの概要タブを開いてください。

      openai_node_statistics