Difyで天気予報アプリを作成してみた - ワークフローをツールとして登録し使ってみた

2024/05/31に公開

前回の記事はコチラ👇
https://zenn.dev/itella_blog/articles/d77bb0d8520cfc

はじめに

天気予報アプリ作成中にDifyのアップデートがあり新機能が追加されたため
バージョン0.6.6から0.6.9にアップデートしました✨
 
詳細はコチラ👇
https://github.com/langgenius/dify/releases/tag/0.6.9
 
追加された機能の中でAIワークフローを再利用可能なツールとして公開でき他のワークフローに統合できるようになったようです・・!重複している処理をツールとして扱えるのですごく便利だなと思いました!
 
今回はこの新機能を使って天気予報アプリで重複している処理をツール化して動かせるか試してみようと思います!

試行

天気予報アプリで重複している処理は知識取得~終了になります👇

 
新しくアプリを作成し重複している処理を埋め込んでいきます。
このアプリを実行前の処理で取得した地方名、都道府県を設定できるように開始に変数を追加します。知識取得~終了までの処理は今までと同じです。

 
アプリが動作するか念のためテストを行いました。問題なさそうです👇

右上にある「公開する」から「公開済み」にし「Workflow as Tool」を押下します。

 
ツールの設定を行う画面が表示されるため入力が必要な個所を埋め保存します。
※「Tool call name」のみ入力しました。

 
 
天気予報アプリのフローで重複しているフローを置き換えます。
以下画像のLLM3と知識取得の間に追加します。
 
追加方法はLLM3と知識取得間にカーソルを当てると「+」ボタンが表示されるので押下します。
Toolsタブ > Workflow を押下すると登録したツールが表示されます。
※表示されない場合は天気予報アプリを開きなおすと表示されました。

 
ツールの前のLLM3では入力された場所の都道府県を出力します。
LLM3で出力した都道府県をツールの入力変数に渡します。

終了ブロックを追加しツールで出力された天気予報のニュース原稿を出力します。

動作確認-1

以下操作を行います。
・右側にある「▷実行」を押下
・入力エリアに「東京都」と入力
・「実行を開始」を押下
結果:実行は成功しているけど出力がおかしい・・

出力のやり方に問題があるのでしょうか・・🤔

出力されているものが何なのか調べてみるとUnicodeというものらしいです・・
👇のサイトでUnicodeを日本語に変換できるので試します。
https://tech-unlimited.com/escape-unicode.html

日本語に変換できました。

天気予報アプリのワークフローに戻り
ツールの出力結果をLLMで日本語に変換してもらいます。

動作確認-2

操作方法は動作確認-1と同じです。
結果:天気予報が出力できました🎉

「北海道・奄美・沖縄」の処理も同様に修正します。
修正後のフローが以下となります👇

色んな地域を入力してみましたが特にエラーなどは発生せず動作としては問題なさそうです👍

まとめ

重複している処理をまとめられるのはすごい良いけど、Unicodeで出力されてしまうのが気になる・・ツールの出力の仕方で他にやり方があるのでしょうか・・🤔
結局LLMで「日本語に変換して」という指示が必要だしそれを両方で行っているので個人的にはあまり納得のいかないやり方だなと・・😥
 
出力に関しては未解決ですが、ワークフローをツールとして登録し、他のワークフローで簡単にツールが使えるのでこれから使用する機会が多くなりそうだなと感じました!
 
Difyを触ってみてまた何か分かったらメモとして残します!
今回は以上となります🫡

Discussion