giftee Tech Blog

ギフティの開発を支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信しています。

社内に Dify を導入して 1 ヶ月の「リアル」なところ

eyecatch

こんにちは、ギフティでエンジニアをしている zackerms です。 先月、社内で Dify を試験導入してみたので、導入検討から運用開始までのありのままの姿を語ろうと思います。

  • 会社に Dify を導入するときに、どんなこと考えないといけない?
  • Dify ってぶっちゃけどう? ChatGPT で良くない?
  • 導入してからが本番です!

AI を活用して業務をもっと良い感じにしていきたい!

ギフティでは現在、AIを活用した事業価値の創出に取り組むチームがあります。

事例の一つとして「ギフトの提案をする AI」があります。  私は社内の情報共有会でこちらを知り、エンジニアを募集されていたので、手を挙げて参加しました。

このプロジェクトに参加してみて分かったのは、「AI を活用していく」ことを考えるときに、単に「AI に仕事を任せる」のではなく、「業務プロセスの中に AI をどう組み込むか」が重要だということです。

その手段の一つとして AI エージェントが挙げられます。

例えば、ギフト提案 AI では、実際に顧客にギフトの提案を行なっている担当者へのヒアリングを通じて業務の流れを理解し、それを AI が実行できる形に落とし込んでいきました。 プロの仕事をエージェントのタスクとして落とし込むことによって、AI を事業の価値貢献に活用できるのだと思います。

AI エージェントの活用までの課題

業務で AI エージェントを活用していくには 2 つの課題がありました。

1 つ目は、エージェントを作るハードルが高いことです。 社内には、プロダクト化まではしなくてもいいけれど AI で効率化していきたい業務が数多くあります。 それらをサッと AI エージェントで解決したいのですが、業務の担当者にとってエージェントを作るまでのハードルが高く、なかなか実現まで辿り着けていませんでした。

2 つ目は、AI を活用して課題解決を行っている人はいるが、そのノウハウが共有されていないことです。 NotebookLM など特定のプロジェクトで秘伝のタレのように使われているものもありますが、それを社内の資産として横展開することができていない状況です。 また、ギフト提案 AI のコードを見たときに、参照するデータを変更すると別の用途に応用できそうだなと感じました。 極端な話ですが、参照するデータをギフトから法律に切り替えれば法務相談エージェントになる、といった具合です。

そこで、エンジニアのサポートがなくてもエージェントを実装でき、それを社内の資産にしていくための手段として Dify を導入してみることにしました。

Dify とは?

Dify は、ノーコードで AI を活用したアプリケーションを作れるプラットフォームです。 (余談ですが、正しい読み方は「ディフィ」です。 私はずっと「ディファイ」と呼んでいました)

コードを書くことなく、画面上でブロックを繋ぎ合わせることで、AI に質問に答えさせたり、複数の処理を自動で実行させるワークフローを構築することができます。 そのため、コーディング経験のない非エンジニアでも AI を活用した仕組みを作ることができます。

また、作成したワークフローや、そこから参照できるドキュメント(ナレッジ)はワークスペース内で共有できるため、社内でノウハウが共有されやすいという特徴もあります。

dify_workflow

Dify の強みってなんだろう?

Dify 良さそう! となったものの、「いや、これ ChatGPT で良くないか?」という疑問が残りました。

ギフティでは、全社員が Gemini を利用でき、申請すれば ChatGPT や Claude も利用することができます。 そうなると、こうしたツールとの差別化に悩むわけです。

結論としては、「これ、いつもやっている作業だよね」というタスクであれば Dify の力が発揮されると思います。 例えば、アンケートの集計作業を例に考えてみます。

ChatGPT などのチャット型 AI の場合

  1. アンケート結果を分析したいということを伝える
  2. アンケート結果のスプレッドシートを投げる
  3. データの抽出(20代女性の回答、ポジティブ・ネガティブな意見を分けて...)
  4. データ分析
  5. 分析した結果を考察

Dify の場合

  1. アンケート結果のスプレッドシートを投げる
  2. データ抽出 ~ 考察 までが自動的に実行される

Dify では、手順をワークフローとしてまとめておくことで、「アンケート結果のスプレッドシートを投げる」ことさえすれば、一番欲しい結果の部分だけを得ることができます。

Dify と ChatGPT 等のチャット型の AI ツールの本質的な違いは、「業務フローを事前に定義しているか」だと思います。 そのため、流れさえ示せば、Dify でやっていることと同じことが ChatGPT でできます。 しかし、毎回プロンプトを投げてやり取りするのではなく、最初のインプットだけ与えれば良いというのが Dify の強みです。

また、AI が一度に行うタスクの粒度を小さくすることで、各工程のアウトプットの品質や再現性を高められるというメリットがあります。 Dify では、その一つ一つの小さいタスクがブロックに対応しており、それらをつなぎ合わせて、最終的なアウトプットを作ります。

Dify を導入してみよう

Dify にはマネージドサービス版とセルフホスティング版があります。 今回はお試しということでセルフホスティング版を利用することにしたのですが、そこで対応したことをまとめてみます。

インフラの構築

Google Cloud 上に Dify をホスティングするための Terraform コードを DeNA さんが公開してくれていたので、こちらを利用させていただきました(リポジトリ)。 この構成では、RDB や Redis はプライベートサブネット内に配置されており、データの保存先は保護されています。一方で、Cloud Run は外部公開されている状態だったため、追加のセキュリティ対策が必要でした。

dify_infra

引用: DeNA/dify-google-cloud-terraform

IAP で社員だけがアクセスできるようにする

「社員だけがアクセスできるようにしたいなぁ」と調べていたところ、Identity-Aware Proxy(IAP) というドンピシャな機能を見つけました。 IAP を利用すると、Webサーバー(Cloud Run) アクセス時に認証が求められ、認可されたユーザーだけがアクセスできます。 Cloud Run では以下のように iap_enabled = true と設定するだけで有効にすることができ、別途アクセスできるユーザーを制限することで社員だけにアクセスを許可することができます。

resource "google_cloud_run_v2_service" "dify_service" {
  provider = google-beta
  name     = "dify-service"
  location = var.region
  ingress  = var.cloud_run_ingress
  invoker_iam_disabled = true
  launch_stage = "BETA"
  iap_enabled  = true
  ...

Vertex AI を使う

Dify では ChatGPT などを API キーで呼び出すことも可能ですが、Google Cloud 内で通信を完結させるため Vertex AI を利用しています。入力内容はモデルのトレーニングに使用されず、Gemini の最新モデルも利用できるため、機能面で不足を感じることはありませんでした。

導入時には、こちらの記事を参考にさせていただきました。
qiita.com

導入よりも社内に浸透させるのが大変!

セットアップもできた。 セキュリティも大丈夫でしょう。
じゃあ、実際に使ってみよう、となったところで手が止まってしまいました。

テンプレートはあるけれど...

Dify には調査、分析、文章添削、要約など、数多くのワークフローテンプレートが用意されています。

しかし、これを見たときの正直な感想は「う〜ん、なんかすごそう(何も分かっていない)」というものでした。

他の方も同様なのか、アカウント作成まではされても、実際に使われるところまで行く人はほとんどいませんでした。

振り返ってみると、テンプレートが汎用的で、自分の業務に活かせるイメージが湧かなかったのが原因だったのではないかと思います。 導入したものの、実際にどう活用すべきか悩む状態が続きました。

dify_template

勉強会を開いてみた

活用シーンのアイデアを出し合えたら良いなと思い、社内のエンジニア向けに Dify の勉強会を開催してみました。 ありがたいことに、20名の方が参加してくださいました。

勉強会の導入時にお見せするデモとして、Zenn のトップエントリーにランクインしている記事を並列で一気に要約するワークフローを作りました。 参加してくださった方に「おっ、これは便利じゃん」と思ってもらいたかったのですが、作り上げるまでの工程が長すぎて、正直なところこれが正解だったかはよく分かっていません......

それでも、デモを通じて「便利そう」という反応を得られたのは良かったです。

想定外の効果として、教える立場になる必要に迫られたことで、短期間で Dify にかなり詳しくなれました。 実際に触りながらワークフローを作る中で、「こういう使い方ができそう」というイメージも湧いてきました。 どんなツールにも言えそうなことですが、とりあえず触ってみるのは初めて使うツールを理解するのに、有効な手段になりそうです。

成功事例を作っていくのが良さそう

前のセクションで触れたように、プロの仕事をエージェントのタスクとして落とし込むことで、やっと、エージェントを事業の価値貢献に活用することができると考えています。

しかし、テンプレートを見ただけだと、業務に落とし込むハードルがかなり高いと感じました。

そのため、実際に業務で使えるワークフローを作って活用例を示していく必要があると考えています。 「こういう風に使えるんだ」というイメージを共有できれば、「自分のこの業務にも使えるかも?」と他の社員も使い始めやすくなるはずです(期待)。

各社員が、そうして基礎的なエージェントを作れるようになることによって、最終的に価値貢献できるエージェントが作られることに繋がっていくのだと思います。

これからも、どんどんやっていきます

まずは Dify を使ってもらえる状態を作るために力を注いでいきます。 導入しただけだと使われないというのがオチだと思うので、最初のうちは勉強会を開いたり、積極的に宣伝していこうと思います。

また、AI が社内のデータをより活用できるような環境の整備にも貢献していきたいです。 議事録や営業資料を参照できるようにすることで、ギフティの業務文脈を理解した「ギフティ の AI」を育てていきたいです。

ギフティの技術組織としてのAI推進については、大曽根さんが書かれた「技術組織が主導するAIを活用した事業価値創出の現在地」の記事もぜひ御覧ください。

まだまだ手探りなところが多いですが、そういうフェーズだからこそ面白いとも感じています。 うまくいったことも、モヤモヤしていることも含めて、この記事の内容が、これから導入を検討する方の参考になれば幸いです。