クイックスタート: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に設定します。 - 保存をクリックします。
Data Processingノードを追加します。
- ProcessingセクションからData Processingノードをドラッグします。
- 以下のマッピングを追加します:
payload.device_id→ エイリアスdevice_idpayload.temperature→ エイリアスtemperaturepayload.humidity→ エイリアスhumidity
- 保存をクリックします。
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と入力します。
保存をクリックします。
Republishノードを追加します。
- SinkセクションからRepublishノードをドラッグし、OpenAIノードに接続します。
- トピックを
ai/summaryに設定します。 - ペイロードを
${summary}に設定します。 - 保存をクリックします。
すべてのノードを接続し、右上の保存をクリックしてFlowを保存します。

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

Flowのテスト
MQTTクライアントをEMQXに接続します。
Flowを素早くテストするには、ダッシュボードのDiagnostic Tools → WebSocket Clientを使ってMQTTクライアントをシミュレートできます。あるいは、MQTTXツールや実際のMQTTクライアントも利用可能です:
- EMQXサーバーに接続します。
- トピック
ai/summaryをサブスクライブします。
テストを開始します。
Flowデザイナーで任意のノードをクリックし、編集パネルを開きます。
編集をクリックし、続けてテスト開始をクリックして画面下部にテストパネルを表示します。
シミュレートデータ入力をクリックし、以下のメッセージをトピック
sensors/temp_humidにパブリッシュするためテスト送信をクリックします: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ノードの稼働状況やメトリクスを確認するには、編集ページを閉じてノードをクリックし、編集パネルの概要タブを開いてください。
