はじめに
DifyというLLMアプリ開発プラットフォームを用いて、ブログ執筆のネタを集めるアプリを、AI活用のために社内で実施されたハッカソンで作成しました。この記事では、Difyの基本的な説明や作成したアプリの詳細、実際にDifyでアプリを作成してみた所感についてお話しします。
Difyとは
Difyは簡単に言うと、誰でもAIツールやAIエージェントを作成できるプラットフォームの一つです。基本的にノーコーディングで使用でき、さまざまな機能を持つブロックを繋げたり、AIに渡すプロンプトを書いたりするだけでアプリを作成できます。本記事の執筆時点(2024年10月)でDifyでは以下の画像にある4種類からアプリのタイプを選択できます。
作成したアプリについて
ブログのネタを集めるアプリを作成するにあたり、以下の仕様を持たせました。
- ブログのテーマにしたいジャンルを入力として受け付ける(例:Java, HTML, Reactなど)
- 受け取ったジャンルに関する最新情報やホットなトピックについて書かれたWebページを検索する
- 検索結果から5件のページをユーザに提案する
- 提案した記事やブログの内容について追加で質問があれば対応する
ユーザからジャンルや質問が入力される回数が不定であるため、今回はエージェントを用いてこれらの仕様を実現しました。エージェントとはタスクの遂行に必要なツールをLLMが自由に選び、与えられたタスクを実行するものです。そのため、エージェントの実装では、エージェントが使う外部ツールの一覧とエージェントの振る舞いを定義するプロンプトを主に設定します。
Difyで提供されている利用可能な外部ツールは種類が多いのですが、今回はWeb検索に必要となるツールからbing_web_search, jina_search, ddgo_searchの3つを選択しました。
次にプロンプトですが、以下のことを渡しています。
- エージェントの背景設定
- 利用者が成し遂げたいこと
- エージェントが実施すること
- エージェントへの注意事項
- 処理の実行ステップ
私は普段からよくプロンプトを書くというわけではないので、プロンプトの中身が参考になるかは怪しいところですが、エージェントにしてほしいことは言い切りの形でなるべく詳細に書くように意識しました。具体的には、記事の多様性や公開日について言及した部分です。この指示がないと数年前の古い記事や同じページの記事を複数提案してくるようになりました。そのため、人間相手であれば言わなくても汲み取るであろうこともあえて明示することで回答の精度を高めました。今回、アプリを作成するうえで指定した項目は以上です。
プロンプトで明示していても、書かれている内容が似ている記事や最新情報ではない記事をまだ提案してしまうことがあるという課題が作成したアプリには残るものの、使用したい外部ツールとプロンプトを設定するだけで簡単にWeb検索を行い、有用な結果をまとめて提示するアプリを作成できました。試しに動作させてみた結果を載せておきます。
Difyでアプリを作ってみた所感
今回Difyを用いて初めてアプリを作成しましたが、Difyの操作に慣れる時間を含めても4~5時間程度でアプリを作成できました。この手軽さがDifyの最も優れた部分かなと思います。ただ、Dify自体はとても便利なのですが、それをどう活用して利便性の高いものを生み出すかはやはり難しいものだとも感じました。AIは便利で面白いアプリを作ることはできるのですが、本当に必要か・便利なのかといったところを満たすことはAIの回答の不安定さもありハードルは高そうです。AIの活用事例は世の中にたくさん出ているため、まずはそのどれかを模倣してDify上で再現してみるのも、アプリ作成の経験を積む意味では良いかもしれません。
おわりに
本記事では指定したジャンルについてWeb検索し、有用な結果を提示するアプリをDifyを用いて作成した経験についてお話ししました。実際にDifyを使ってみて改めてその簡単さに気づくこともあったので、ぜひみなさんもDifyを使ってアプリを作成してみてください。