🪑

Difyの活用について

2024/06/28に公開

Difyを導入しました

弊社では主にデータ分析やプログラミングの効率化などでLLMを活用しています。
GPT-4が出て4ヶ月後には誰でも利用可能な形でチャット機能をリリースするなど環境整備を行ってきました。

当時はフロントエンドとして以下のOSSを使いLLMはAzure OpenAI Serviceとつなぎ、RAGは自前のサーバーで実現していました。
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web

しかしながら、LLMの進歩も著しく最先端モデルや各種周辺サービスの発展速度に対して、画像チャット機能の導入やClaude3やGeminiの導入などに対して、速度感をもってスタッフに機能を提供することが難しい状況でもありました。

そういった経緯があり、今月Difyをセルフデプロイ版でクラウド上で稼働させて全社向けチャットツール環境を刷新しましたので、どのような形になったのかご紹介いたします。

導入に際しての検討

アカウント管理

Difyはまだまだ開発途上であり、アカウント種別や運用用の設定などが豊富に実装されているわけではありません。
現状だと、他人が作った重要なモデルを勝手に設定変更・削除できたりしてしまうので、一定のリテラシーが求められる環境だと思います。そのため弊社では全従業員にDifyのアカウントを用意する方法はとらず、「運用ルールの研修を受けた方のみ」にDifyの個人アカウントを発行する。というルールとしました。

一方で、Difyによって作成したチャットボットやワークフローをまとめたポータルサイトを全従業員に公開することで、ニーズに応じて以下の2パターンの利用環境を提供する形としました。

  • Difyを使ってGUIでカスタムチャットボットを作りたい方は、研修を受けてDifyアカウントを利用
  • 自分でカスタムは考えておらず提供されたチャットボットを使えれば十分という方は、ポータルサイトを通じてチャット画面にアクセスして利用

RAG

RAGについてはDifyには標準機能として搭載されていますが、弊社では専用のエンコーダー利用やチャンク分割を行ったRAGシステムがありそちらでハイブリッド検索も行えるため、現在はRAGについてはRerankふくめ従来の自前のシステムとつなぎこむ形としています。

構成

上記のような検討を経て、以下のような構成となりました。

変更前

変更後

※ Railsは各種ナレッジをチャンク化してVectorDBに突っ込むためのツールとして利用

利用イメージ

ポータル

Next製ポータルについては以下のようにDify製のチャットボットのリンク集のような形となっています。

HTMLプレビュー

おまけの機能として、HTML生成用のチャットボットと、HTMLプレビュー用の機能も用意しています。

最近はClaude3.5 SonnetのArtifacts機能のお陰でゲームやウェブサイトを開発したポストがSNSなどで話題になっていますが、GPT-4oやCluade3 Opusでもかなりのものを作れます。

Dify製のチャットボットでHTML製の簡単なゲームをつくったり、各種チャートを描画したり、スライドを作ったりできます。

利用例

日本の各都道府県の人口データのcsvを渡して、依頼するとHTMLが生成されます

生成されたHTMLを簡単にプレビューできるようにしています

その他

Dify製チャットボットの画面やDifyの管理画面は、特別なことはしていないDifyの標準的な形なので割愛させていただきます。

Difyの良かった点

モデルの導入が楽

GPT-4o、Claude3、Gemini Proといった代表的な最先端モデルを簡単に導入できました。
これらはそれぞれ特徴が異なるので、利用側で使い分けられるようにできたのは良かったと思います。
Difyのおかげでチャットボットのロジックを簡単に組めるようになり、素早く機能を提供できるようになったと思います。
本記事執筆時点のDify最新版ではBedrock版Claude3.5 Sonnetはまだアクセスできないのですが、次のバージョンでは入る予定なので入れば即切替可能です。

エンジニア以外でもチャットボットをカスタムできる

Difyの強力なGUI機能(ノードエディタでツールを繋いで設定する機能)によって、エンジニア以外の方でも簡単にチャットボットをカスタムできるような環境ができたと思っています。

実際に使ってもらうには他にも様々な取り組みが必要になるとは思いますが、少なくともエンジニアがボトルネックにならずツールが発展できるプラットフォームとしてとても強力な仕組みになったと感じています。

使いやすい、ハマらない

導入に際して大きくハマった点はなかったと思います。
エラーも少なく日本語もバッチリでとても使いやすいと思います。

最後に

Difyには、OpenAPIのスキーマを登録するだけで自前APIと連携できる機能などAIを使いこなすための強力な機能がたくさん用意されているので、今後の発展も楽しみにしています。
どんどん流行るといいですね🎉

先日のDify Meetup Tokyo、参加したかったですが、弊社は関西なので見送りました😂
関西方面で情報交換できる場には顔を出すかもしれないので、その際はよろしくお願いします🙏

Happy Elements

Discussion