クイックスタート: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ページでNew 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
と入力します。Base URL:デフォルトは https://api.anthropic.com/v1 ですが、Anthropic APIフォーマットに対応した任意のベースURLを使用できます。
注意
公開アドレスのベースURLを使用する場合は、NAT Gatewayが有効になっていることを確認してください。プライベートネットワーク上でAnthropic APIフォーマットに対応したモデルのベースURLを使用する場合は、VPC PeeringまたはPrivateLinkのいずれかを設定してください。
Model:
gpt-4o
を選択します。API Key:OpenAI APIキーを入力します。
Output Result Alias:
summary
と入力します。
Saveをクリックします。
Republishノードを追加します。
- SinkセクションからRepublishノードをドラッグし、OpenAIノードに接続します。
- トピックを
ai/summary
に設定します。 - ペイロードを
${summary}
に設定します。 - Saveをクリックします。
全てのノードを接続し、右上のSaveをクリックしてFlowを保存します。
Flowとフォームルールは相互運用可能です。ルール設定ページでSQLや関連ルール設定も確認できます。
Flowのテスト
MQTTクライアントをEMQXに接続します。
Flowを素早くテストするには、デプロイメントメニューのOnline Testを使ってMQTTクライアントをシミュレートできます。あるいは、MQTTXツールや実際のMQTTクライアントを使用しても構いません:
- デプロイメントに接続します。
- トピック
ai/summary
をサブスクライブします。
テストを開始します。
Flowデザイナーで任意のノードをクリックし、編集パネルを開きます。
Edit flowをクリックし、次にStart Testをクリックして画面下部にテストパネルを表示します。
Input Simulated Dataをクリックし、以下のメッセージをトピック
sensors/temp_humid
にパブリッシュするためSubmit Testをクリックします:json{ "device_id": "device123", "temperature": 38.2, "humidity": 75 }
結果を確認します。
Flowの実行結果が成功したことを確認できます。
Online Testページに戻ると、以下のようなAI生成の要約を受信できます:
“The sensor readings from device "device123" indicate that the current temperature is 38.2°C and the humidity level is 75%.”
テストが失敗した場合は、エラーメッセージが表示されます。
OpenAIノードの実行統計やメトリクスを確認するには、ノードをクリックして編集パネルを開き、Metricsタブをクリックしてください。