AQ Tech Blog

Difyでノーコードなチャットフローを設計してみた

作成者: hinata.takahashi|2025年11月05日

はじめに

近年、「ChatGPT」をはじめとする生成AIの活用は、ビジネスや開発現場で急速に一般化しつつあり、AI技術自体も日々進化し続けています。
一方で、AIアプリ開発における技術選定やベストプラクティス、コスト見積もりといった要素は、まだ業界として確立途上にあり、判断に迷う場面も少なくありません。
そんな中で今注目を集めているのが、DifyのようなAIアプリ開発を支援するプラットフォームです。 Dify(ディファイ)とは、誰でも気軽にAIアプリを作れる便利なツールです。

本記事では、AIアプリ開発プラットフォーム「Dify」を活用して構築したAIエージェントアプリを題材に、主に以下の観点からDifyやAIの活用価値を考察します。

  • 導入コスト・学習コスト
  • 拡張性・カスタマイズ性
  • 今後の可能性

また、本記事では導入方法から基本的なアプリ作成の流れまでをひと通りご紹介していますので、 読み進めていただければ、Difyを使ったアプリ作成のイメージもつかんでいただけると思います。
AIアプリ開発やDifyの導入を検討されている方、AIエージェントの活用に関心のある方にとって、少しでも参考になれば幸いです。

Difyとは?

以下は、Dify 公式ドキュメント | Difyへようこそ より引用したものです。

Dify はオープンソースのAIアプリ開発プラットフォームです。
Backend as ServiceとLLMOpsの理念を融合し、開発者が迅速にAIアプリケーションを構築できるようにします。
同時に、プログラミングが得意でない方でも、自分のアイデアをすぐにAIアプリにできる直感的なインターフェースを提供しています。

例えば、音声をテキストに変換して議事録を自動生成するツールや、RAG(Retrieval-Augmented Generation)という手法を活用した社内情報検索ツールなども、簡単に構築することが可能です。

また、画面をポチポチ操作するだけでAIアプリを作成できる直感的なUIが用意されているため、プログラミングが苦手な方でも、自分のアイデアを比較的簡単に形にすることができます。
一方で、エンジニアにとっても、アプリのバックエンドやAIモデルの管理を効率化するプラグインやツールが揃っており、本格的なAIアプリをスピーディに作成することもできます。

Difyの導入方法

Difyの導入方法については、大きく分けて以下の2種類です。

  • クラウドサービス
  • セルフホストサービス

それぞれの特徴と導入のポイントを説明します。

クラウドサービス

Difyの公式が提供しているクラウドサービスを使う方法です。
アカウントを登録するだけで、すぐにアプリ開発を始められるのが大きなメリットです。
特徴:

  • 環境構築不要ですぐに利用開始
  • モデル連携(OpenAI、Azure、Claudeなど)も簡単に設定可能
  • マルチテナント構成(複数アプリやチームでの利用)にも対応
  • セキュリティやインフラの保守は不要(Dify側が管理)

こんな方におすすめ:

  • まずは手軽にAIアプリを試してみたい
  • 小規模なPoCやプロトタイプを作りたい

セルフホストサービス

自社サーバやクラウド上にDifyを構築・運用する方法です。
公式が提供しているDocker Compose構成を使えば、比較的簡単に環境構築を行うことができます。
特徴:

  • 社内データを扱うアプリ(RAG等)を安全に運用可能
  • OSSならではの自由度とカスタマイズ性
  • 利用データの完全なコントロールが可能(情報漏えいの懸念を軽減)

こんな方におすすめ:

  • 機密性の高いデータを取り扱う
  • ビジネスシステムに組み込みたい
  • 独自機能やUIを開発・拡張したい

👉 価格情報の詳細については、 Dify 公式サイト | 価格設定 をチェック

導入方式の比較

観点 クラウドサービス セルフホストサービス
導入のしやすさ ◎ アカウント登録後すぐに利用可能 △ Docker構成やインフラ構築が必要
価格 △ 無料枠あり、商用利用や高負荷時は有料 ◎ OSSとして無料で利用可能(※インフラ費別途)
拡張性 △ UIや機能追加には制約あり ◎ ソース改変・プラグイン追加が自由
セキュリティ △ データはクラウド上で処理される ◎ 自社環境で完結できるため制御しやすい
利用制限 △ プランに応じた制限あり(API数など) ◎ 基本的に制限なし(構成次第)

まとめ

導入の手軽さを重視するなら、まずはクラウドサービスから試してみるのがおすすめです。
アカウントを作ればすぐに使い始められるので、「とりあえずDifyを触ってみたい」「PoC(検証)してみたい」という方に向いています。
一方で、「社内のデータを活用したい」「自分好みに細かくカスタマイズしたい」場合は、セルフホストがおすすめです。
特に、業務や商用利用を見据えているケースでは、柔軟性やセキュリティの面でもセルフホストのほうが安心です。
また、コストの観点でも、たとえばOllamaのような無料で使えるローカルLLMと組み合わせることで、セルフホスト環境なら低コストでAIアプリを構築することも可能です。
※商用利用の場合はライセンスを確認してください

環境構築手順

セルフホストサービスを利用したローカルの環境構築手順について説明します。 今回は、 Amazon Bedrock でLLMを利用した環境構築手順を解説します。 ※本記事の手順は、Windows環境および Dify バージョン 1.4.1 を前提としています。

前提条件

Docker Desktop、Gitがインストール済みであること。

1. リポジトリをクローン

Difyのソースコードをローカルにクローンします。

最新バージョンをクローンする場合

git clone https://github.com/langgenius/dify.git

特定のバージョン(例:1.4.1)をクローンする場合

git clone https://github.com/langgenius/dify.git --branch 1.4.1

 

2. envファイルの編集

「.env」に以下を追加します。

# AWSアクセスキー
AWS_ACCESS_KEY_ID=※1
AWS_SECRET_ACCESS_KEY=※1
※1 一時認証情報を環境変数に設定する場合は、セッショントークン (AWS_SESSION_TOKEN) も指定する必要があります。


3. docker-compose.yamlの編集

AWSアクセスキーの設定を行います。

  • apiのenvironmentに以下を追加します。
# AWSアクセスキー
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
※ 一時認証情報を環境変数に設定する場合は、セッショントークン (AWS_SESSION_TOKEN) も指定する必要があります。
  • plugin_daemonのenvironmentに以下を追加します。
  AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
※ 一時認証情報を環境変数に設定する場合は、セッショントークン (AWS_SESSION_TOKEN) も指定する必要があります。


4. Difyの起動

Difyソースコードのdockerディレクトリに移動し、環境配置ファイルをコピーします。

cd dify/docker
cp .env.example .env

Dockerコンテナを起動します。

docker compose up -d

以下のようなコンソール画面になれば、成功です。

5. Difyの画面を開く

以下URLからDifyの管理者初期化ページにアクセスし、管理者アカウントを設定してください。

http://localhost/install

作成したアカウントでログイン後、Difyのホーム画面が表示されます。

参考:Dify 公式ドキュメント | Docker Compose デプロイ


6. 補足:SSL証明書設定方法

CloudflareといったSSL/TLSに独自証明書(カスタムCA証明書)が適用されている環境では、[SSL: CERTIFICATE_VERIFY_FAILED]のようなエラーが発生し、処理が中断される、もしくはプラグインをインストールできない等の問題が発生する場合があります。
その場合は、以下の手順でDocker環境にカスタム証明書を追加することで解決できる可能性があります。
※ご利用のDifyのバージョンによってはdocker-compose.yamlの構成が異なる場合がありますのでご了承ください。

  1. Dockerコンテナ(docker-api-1)から証明書ファイル(cacert.pem)をローカルにコピーします。

    docker cp docker-api-1:/app/api/.venv/lib/python3.12/site-packages/certifi/cacert.pem C:/workspace-Dify_main/certificates/cacert.pem

    ※C:/workspace-Dify_main/certificates/cacert.pemはご自身のローカル環境に置き換えてください。

  2. コピーしたcacert.pemの末尾に、必要な独自証明書を追記します。

  3. 以下に従い、docker-compose.yamlを編集します。

    • apiとworkerのvolumesに以下を追加します。
        - ./volumes/app/ssl_certs/cacert.pem:/usr/local/share/ca-certificates/cacert.pem
    • 同じく、apiとworkerにentrypointを追加します。
      entrypoint: 
      # Append certificates to certifi's CA bundle
      - /bin/bash
      - -c
      - |
      # マウントしたファイルを、certifiライブラリのpemに上書き
      cp /usr/local/share/ca-certificates/cacert.pem /app/api/.venv/lib/python3.12/site-packages/certifi/cacert.pem
      /entrypoint.sh
    • plugin_daemonのenvironmentに以下を追加します。
        AWS_CA_BUNDLE: /usr/local/share/ca-certificates/cacert.pem
      REQUESTS_CA_BUNDLE: /usr/local/share/ca-certificates/cacert.pem
    • plugin_daemonのvolumesに以下を追加します。
        - ./volumes/app/ssl_certs/cacert.pem:/usr/local/share/ca-certificates/cacert.pem

参考リンク

7. Bedrockのモデル有効化

DifyはOpenAIなど多様なモデルに対応していますが、本記事ではAmazon Bedrockと連携する手順を解説します。

Bedrockの料金は以下のようになっています。
Amazon Bedrockの料金

「Claude 3 Haiku」は低コストで軽量・高速に動作するため、今回はこのモデルを選択しました。

モデルカタログから使いたいモデルの三点リーダー(…)をクリックします。

「アクセスを変更」を選択し、モデルを利用可能にします。

「モデルアクセスを変更」をクリックします。

有効にしたいモデルをチェックし、「次へ」ボタンをクリックします。

サイトの指示通りに、情報を入力(以降もサイトの指示通りに操作)してください。

アクセス付与後、ステータスが「アクセスが付与されました」になります。

8. 利用するプラグインのインストール

ホーム画面右上のアイコンをクリックし、下の画面の「設定」をクリックします。

左の「モデルプロバイダー」をクリックし、好きなプロバイダを選択し「インストール」を実行(今回はAmazon Bedrockを選択)します。

インストールが終わったらセットアップを開いて、「AWS Region」のみを入力し「保存」ボタンをクリックします。
・AWS Region:ap-northeast-1(東京)

埋め込みモデルの設定

ナレッジベースにデータを登録するには、「システムモデル設定」にて、埋め込みモデルを設定する必要があります。

  • 埋め込みモデルについて
    埋め込みモデルはナレッジ設定時のベクトル化処理で必要なモデルです。 単語を低次元のベクトルに変換し、類似した意味を持つ単語が近い位置に配置されるようにしてくれます。
  • Rerankモデルについて
    検索結果や情報検索システムにおいて最初に生成された結果を再評価し、より適切な結果を得るために再度順位を付けるランキング技術です。
    →検索精度を向上させ、LLMの計算コストを削減できます。

今回は下記のように設定しました。

ハンズオン

実際にナレッジベースのCSVから顧客に関する情報を抽出するチャットフローを作成しました。

ナレッジベースの作成方法

ナレッジタブから、左側に表示される「ナレッジベースを作成」ボタンをクリックします。

ファイルをインポートします。
Geminiなどで作成した営業日報のサンプルデータを使用します。

チャンク設定をします。
LLMには一度に入力できる限界のサイズがあり、チャンク分割することによって、大量のテキストデータをLLMが処理できるサイズにすることができます。

  • 最大チャンクの設定について
    1つのチャンクに許容される最大文字数を指定します。サンプルデータの1つの営業日報が300文字程度なので、300文字を超えない文字数を設定しています。
  • チャンクのオーバーラップの設定について
    チャンク間に重複する文字数を指定します。重複させることで、文脈の維持に役立ちます。 Difyではチャンク長の10〜25%に設定することを推奨しています。

参考: 【徹底解説】Difyのチャンク分割とは?

埋め込みモデルなどを選択し、保存して処理をクリックします。

処理が完了すればステータスが「利用可能」になります。

チャットフローの作成

今回作成するチャットフローはこちらになります。
開始ブロックから始まり、知識検索ブロックで先ほど作成したナレッジベースにアクセスします。
その後LLMブロックでClaudeを選択します。また、AIにどのようなプロンプトを渡すのかも、このブロックで指定することができます。最後に回答ブロックを配置します。

スタジオタブから「最初から作成」をクリックします。

チャットフローを選択してアプリの名前とアイコンを任意で設定します。
作成するボタンをクリックします。

開始ブロックを配置します。
開始ブロックでは特に何も設定せずに次のステップに進みます。

知識検索ブロックでは以下を設定します。

  • 検索変数:ユーザーが「開始ブロック」で入力したテキスト
  • ナレッジベース:先ほど作成したナレッジベースを選択
  • トップK:実際に出力する際に、検索結果の上位何件(チャンク)を取得・使用するかを設定する項目

LLMブロックでは以下を設定します。

  • AIモデルの選択:任意のAIモデルを選択
  • コンテキスト:前の「知識検索」ブロックで検索されたテキストをAIに渡す部分
  • SYSTEM:AIの性格・役割・ふるまいを定義
  • USER:AIに対して具体的な命令・質問を出す(USERにコンテキストを渡すことによって、AIは質問 + コンテキスト情報で回答を作成する)

最後に回答ブロックを配置します。

すべてのブロックを配置したら、プレビューボタンをクリックし、チャットにプロンプトを送って動作を確認してみます。

見切れていますが、検索結果は9件表示されています。LLMブロックで設定した要求事項や出力形式に従って生成されていることが分かります。

以上でチャットフローの作成は完了となります。

おわりに

本記事では、オープンソースのAIアプリ開発プラットフォーム「Dify」を活用し、ナレッジベースから情報を抽出するAIエージェントアプリの構築手順を紹介しました。環境構築の手順、ナレッジベースの作成方法、ワークフローの設計、各ブロックの役割と設定内容までを実際のスクリーンショット付きで解説したことで、Difyを活用したAIアプリ開発のイメージがより具体的に伝わったのではないでしょうか。

Difyはノーコード故に、直感的なUIと柔軟な拡張性を兼ね備えています。
クラウド版であれば環境構築も不要で、アカウント登録後すぐに利用を開始できる点も魅力です。
今回のようにセルフホスト環境を選択した場合でも、Dockerベースの構成により比較的スムーズに構築できるため、学習コストも低いです。
また、オープンソースであるため、独自プラグインの開発や既存機能の拡張が可能です(OpenAI、Gemini、Ollamaなどもインストールできます)。
LLMの切り替えや、埋め込みモデル・Rerankモデルの選択、API連携など、柔軟に構成をカスタマイズできます。

今後は、RAGや埋め込みモデルの進化に加えて、Bedrockのような各種LLM基盤との連携強化が進むことで、より精度の高い、業務に即したAIエージェントの構築が可能になると期待されます。