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

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

目次

    はじめに

    近年、「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)という手法を活用した社内情報検索ツールなども、簡単に構築することが可能です。
    202510_dify_nocode_chatflow_01

    また、画面をポチポチ操作するだけで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

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

    5. Difyの画面を開く

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

    http://localhost/install

    202510_dify_nocode_chatflow_03

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

    202510_dify_nocode_chatflow_04

    参考: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の料金

    202510_dify_nocode_chatflow_05

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

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

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

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

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

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

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

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

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

    202510_dify_nocode_chatflow_12

    左の「モデルプロバイダー」をクリックし、好きなプロバイダを選択し「インストール」を実行(今回はAmazon Bedrockを選択)します。
    202510_dify_nocode_chatflow_13
    インストールが終わったらセットアップを開いて、「AWS Region」のみを入力し「保存」ボタンをクリックします。
    ・AWS Region:ap-northeast-1(東京)
    202510_dify_nocode_chatflow_14

    埋め込みモデルの設定

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

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

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

    202510_dify_nocode_chatflow_15

    ハンズオン

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

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

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

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

    202510_dify_nocode_chatflow_17

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

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

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

    202510_dify_nocode_chatflow_18

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

    202510_dify_nocode_chatflow_19

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

    チャットフローの作成

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

    202510_dify_nocode_chatflow_21

    スタジオタブから「最初から作成」をクリックします。
    202510_dify_nocode_chatflow_22
    チャットフローを選択してアプリの名前とアイコンを任意で設定します。
    作成するボタンをクリックします。
    202510_dify_nocode_chatflow_23

    開始ブロックを配置します。
    開始ブロックでは特に何も設定せずに次のステップに進みます。
    202510_dify_nocode_chatflow_24
    知識検索ブロックでは以下を設定します。

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

    202510_dify_nocode_chatflow_25

    202510_dify_nocode_chatflow_26

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

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

    202510_dify_nocode_chatflow_27

    最後に回答ブロックを配置します。
    202510_dify_nocode_chatflow_28
    すべてのブロックを配置したら、プレビューボタンをクリックし、チャットにプロンプトを送って動作を確認してみます。
    202510_dify_nocode_chatflow_29
    見切れていますが、検索結果は9件表示されています。LLMブロックで設定した要求事項や出力形式に従って生成されていることが分かります。

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

    おわりに

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

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

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

    アジアクエスト株式会社では一緒に働いていただける方を募集しています。
    興味のある方は以下のURLを御覧ください。