skip to content
Site header image satoooh.org

オープンソースLLMアプリ開発フレームワーク「Dify」を触ってみる

Last Updated:

Dify というオープンソースの LLM アプリ開発フレームワークがあります。 「ワークフロー」機能が追加されてから話題になることが多く、ずっと気になっていたサービスでした。 今回初めて Dify を触ってみたので、その感想を書いてみます。

Google 検索結果を要約してくれるワークフローを作成

とりあえずこの手のツールは実際に動くものを作ってみるのが一番理解に役立つと思うので、Google検索をして、その結果を要約してくれる Perplexity.ai のようなワークフローを作成してみました。

ワークフローは非常に単純で、以下の4ステップから構成されています。 直感的に操作ができるため、Difyを初めて触る人や、LLMアプリ開発にあまり詳しくない人でも、これくらい単純なワークフローは10~15分程度あれば作成できると思います。

  • input: ユーザーの質問を受け付ける
  • GoogleSearch: SerpApi を使って input でGoogle検索を実行する
  • LLM: 検索結果の内容をもとにユーザーの質問への回答を生成する
  • 終了: ユーザーに回答を返す

作成したアプリはAPIドキュメントが自動生成されるため、それを参考に実際にリクエストを送ることも可能です。 Difyで作成したアプリケーションどうしを連携させることも簡単になっています。

POSTリクエストを送信しAPIを叩くと、その処理の履歴がダッシュボードに記録されます
POSTリクエストを送信しAPIを叩くと、その処理の履歴がダッシュボードに記録されます

API として利用することも可能ですし、アプリを実行できる Web インターフェースも提供されています。 さらにバッチ処理も可能なので、LLMを用いた簡単な自動化は Dify を使えば簡単に実現できそうですね。

LLM Radio を Dify で作成

先日書いた記事  GPT-4oを使ってWeb記事や論文をラジオ番組風に解説する で作成した LLM Radio を Dify で作成してみました。

現時点で workflow に TTS を入れる方法がわからず、一旦はラジオスクリプトを生成させるところまで自動化してみました。 TTS モデルも設定できるので、きっとやり方があるはず…わかったら追記します。

JSON プロパティ抽出のところだけはコードを書きました。 このブロックでは、GPT-4o が json 形式で返すテキストをパース(必要なデータの抽出)しています。GPT-4o が返す json は、末尾にコンマが付いていることがあり、そのまま読み込もうとするとエラーを吐くため、正規表現で末尾コンマを削除する処理も入れています。

{
  "key1": "value1",
  "key2": "value2" // この末尾コンマのせいでエラーが出るので、文字列置換で削除
}
左のフォームに記事のURLを入れると、それを紹介するスクリプトが生成できる。
左のフォームに記事のURLを入れると、それを紹介するスクリプトが生成できる。

感想

一連の処理を(ほとんど)コードを書くことなく実現でき、その体験もスムーズであったのは予想外に良かったです。

現時点での Dify の感想としては、ワークフローの作成が非常に直感的で、初心者でも簡単に作成できる点が良いと思いました。 GPTs よりもカスタマイズ性も高く、かつオープンソースでセルフホストできる点が魅力です。 LLM アプリ開発がかなり身近なものになったような気がします。 LLM アプリ開発や、LLM を使った検証に興味がある方は、かなり簡単に構築できるので選択肢として検討する価値があると思います。