ソラカメとSORACOM Fluxで簡単実装!生成AIを活用した「ネコちゃん日記自動生成アプリ」
IoT x GenAI Lab
松尾研究所では、ソラコム様とIoT分野におけるLLMの活用を研究・推進する「IoT x GenAI Lab」(以下IoT GenAI Lab)を設立しています。IoT GenAI Labは、設立して約1年になり、三菱電機とソラコム・松尾研究所で空調機器制御の実証実験で快適さを維持した電気使用量削減といった好事例も出始めてきました。
本事例は、SORACOM様の大規模イベント「SORACOM Discovery 2024」でも、松尾研究所のチーフAIエンジニア 横山が発表していますが、そのSORACOM Discovery 2024でソラコム様から発表されたのがSORACOM Fluxです。SORACOM Fluxは一言でいうと、ローコードのIoTアプリケーションビルダーです。
画像はSORACOM社 Webサイトから引用
SORACOM Fluxでは、手軽にIoTアプリの開発ができるのですが、大きな特徴の1つとして生成AIのIoTアプリへの組み込みがあります。SORACOM Discovery 2024では、SORACOM Fluxを使ったアプリの事例として、ネットワークに繋がったカメラ(ソラカメ)の画像をマルチモーダルな生成AIモデルに入力して、異常を検知したらアラートを出すデモを実施し会場を沸かしていました。
ネットに繋がる多種多様なIoTデバイス同士を生成AIでつないで新たな価値を創出するという、これからの生成AI時代に重要になりそうなことを、SORACOM Fluxを使うと手軽に実現できそうな予感がしてきますね。
SORACOM Fluxを使ったノーコードアプリ開発
ワクワクしてきてしまったので、私も早速SORACOM Fluxを使ってアプリを開発してみることにしました。開発するアプリは「ネコちゃん日記自動生成アプリ」です。具体的には、我が家のネコちゃんの画像をソラカメで定期的に撮影して、その画像をもとに生成AIが日記を作成して、Slackに通知してくれます。凄く癒やされそうですね。
なお、今回の開発は私が個人で購入したデバイス(ソラカメ)と個人で登録したSORACOMオペレーター(アカウント)で試行しています。よって、基本的には個人ユーザーで、どなたでも同じことを試せます。また、本記事はソラコム様公式の情報ではなく、特別なサポートも受けておりません。本記事の内容の文責は私個人にあることをご了承ください。
SORACOM Fluxの事前準備
アプリ開発の、SORACOM Fluxの基礎的なセットアップと事前準備に関しては、ソラコム ソリューションアーキテクトの今井様の以下記事を参考にさせていただきました。
必要な情報前提やセットアップ方法含めて丁寧に記載されていましたので、この記事のとおり進めることでセットアップすることが可能でした。
ただ、AWSの設定に関しては、会社のルールに従い、弊社のインフラチームの協力を得て設定をしました。企業で試す場合は、所属のルールとインフラ管理部門との連携が必要になると思いますので、連携をとりながら設定するのが良いと思います。その際、上記の記事が役に立つと思います(弊社でも、インフラチームと記事を共有することでスムーズに進めることができました)。
上記の記事では、定期的に起動するタイマーを使ってソラカメの画像をSORACOM Harvest Filesという、IoTデバイスのデータを収集・蓄積できるサービスにアップロードするところを実施しています。以下の図では1,2,3の部分となります。
図はローコードで実装!SORACOM Fluxでソラカメ画像を使ってみよう!より引用
今回は、記事では省略されている上図の4,5の生成AIの部分と通知(今回はSlack連携を使いました)部分に関して説明いたします。
SORACOM Flux生成AI部分と通知部分
生成AI部分の説明です。最初に今回作るアプリのフローです。このフローはSORACOM Fluxでノーコード(クリックのみ)で簡単に作成できます。
生成AIの部分を確認してみましょう。2024年8月時点でOpenAI, Microsoft, Google, Anthropicといった主要な生成AIサービスの代表的なモデルが揃っています。
新モデルへの対応も速く、モデルが無くて困るということは無さそうですね。
生成AI部分の設定は以下となります。
設定に関してはソラコム様の記事SORACOM Harvest Files にアップロードした画像をGPT-4oで物体検知するを参考にさせていただきました。
プロンプトとしては、以下の内容を設定しました。
添付の画像はネコちゃんの画像です。
画像のネコちゃんになりきった気分で、ネコちゃん日記を書いてください。
必ずJSONで以下のような形式で出力してください。
###
{"text": "ここに文章を入れる"}
また[AIに画像を読み込ませる]:
にチェックを入れて、入力欄に${payload.presignedUrls.get}
を入れてください。これによりSORACOM Harvest Filesにアップロードした画像をAIに読み込ませることができます。
Slack連携部分もSORACOM Harvest Files にアップロードした画像を GPT-4o で物体検知するを参考にしました。INPUTのPAYLOAD
部分のみAIの出力に合わせて以下のように変更しています。
${payload.output.text}
<${event.payload.presignedUrls.get}|画像>
これでアプリは完成です。SORACOM Fluxの事前準備ができていたら、生成AI出力部分と通知部分は簡単に作成できると思います。
アプリ実行結果
ここから完成したアプリを実際に動かしてみます。ネコちゃんの近くにソラカメを設置して、SORACOM Fluxのタイマーをオンにするだけです。今回は、テストとして手動でタイマーを動作させて確認しました。
テストの様子
通知に関しては、会社でネコを飼っている人が自分のカワイイネコちゃんの画像を自由に投稿できる弊社のSlackチャンネル#club_neko
に投稿しました。ネコのモデルは、我が家で飼っている保護猫のソラとウミです。
以下SORACOM Fluxから投稿された日記です。
AIにより自動生成されたネコちゃんの日記を投稿することができました!
ただし、取得してるpresignedUrls
の有効期限は、イベントの発生から1時間のため(参考:SORACOM Harvest Files イベントソース)、1時間たつと画像は以下のようにみれなくなってしまう点には注意ください。永続的に画像を残したい場合は、Slackのbotを使って画像を投稿するなどの工夫が必要となりそうです。
まとめ
SORACOM Fluxを活用して、ソラカメで撮影したネコの画像をもとに生成AIで日記を自動生成する「ネコちゃん日記自動生成アプリ」を開発してみました。
本アプリの開発を通じて、生成AIを活用したIoTアプリを手軽に作れるSORACOM Fluxの便利さを実際に体感することができました。SORACOM Fluxは現在試用期間中で、生成AIに関しては200クレジットの使用が可能です(生成AIサービスにより1回の使用にかかるクレジットは異なります。詳細はSORACOM Fluxのサイトを参照ください)。クレジットが不足した場合は、OpenAIのAPI Keyを自前で用意することで、継続使用が可能となります。
アプリ開発のときは、特にAPIの仕様を調べるときSORACOM Support Botが非常に役立ちました。SORACOM Support Botは生成AI、特にRAG技術を活用しているチャットボットです。詳細はLLM + RAG を使ったSORACOM Support Botの裏側の歴史が詳しいです。このように生成AI技術をいち早く取り組み、社内のノウハウを活用したサービスを提供しているスピード感が素晴らしいですね。
秋以降には、SORACOM Flux Pro/Enterpriseが登場するようなので、そちらも楽しみです。今のうちにSORACOM Fluxを使いこなして、来たるべき今後のIoTx生成AI時代に備えておきましょう!
参考リンク
Discussion