クイックスタート:OpenAIノードを使ったFlowの作成
このセクションでは、実際のユースケースを通じて、FlowデザイナーでLLMベースのFlowを素早く作成・テストする方法を説明します。
本デモでは、MQTTトピックからセンサーのデータを受信し、LLM(例:OpenAI GPT)を使ってデータを解釈し、その意味を自然言語で要約するワークフローを構築します。生成された要約は新しいトピック ai/summary に再パブリッシュされ、下流で利用されます。
シナリオ説明
デバイスが温度と湿度の読み取り値をMQTTトピック sensors/temp_humid に報告すると仮定します。各メッセージはJSON形式の生データを含みます。EMQX Flowは以下の処理を行います。
- データ処理:デバイスIDとセンサー値を抽出する。
- LLMベースの処理:OpenAIモデルを使ってセンサーの読み取り値を要約する。
- メッセージの再パブリッシュ:AI生成の要約を新しいトピック
ai/summaryにパブリッシュする。
サンプルメッセージ:
{
"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キーを用意してください。
FlowsページでCreate Flowボタンをクリックします。
Messagesノードを追加します。
- ソースパネルからMessagesノードをドラッグします。
- トピックを
sensors/temp_humidに設定します。 - Saveをクリックします。
Data Processingノードを追加します。
- ProcessingセクションからData Processingノードをドラッグします。
- 以下のマッピングを追加します:
payload.device_id→ エイリアスdevice_idpayload.temperature→ エイリアスtemperaturepayload.humidity→ エイリアスhumidity
- Saveをクリックします。
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
このフィールドにプロバイダーのAPIベースURLとAPIキーを入力することで、OpenAI互換の他のサービスに接続できます。
Output Result Alias:
summaryと入力します。
Saveをクリックします。
Republishノードを追加します。
- SinkセクションからRepublishノードをドラッグし、OpenAIノードに接続します。
- トピックを
ai/summaryに設定します。 - ペイロードを
${summary}に設定します。 - Saveをクリックします。
すべてのノードを接続し、右上のSaveをクリックしてFlowを保存します。

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

Flowのテスト
MQTTクライアントをEMQXに接続します。
Flowを素早くテストするには、ダッシュボードのDiagnostic Tools → WebSocket Clientを使ってMQTTクライアントをシミュレートできます。あるいは、MQTTXツールや実際のMQTTクライアントも利用可能です。
- EMQXサーバーに接続します。
- トピック
ai/summaryをサブスクライブします。
テストを開始します。
Flowデザイナーで任意のノードをクリックし、編集パネルを開きます。
Editをクリックし、続けてStart Testをクリックして画面下部にテストパネルを開きます。
Input Simulated Dataをクリックし、以下のメッセージをトピック
sensors/temp_humidにパブリッシュするためにSubmit Testをクリックします。json{ "device_id": "device123", "temperature": 38.2, "humidity": 75 }
結果を確認します。
Flowの実行結果が成功したことを確認できます。

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タブを開きます。
