クイックスタート: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_id
payload.temperature
→ エイリアスtemperature
payload.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:空欄のまま
- Output Result Alias:
summary
と入力
- Input:
- Saveをクリックします。
Republishノードを追加します。
- SinkセクションからRepublishノードをドラッグし、OpenAIノードに接続します。
- トピックを
ai/summary
に設定します。 - ペイロードを
${summary}
に設定します。 - Saveをクリックします。
すべてのノードを接続し、右上のSaveをクリックしてFlowを保存します。
Flowとフォームルールは相互運用可能です。Ruleページで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タブをクリックしてください。