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ノードに接続します。

    • ノードを設定します:

      • Inputpayloadを入力します。

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

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

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

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

        TIP

        このフィールドにプロバイダーのAPIベースURLとAPIキーを入力することで、OpenAI互換の他サービスに接続可能です。

      • Output Result Aliassummaryと入力します。

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

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

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

    openai_node_flow

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

    openai_node_rule_page

Flowのテスト

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

    Flowを素早くテストするには、ダッシュボードのDiagnostic ToolsWebSocket 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