Dify(ディファイ)とは?10社の導入事例で学ぶノーコード生成AIアプリ活用法

最終更新日: 2025-05-30

Dify(ディファイ)はノーコードで生成AIアプリを高速開発できるオープンソースプラットフォームです。

セルフホスト対応でセキュリティを確保しながら、複数LLMを簡単に切り替えて利用できます。

この記事では、ビジネスシーンで即活用できるDifyの基本機能からワークフロー自動化まで、具体的な使い方を解説します。

また、弊社ではマッキンゼーやGAFA出身のAIエキスパートがAI導入に関する無料相談を承っております。
無料相談は先着20社様限定で「貴社のAI活用余地分析レポート」を無償でご提供するキャンペーンも実施中です。

ご興味をお持ちの方は、以下のリンクよりご連絡ください:
AI導入に関する無料相談はこちら
資料請求はこちら

仲 思成
監修者: 仲 思成

AI導入.comを提供する株式会社FirstShift 代表取締役。トロント大学コンピューターサイエンス学科卒業。株式会社ANIFTYを創業後、世界初のブロックチェーンサービスを開発し、東証プライム上場企業に売却。その後、マッキンゼー・アンド・カンパニーにコンサルタントとして入社。マッキンゼー日本オフィス初の生成AIプロジェクトに従事後、株式会社FirstShiftを創業。

AI導入の無料相談受付中。先着20社限定でAI活用余地分析レポートを無償でご提供するキャンペーンを実施中。今すく無料で申し込む

Difyとは?

Difyのサイト
出典:Dify公式サイト

Difyはノーコードで生成AIアプリを開発できるオープンソースプラットフォームです。プログラミング知識がなくても、高性能なAIチャットボットやワークフロー自動化ツールを構築できます。

LangGenius社が開発したDifyは、セルフホスト対応により機密データを安全に管理できる点が最大の特徴です。また、OpenAIのGPT-4やAnthropicのClaudeなど複数の主要LLMに対応し、目的に応じてモデルを柔軟に切り替えられます。

項目 内容
正式名称 Dify (Define + Modify / Do it for you)
特徴 ノーコードAIアプリ開発、複数LLM対応RAG機能搭載、セルフホスト可能
提供形態 クラウド版(SaaS)OSS版(セルフホスト)
主な活用領域 AIチャットボットワークフロー自動化AIエージェント開発

Difyのクラウド版とセルフホスト版の違い

Difyのクラウド版とセルフホスト版の違い

Difyはクラウド版セルフホスト版の2つの形態で提供されており、それぞれに特徴があります。

クラウド版の特徴

クラウド版Difyは、すぐに始められる手軽さが最大の魅力です。

  • 迅速な導入:アカウント登録だけですぐに利用開始できる
  • メンテナンスフリー:バックエンドインフラの管理が不要
  • 自動アップデート:常に最新機能を利用可能
  • 無料プラン:SANDBOXプランで無料から始められる

ただし、クラウド版ではデータがDifyのサーバーに保存されるため、極めて機密性の高い情報を扱う場合は注意が必要です。

セルフホスト版の特徴

セルフホスト版Difyは、データセキュリティとカスタマイズ性に優れています。

  • データの完全な管理:すべてのデータを自社インフラ内に保持
  • カスタマイズ可能:ソースコードを改変して機能追加や修正が可能
  • インターネット分離環境:完全にオフラインでの運用も可能
  • Apache 2.0ライセンス:商用利用が自由に可能

一方で、サーバー構築や保守の技術的知識が必要で、アップデートも手動で行う必要があります。

選択のポイント

考慮点 クラウド版が適する場合 セルフホスト版が適する場合
データセキュリティ 一般的な業務データ 極秘情報・個人情報
導入スピード 迅速な導入が必要 じっくり構築できる
技術リソース IT専門家が少ない 技術者が確保できる
コスト 初期コスト最小化 長期運用コスト最適化

企業の規模や取り扱うデータの性質、技術的リソースなどを考慮して、最適な形態を選択することが重要です。

セットアップ手順

Difyのセットアップ手順

Difyはクラウド版セルフホスト版の2つの形態で利用できます。それぞれのセットアップ方法を具体的に説明します。

クラウド版を使う流れ

クラウド版は最小限の設定で始められるため、Difyを素早く試したい場合に最適です。無料のSANDBOXプランから利用できます。

  1. 公式サイトでアカウント作成

    • Dify公式サイトにアクセス
    • GitHubやGoogleアカウントでOAuth認証
    • 登録後、管理画面に自動移動
  2. モデルプロバイダーの設定

    • 管理画面上部の「モデルプロバイダー」をクリック
    • OpenAIやAnthropic、Google PaLMなどのAPIキーを登録
    • 使用したいモデルを有効化

    モデルプロバイダーの設定

  3. アプリの作成と公開

    • 「最初から作成」ボタンをクリック
    • アプリの種類(チャット/ワークフロー)を選択
    • ドラッグ&ドロップでフローを設計
    • 「公開」ボタンでアプリを一般公開

    アプリの作成と公開

セルフホスト(コミュニティ版)の導入

セルフホスト版はDocker環境を使って自社サーバーやクラウドインフラ上で運用できます。機密データを外部に出したくない企業に最適です。

  1. Docker環境を用意

    • CPU:2コア以上
    • メモリ:4GB以上
    • ストレージ:10GB以上
    • Docker Composeがインストール済みであること
  2. 環境変数の設定

    • GitHubからソースコードをクローン
    • .env.example.envにコピー
    • ポート番号やデータベース設定を必要に応じて編集
  3. 初期セットアップとモデル登録

    • Dockerコンテナを起動
    • ブラウザからhttp://localhost/installにアクセス
    • 管理者情報を登録
    • モデルプロバイダーのAPIキーを設定
# Difyのソースコードの取得
git clone https://github.com/langgenius/dify.git
cd dify

# docker ディレクトリへの移動
cd docker

# 環境変数の設定
cp .env.example .env

# Docker の起動
docker compose up -d

セルフホスト版の最大のメリットは、データの完全な所有権を保持できることです。API通信を含めて全てが自社インフラ内で完結するため、機密性の高いデータを扱う場合も安心して利用できます。

主要機能の詳細解説

Difyの主要機能

Difyには複数のLLM対応、プロンプトオーケストレーション、RAG機能など、実用的な機能が多数搭載されています。それぞれの機能がどのようにビジネス価値を生み出すのかを解説します。

複数の主要LLMに対応

Difyの最大の強みは、単一のインターフェースから複数のLLMを切り替えて利用できる点です。

  • OpenAI GPT-4/3.5:汎用性が高く、多様なタスクに対応
  • Anthropic Claude:長文処理と倫理的回答に優れる
  • Google PaLM/Gemini:Googleの検索知識に強い
  • ローカルLLM:セルフホスト版ではローカルモデルも接続可能

この機能により、タスクごとに最適なモデルを選択でき、各モデルの長所を最大限に活かせます。また、APIキーの管理も一元化されるため、運用コストが削減できます。

プロンプトのオーケストレーション

Difyはドラッグ&ドロップで複雑なAIフローを構築できます。

  • ビジュアルフローエディタ:コードを書かずにAIの挙動を設計
  • 条件分岐:ユーザー入力や結果に応じて処理を分岐
  • 変数管理:会話履歴や計算結果を保持して再利用
  • ループ処理:繰り返し処理で複雑なタスクを自動化

これにより、例えば「顧客からの問い合わせ内容を分析→適切な部署を判断→回答テンプレートを選択」といった複雑なフローも視覚的に設計できます。

RAG機能(Retrieval-Augmented Generation)

RAG機能は企業の内部ドキュメントを活用したAI回答を実現します。

  • 多様な情報源:PDF、テキスト、Notion、Webサイトなどからデータ取り込み
  • 自動インデックス化:取り込んだ情報を自動的にベクトル化して検索可能に
  • コンテキスト追加:ユーザー質問に関連する情報をLLMに自動提供
  • 出典引用:回答の根拠となった情報源を明示

これにより、「自社製品マニュアルに基づく回答」や「社内規定に準拠したアドバイス」など、企業固有の知識を活用したAIサービスを構築できます。

DifyのRAG機能については以下の記事にて詳細に解説しています。
是非ご覧ください。

【実践ガイド】Difyで始めるRAG構築の仕方を徹底解説
【実践ガイド】Difyで始めるRAG構築の仕方を徹底解説

AIエージェントとワークフロー自動化

Difyのワークフロー機能は、ユーザー操作なしに複数のタスクを自動実行します。

  • 定時実行:スケジュールに従って自動的にタスクを実行
  • 外部API連携:HTTPリクエストを通じて他システムと連携
  • データ処理:受け取ったデータを加工して別システムへ転送
  • 通知機能:処理結果をメールやSlackで通知

例えば、「毎朝ニュースを要約→重要トピックを抽出→社内Slackに投稿」といったワークフローを自動化できます。

Difyで効率化できる業務

Difyで効率化できる業務

Difyは業界を問わず、様々な定型業務を効率化できます。ここでは多くの企業で共通して発生する代表的な業務とその効率化方法を紹介します。

顧客対応・問い合わせ対応の自動化

顧客からの問い合わせ対応は、どの業界でも発生する重要業務です。Difyを活用することで、以下のような効率化が実現できます:

  • FAQ自動回答:よくある質問に対して即座に適切な回答を提供
  • 問い合わせ分類:受信した問い合わせを自動的に適切な部署に振り分け
  • エスカレーション判定:複雑な問い合わせを人間の担当者に自動転送
  • 多言語対応:外国語での問い合わせを自動翻訳して対応

これにより、顧客満足度向上と担当者の負荷軽減を同時に実現できます。

文書作成・レポート作成の自動化

定期的な報告書やレポート作成は多くの企業で時間を要する業務です。Difyによる自動化により:

  • 定期レポートの自動生成:売上データや業績指標から自動的にレポートを作成
  • 議事録の自動作成:音声データから会議内容を要約・整理
  • 提案書・企画書の下書き作成:テンプレートに基づいた文書の自動生成
  • 多言語文書の翻訳:既存文書の他言語版を自動作成

これにより、作成時間の大幅短縮と品質の統一化が可能になります。

データ分析・市場調査の自動化

データ分析や市場調査は専門知識を要する業務ですが、Difyにより効率化できます:

  • 競合他社の情報収集:Web上の公開情報から競合分析レポートを自動生成
  • 顧客データの分析:購買履歴やアンケート結果から顧客インサイトを抽出
  • 市場トレンドの分析:ニュースやSNSデータから業界動向を把握
  • 売上予測の作成:過去データに基づいた将来予測の自動生成

これにより、意思決定に必要な情報を迅速に収集・分析できます。

営業活動・提案書作成の自動化

営業活動における資料作成や顧客対応もDifyで効率化できます:

  • 顧客別提案書の自動生成:顧客情報に基づいてカスタマイズされた提案書を作成
  • 見積書・契約書の作成支援:テンプレートに基づいた書類の自動生成
  • 営業メールの自動作成:顧客の状況に応じたフォローアップメールを生成
  • 商談記録の自動整理:営業活動の記録を構造化して管理

これにより、営業担当者は顧客との関係構築により多くの時間を割けるようになります。

人事・総務業務の自動化

人事・総務分野でも多くの定型業務をDifyで効率化できます:

  • 採用活動の支援:履歴書のスクリーニングや面接質問の自動生成
  • 従業員からの問い合わせ対応:労務関連の質問に対する自動回答
  • 研修資料の作成:教育コンテンツの自動生成・更新
  • 規程・マニュアルの検索:社内規程から必要な情報を瞬時に検索・提供

これにより、人事・総務担当者はより戦略的な業務に集中できるようになります。

Difyの企業導入事例

Difyの企業導入事例

Difyは様々な業界・企業で導入が進んでおり、業務効率化や売上向上などの成果を上げています。ここでは具体的な企業導入事例を5つ紹介します。

株式会社カカクコム:IT/インターネットサービス業界

「価格.com」や「食べログ」などを運営するカカクコム社では、社員が手軽に生成AIを業務利用できる共通基盤の整備を目的にDifyを導入しました。

主な活用内容は以下の通りです:

  • 社内チャットボットの開発:社内規程や経理FAQなどを検索できるボットを構築
  • Microsoft Teams連携:開発したボットをTeamsに統合し、日常業務で活用
  • 会議の議事録生成:ミーティング内容の自動要約と記録

導入効果として以下の成果が報告されています:

  • 年間約1.8万時間の業務削減を実現
  • Teams連携後2週間でボットのDAU(日間アクティブユーザー)が27%増加
  • 財務経理部の問い合わせ対応時間が15%短縮

カカクコム社の事例は、Difyを活用した社内情報アクセスの効率化と、既存コミュニケーションツールとの連携による浸透度向上を示す好例です。サポート企業にはBocek, inc(総合生成AI戦略コンサルティングファーム)とDCO株式会社が携わっています。

株式会社リコー:製造業(OA機器・デジタルサービス)業界

リコー社では、"市民開発"を促進し、社員自らが業務に合ったAIアプリを素早く作れる環境を全社展開することを目的にDifyを導入しました。

特筆すべき活用方法としては:

  • エンタープライズ契約の締結:LangGenius社とエンタープライズ契約を締結
  • 全社アカウント付与:デジタルサービス事業BUの社員へDifyアカウントを一斉付与
  • ノーコード開発の推進:エンジニアでない社員もAIワークフローやRAG検索ボットを構築

導入による期待効果は以下の通りです:

  • 新規ビジネス機会の発見リスク予見の迅速化
  • 経営判断支援の強化
  • "データ→意思決定"の時間を短縮することによる業務効率化

リコー社の事例は、大企業における全社的なAI活用の加速と、技術部門以外の社員によるAIアプリケーション開発の民主化を示しています。詳細情報は公式サイト(jp.ricoh.com)で確認できます。

株式会社サイバーエージェント:インターネット広告・メディア業界

インターネット広告や「ABEMA」「Ameba」などのメディア事業を展開するサイバーエージェント社では、部門横断の社内生成AI基盤としてDifyを活用し、大規模な業務自動化を実現しています。

主な活用内容は以下の通りです:

  • 自社インフラでのセルフホスト:GitHub ActionsとKubernetesを使ってOSS版Difyを運用
  • ノーコード開発の推進:140以上の業務アプリをノーコードで開発・展開
  • 部門横断での活用:複数の事業部門で共通基盤として利用

導入効果として以下の成果が報告されています:

  • 社員の約20%が利用という高い浸透率を実現
  • 月間3,000時間超の定型作業削減による大幅な業務効率化
  • エンジニアでない社員も含めた幅広いAI活用の民主化

サイバーエージェント社の事例は、大企業における大規模なAI活用と、技術部門以外の社員によるAIアプリケーション開発の民主化を示す代表例です。詳細はCyberAgent Developers BlogやX(旧Twitter)で確認できます。

これらの事例からわかるように、Difyは業種を問わず、業務効率化、コスト削減、売上向上など様々な形で企業に価値をもたらしています。技術的な知識がなくても、実務担当者が直接AIアプリケーションを開発・運用できる点が、多くの企業から高く評価されています。

ナイル株式会社:マーケティング/DX支援業界

ナイル社では、全社員がローコードでAIツールを開発し、顧客向けDX/マーケティング支援と自社業務効率を同時に高めることを目的にDifyを導入しました。

主な活用内容は以下の通りです:

  • Dify Teamプランの採用:組織全体でのAIアプリ開発環境を整備
  • 社内ツールの内製:情報収集ボットや問い合わせ対応ツールを自社で開発
  • 顧客向けサービスの提供:生成AIコンサルティングサービスとしての展開

導入効果としては:

  • 導入2か月で20社・230名が研修利用という急速な普及
  • エンジニア負荷の低減による開発リソースの最適化
  • "AIネイティブ"組織づくりの加速

ナイル社の事例は、社内業務改善だけでなく、Difyの知見を活かした新たな事業展開も可能にする点が特徴的です。詳細はナイル社公式サイト(nyle.co.jp)およびワークワンダース株式会社の情報を参照できます。

日本赤十字社 那須赤十字病院:医療・ヘルスケア業界

那須赤十字病院では、医師の事務負担が大きい「退院サマリー」作成の時間短縮を目的に、Difyを活用したシステムを導入しました。

特に注目すべき活用方法は以下の点です:

  • オンプレミス環境での構築:リコー製LLMとDifyを病院内のシステムに構築
  • 電子カルテとの連携:既存の医療情報システムと統合し、サマリー下書きを自動生成
  • 事務職員による内製:技術的専門知識がなくてもノーコードで開発・運用

導入効果としては:

  • 文書ドラフト生成による医師の負担軽減
  • 診療や家族説明など本来業務への注力時間の創出
  • 一部診療科での運用を開始し、順次院内全体へ展開予定

那須赤十字病院の事例は、医療現場における専門職の事務作業負担軽減と、セキュリティが重視される領域でのオンプレミス活用の好例です。詳細はリコー公式サイト(jp.ricoh.com)およびデジタルクロスの情報から確認できます。

令和トラベル株式会社(NEWT):旅行・観光テック業界

旅行予約プラットフォーム「NEWT」を運営する令和トラベル社では、コンテンツ制作の大幅な効率化を目的にDifyを導入し、旅行ガイド記事の量産パイプラインを構築しました。

主な活用内容は以下の通りです:

  • GitHub Actionsでのセルフホスト:自社インフラ上でDifyを運用
  • ワークフロー機能の活用:記事量産パイプラインを自動化
  • 外部ツール連携:NotionやZapierと連携してコンテンツ制作フローを統合

導入効果としては:

  • 旅行ガイド約400本を2か月で生成という大規模なコンテンツ制作を実現
  • 編集リードタイム70%短縮による制作効率の大幅向上
  • 社内ハンズオン資料の公開により、利活用の拡大を促進

令和トラベル社の事例は、コンテンツ制作業務におけるDifyの効果的な活用と、短期間での大量コンテンツ生成を示す好例です。詳細はDocswellで確認できます。

株式会社Hakuhodo DY ONE:広告・マーケティング業界

博報堂DYグループのHakuhodo DY ONE社では、マーケティング戦略立案の効率化を目的に、Difyを活用した「0次AI仮説」アプリを開発しました。

主な活用内容は以下の通りです:

  • 戦略分析の自動化:3C分析やSWOT分析を自動生成するアプリを開発
  • 社内DMP連携:「AudienceOne®」とRAG機能を連携
  • 専門組織の新設:AIを活用したコンサルティング組織を立ち上げ

導入効果としては:

  • 新規案件の調査・分析時間を半日から15分へ短縮という劇的な効率化
  • 専門コンサルティング組織の新設による新たな事業機会の創出
  • クライアント向けサービスの高度化と差別化

Hakuhodo DY ONE社の事例は、マーケティング業界における戦略立案プロセスの自動化と、新規事業創出を示す代表例です。

GovTech東京(東京都デジタルサービス局):行政・公共業界

東京都デジタルサービス局のGovTech東京では、職員の業務効率化と区市町村への横展開を目的に、Difyを活用した行政サービス向上の取り組みを実施しています。

主な活用内容は以下の通りです:

  • Azure上でのコミュニティ版運用:Dify Community版をクラウド環境で構築
  • 職員ハッカソンの実施:業務プロトタイプ作成のためのハッカソンを開催
  • 区市町村向けツール開発:「サービスキャンバス指摘ボット」など実用的なツールを実装

導入効果としては:

  • 職員アイデア18件を2週間でPoC化という迅速な実装
  • 区役所窓口業務への横展開を検討中
  • 行政DXの加速と職員のITリテラシー向上

GovTech東京の事例は、行政機関における業務効率化とデジタル変革の推進を示す先進的な取り組みです。詳細はZennで確認できます。

三菱UFJインフォメーションテクノロジー:金融IT業界

三菱UFJフィナンシャル・グループのIT子会社である三菱UFJインフォメーションテクノロジー社では、社内のAI活用促進と人材育成を目的にDifyを導入しました。

主な活用内容は以下の通りです:

  • 社内Docker Composeでの検証:コミュニティ版を社内環境で検証運用
  • 教育・研修への活用:Difyワークフローを教材として社内勉強会を実施
  • LLM実践ラボの運営:実践的なAI活用スキルの習得支援

導入効果としては:

  • PoCテンプレートの共有により、部門横断での活用を促進
  • 30以上の小規模アプリを試作し、業務適用の可能性を検証
  • 金融業界における安全かつ実践的なAI活用の知見蓄積

三菱UFJインフォメーションテクノロジー社の事例は、金融業界における慎重かつ段階的なAI導入アプローチを示しています。詳細はZennで確認できます。

東京大学 松尾・岩澤研究室:学術・教育業界

東京大学の松尾・岩澤研究室では、AI教育の実践と安全な学習環境の提供を目的に、ローカル環境でのDify活用を進めています。

主な活用内容は以下の通りです:

  • ローカルRAGシステムの構築:研究LLM「Tanuki-8B」×Ollama×Difyでローカル環境を構築
  • 授業・ゼミでの活用:学生が安全な閉域環境でAIアプリを実装
  • 教育コンテンツの開発:実践的なワークショップ教材を作成・公開

導入効果としては:

  • 学部生向けワークショップで1日完結の教材として採用
  • 講義資料の公開により、教育機関での活用拡大に貢献
  • 安全性とプライバシーを確保したAI教育環境の実現

東京大学松尾・岩澤研究室の事例は、教育機関における安全かつ実践的なAI教育の先進事例です。詳細はZennで確認できます。

料金プランとライセンス

Difyの料金プランとライセンス

Difyにはクラウド版セルフホスト版があり、それぞれ異なる料金体系とライセンスが適用されます。利用規模や目的に応じて最適なプランを選択できます。

クラウド版の料金プラン

クラウド版Difyは4つの料金プランを提供しています。

プラン名 月額料金 ユーザー数 メッセージ上限 ストレージ 主な特徴
SANDBOX $0 1人 200回 5MB 無料で機能検証可能
PROFESSIONAL $59 3人 5,000回 200MB 小規模チーム向け
TEAM $159 無制限 10,000回 1GB 部署規模での本格利用
ENTERPRISE 要問合せ 無制限 無制限 無制限 カスタマイズ可能

SANDBOXプランは無料で利用でき、主要機能を試せますが、メッセージ数やストレージに制限があります。本格的な業務利用にはPROFESSIONAL以上のプランが推奨されます。

注意点として、これらの料金はDifyプラットフォーム利用料のみであり、接続するLLM(OpenAIやAnthropicなど)のAPI利用料は別途発生します。

セルフホスト版のライセンス

セルフホスト版DifyはApache 2.0ライセンスに基づいて提供されています。このライセンスにより:

  • 商用利用が可能:ビジネスで自由に利用できる
  • 改変が自由:機能追加や修正が可能
  • 再配布が可能:カスタマイズ版を社内展開できる
  • 特許権の付与:特許関連の法的保護がある

セルフホスト版を選ぶ主なメリットは、データの完全な管理権を持てることと、インターネット接続なしでも運用できる点です。ただし、インフラ構築やメンテナンスは自社で行う必要があります。

セルフホスト版の料金

Difyセルフホスト版の料金

セルフホスト版Difyは完全無料で利用できます。

項目 料金 制限
ソフトウェア利用料 $0 なし
ユーザー数 $0 無制限
メッセージ数 $0 無制限
ストレージ $0 インフラの制約のみ
機能制限 なし 全機能が利用可能

セルフホスト版では、Difyプラットフォーム自体に利用料金は一切かかりません。Apache 2.0ライセンスにより、商用利用でも費用負担なしで運用できます。

実際にかかるコスト

セルフホスト版で発生するコストは以下の通りです:

  • インフラコスト:サーバー、ストレージ、ネットワークの運用費用
  • LLM API利用料:OpenAIやAnthropicなど接続するLLMの従量課金
  • 運用・保守コスト:システム管理やアップデート作業の人件費

これらのコストを考慮しても、大規模利用時にはクラウド版よりも大幅にコストを削減できる可能性があります。特に機密データを扱う企業では、セキュリティ要件を満たしながらコスト効率的な運用が実現できます。

実践例

Excelと連携した企業情報リサーチワークフロー
ここからは、具体的なDify活用例として、Excelと連携した企業情報のリサーチワークフローを作成する手順を紹介します。

Excelと連携した企業情報リサーチワークフロー

このワークフローでは、Excelに入力した企業名を基に、Difyが自動的に企業情報をリサーチし、結果をExcelに書き込みます。

  1. Excelテーブルの作成

    • Excelを開き、以下のような表を作成
    • 企業名、業種、創業年、従業員数、主要製品、特徴の列を設定

    Excelテーブルの作成

  2. Google Apps Scriptの設定

    • 「拡張機能」から「Apps Scripts」を選択
    • 表示されたエディタに連携用のコードを貼り付け

    Google Apps Scriptの設定

  3. 連携用コードの実装

    • 以下のコードをGoogle Apps Scriptに貼り付け
    • APIキーなどは自身の環境に合わせて設定
/**
 * ==============================
 * 1. 外部からのPOSTリクエストを受け取るメイン部分
 * ==============================
 */
function doPost(e) {
  try {
    // --- 1回目パース: 全体 (function, data などを含む) ---
    var raw = e.postData.contents;
    var onceParsed = JSON.parse(raw);

    // onceParsed が文字列なら2回目のパースを試みる
    if (typeof onceParsed === "string") {
      onceParsed = JSON.parse(onceParsed);
    }

    // function名, data(文字列想定) を取得
    var functionName = onceParsed.function;
    var dataStr = onceParsed.data;

    // dataStr が JSON文字列の可能性もあるため、パースを試みる
    try {
      dataStr = JSON.parse(dataStr);
    } catch(e2) {
      // JSONとして解釈できない場合はそのまま使う
    }

    // ---- 関数を分岐して呼び出す ----
    var result = "";
    if (functionName === "writeDataToSheet1") {
      result = writeDataToSheet1(dataStr);
    } else if (functionName === "writeDataToSheet2") {
      result = writeDataToSheet2(dataStr);
    } else if (functionName === "writeDataToSheet3") {
      result = writeDataToSheet3(dataStr);
    } else if (functionName === "writeDataToSheet4") {
      result = writeDataToSheet4(dataStr);
    } else if (functionName === "writeDataToSheet5") {
      result = writeDataToSheet5(dataStr);
    } else if (functionName === "writeDataToSheet6") {
      result = writeDataToSheet6(dataStr);
    } else {
      throw new Error("No valid functionName specified.");
    }

    // 成功時のレスポンス
    return ContentService
      .createTextOutput(
        JSON.stringify({ status: "success", result: result })
      )
      .setMimeType(ContentService.MimeType.JSON);

  } catch (error) {
    // エラー時のレスポンス
    return ContentService
      .createTextOutput(
        JSON.stringify({ status: "error", message: error.message })
      )
      .setMimeType(ContentService.MimeType.JSON);
  }
}


/**
 * ==============================
 * 2. 文字列をスプレッドシートに書き込む関数 (6つ)
 * ==============================
 * それぞれB3, B4, B5, B6, B7, B8 に書き込む
 */
function writeDataToSheet1(dataStr) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("シート1"); // 実際のシート名に合わせる
  sheet.getRange("B3").setValue(dataStr);
  return "writeDataToSheet1 complete. (B3)";
}

function writeDataToSheet2(dataStr) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("シート1");
  sheet.getRange("B4").setValue(dataStr);
  return "writeDataToSheet2 complete. (B4)";
}

function writeDataToSheet3(dataStr) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("シート1");
  sheet.getRange("B5").setValue(dataStr);
  return "writeDataToSheet3 complete. (B5)";
}

function writeDataToSheet4(dataStr) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("シート1");
  sheet.getRange("B6").setValue(dataStr);
  return "writeDataToSheet4 complete. (B6)";
}

function writeDataToSheet5(dataStr) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("シート1");
  sheet.getRange("B7").setValue(dataStr);
  return "writeDataToSheet5 complete. (B7)";
}

function writeDataToSheet6(dataStr) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("シート1");
  sheet.getRange("B8").setValue(dataStr);
  return "writeDataToSheet6 complete. (B8)";
}


/**
 * ==============================
 * 3. スプレッドシートのボタン押下で指定セルを読み込み→API呼び出し関数
 * ==============================
 */

/**
 * ボタンから呼び出すメイン関数
 * 今回は F3 の値を取得 → API呼び出しの引数として渡す
 */
function runWorkflowFromSheet() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var company = sheet.getRange("F3").getValue(); // 引数として渡したい値をF3から取得

  // API呼び出し
  var result = callWorkflowApi(company);
  Logger.log(result);  // 必要があればシート書き込みなどの処理もOK
}


/**
 * ワークフローアプリAPIを叩くサンプル関数
 * 今回は引数は1つだけ (company)
 */
function callWorkflowApi(company) {
  // エンドポイントURL (実際のURLを削除・マスク)
  var url = "https://example.com/v1/workflows/run"; // ここは実際のものに置き換えてください

  // APIキー (実際の値を削除・マスク)
  var API_KEY = "YOUR_API_KEY";

  // リクエストボディ
  var payload = {
    "inputs": {
      "company": company
    },
    "response_mode": "blocking",   // "streaming" でも可
    "user": "spreadsheet_user"
  };

  // オプション設定
  var options = {
    "method": "post",
    "headers": {
      "Authorization": "Bearer " + API_KEY,
      "Content-Type": "application/json"
    },
    "payload": JSON.stringify(payload),
    "muteHttpExceptions": true
  };

  // リクエスト送信
  var response = UrlFetchApp.fetch(url, options);
  var responseText = response.getContentText();

  // JSONパースして返す
  try {
    return JSON.parse(responseText);
  } catch (e) {
    return {
      "status": "error",
      "message": "Invalid JSON response",
      "rawResponse": responseText
    };
  }
}
  1. Difyでワークフローを作成

    • Difyにログインし、「ワークフロー」を選択
    • 以下のような企業情報リサーチワークフローを作成
    • こちらからDSLファイルをダウンロードしてインポート可能

    DSLファイルのインポート

  2. Google Apps Scriptのデプロイ

    • 「デプロイ」→「新しいデプロイ」を選択
    • 「ウェブアプリ」としてデプロイ
    • アクセス権を適切に設定

    Google Apps Scriptのデプロイ

  3. Difyワークフローの設定

    • 発行されたURLをDifyの「HTTPリクエスト」ノードに設定
    • リクエストメソッドとヘッダー情報を適切に設定

    Difyワークフローの設定

  4. ワークフローの実行

    • ワークフローを実行すると、企業情報が自動的にリサーチされExcelに書き込まれる
    • 実行結果は以下のように表示される

    ワークフローの実行

このように、DifyとExcelを連携させることで、企業情報の自動リサーチといった業務を効率化できます。他にも、メール自動応答、データ分析レポート作成など様々な業務プロセスを自動化できます。

DifyのAPI経由の使い方は以下の記事で詳細に解説しています。ぜひご覧ください。

DifyのAPIの使い方を徹底解説【実装例付き】
DifyのAPIの使い方を徹底解説【実装例付き】

よくあるエラーと対処法

DifyのトラブルシューティングとFAQ

Dify利用中によく発生する技術的な問題と具体的な解決策をまとめました。初期設定から運用まで、スムーズに進めるための参考にしてください。

1. APIキー関連のエラー

  • 症状:429エラー(Rate limit exceeded)
  • 原因:OpenAIなどのAPIの無料枠使用上限に達した
  • 解決策:有料プランへのアップグレードか、別のAPIキーを使用する

2. Docker起動の問題

  • 症状:Dockerコンテナが起動しない

  • 原因:メモリ不足、ポート競合、.env設定ミス

  • 解決策

    • メモリ割り当てを増やす(最低4GB推奨)
    • .envファイルのポート設定を変更
    • Dockerログを確認して具体的なエラーを特定

3. RAG機能の精度問題

  • 症状:ドキュメントを登録しても関連情報を引用しない

  • 原因:ドキュメントのインデックス化不良、チャンクサイズ設定が不適切

  • 解決策

    • ドキュメントを再インデックス化
    • チャンクサイズを適切に調整(デフォルト1000文字が推奨)
    • 検索閾値を下げてみる

よくある質問と回答

Difyのよくある質問と回答

Difyの導入や運用に関してユーザーからよく寄せられる質問と回答をまとめました。機能面や技術的な疑問の解決にお役立てください。

Difyは日本語に対応していますか?

はい、インターフェースと処理の両方で日本語に対応しています。言語設定から日本語を選択できます。

無料プランでもRAG機能は使えますか?

クラウド版のSANDBOXプランでもRAG機能は利用できますが、ストレージ制限(5MB)があります。

セルフホスト版でローカルLLMを使用できますか?

可能です。API形式で提供されるローカルLLM(llama.cpp APIやOllama)と接続できます。

Difyで作成したアプリをWebサイトに埋め込めますか?

はい、iframeやJavaScriptスニペットを使って、作成したチャットボットをWebサイトに埋め込めます。

まとめと今後の展望

Difyはノーコードで高機能なAIアプリケーションを構築できるプラットフォームとして、今後のビジネスAI活用において重要な役割を果たすでしょう。最後に、その主要な特徴と今後の展望をまとめます。

Difyの主要なメリット

  • ノーコード開発:プログラミング知識なしでAIアプリを作成可能
  • 複数LLM対応:目的に応じて最適なAIモデルを選択できる柔軟性
  • セルフホスト対応:データセキュリティを確保しつつAI活用が可能
  • RAG機能搭載:企業固有のナレッジベースを活用したAI応答
  • 外部連携:既存システムとの統合で業務フローを効率化

今後の展望

Difyはオープンソースコミュニティによって急速に発展しており、今後も以下のような進化が期待されます。

  • 多様なプラグイン:サードパーティ製のプラグインによる機能拡張
  • ローカルLLM対応強化:オープンソースLLMとの連携拡大
  • マルチモーダル対応:画像認識や音声処理など複合的な機能の実装
  • 開発者コミュニティの成長:事例やカスタム機能の共有増加

Difyのようなノーコードプラットフォームの登場により、AIアプリケーション開発の民主化が進み、より多くの企業がAI技術を業務に取り入れることが可能になっています。自社の課題解決にDifyを活用し、AIによるビジネス変革を加速させてみてはいかがでしょうか。

AI導入に関するお悩みごとをお気軽にご相談ください