kakakakakku blog

Weekly Tech Blog: Keep on Learning!

AWS に Dify をデプロイして入門できる「Dify での生成 AI アプリケーション構築ワークショップ」

普段 Dify を使うときはクラウド版を使っているけど,クラウド版以外にセルフホスト版もある👌 AWS に Dify のセルフホスト版をデプロイして Dify に入門できる「Dify での生成 AI アプリケーション構築ワークショップ」を試してみた❗️

catalog.us-east-1.prod.workshops.aws

チャットボット・エージェント・ワークフローなど Dify の基礎を学べるコンテンツとして良かった.さらに Dify のナレッジ (RAG) も試せる.手順はとても丁寧でハマるところはまったくなかった👏 ただし,Dify 自体を試すことが目的なら,AWS に Dify をデプロイする必要はなく,クラウド版を使うのが良いとは思う.

アジェンダ

  1. Dify とは
  2. ワークショップの準備
  3. チャットボットの開発
  4. エージェントの開発
  5. ワークフローの開発
  6. クリーンアップ

誤植

  • Titan Text Emdeddings V2Titan Text Embeddings V2
  • amazon.titan-embedded-text-v2:0amazon.titan-embed-text-v2:0

実施ログ

あとはワークショップを実施しながら残しておいた実施ログを載せておこうと思う😀

🤖 2. ワークショップの準備

AWS CloudFormation で Dify を構築する.AWS CloudFormation テンプレート dify-self-deployment.yml はそこまで複雑ではなく,Amazon VPC と Amazon EC2 をデプロイしていた.Amazon EC2 インスタンスの user data でゴニョゴニョしながら最終的に Docker Compose を起動しているところは「なるほど〜」という感じ💡

UserData:
  Fn::Base64: |
      #!/bin/bash
      max_attempts=5
      attempt_num=1
      success=false
      while [ $success = false ] && [ $attempt_num -le $max_attempts ]; do
        sudo dnf install -y git docker
        if [ $? -eq 0 ]; then
          echo "dnf install succeeded"
          success=true
        else
          echo "dnf install $attempt_num failed. trying again..."
          sleep 3
          ((attempt_num++))
        fi
      done

      sudo systemctl start docker
      sudo gpasswd -a ec2-user docker
      sudo gpasswd -a ssm-user docker
      sudo chgrp docker /var/run/docker.sock
      sudo service docker restart
      sudo systemctl enable docker
      sudo curl -L "https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      sudo chmod +x /usr/local/bin/docker-compose
      sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
      cd /opt
      sudo git clone https://github.com/langgenius/dify.git
      cd /opt/dify
      sudo git checkout 1.1.3
      sudo git pull origin 1.1.3
      cd /opt/dify/docker
      sudo cp .env.example .env
      docker-compose up -d

ワークショップの中でも紹介されていたけど,プロダクション環境で使えるアーキテクチャではないため,より実践的なアーキテクチャは Dify on AWS with CDK を参考にすると良さそう❗️

github.com

そして Amazon Bedrock で使う基盤モデルは大きく4種類だった.

  • Anthropic - Claude 3.5 Sonnet v2
  • Anthropic - Claude 3.5 Haiku
  • Amazon - Titan Text Embeddings V2
  • Cohere - Rerank 3.5

モデルプロバイダー設定

🤖 3. チャットボットの開発

チャットボットで Dify の代表的な操作を体験しよう❗️といった感じの流れだった.「会話の開始(オープナー)」「変数」を試せるのも良かった.

そして,なんと言ってもナレッジ (RAG) を体験できるのが良かった👌 今回はワークショップサイトから PDF をダウンロードして問い合わせの回答に使う.あとナレッジのチャンク設定で「汎用」ではなく「親子」を選択するのは今までやったことがなくて勉強になった〜 \( 'ω')/

  • kintai.pdf(勤怠管理システム入力方法マニュアル)
  • information-system-dept.pdf(情報システム部門の Wiki)

解説ブログも載っていた📝

aws.amazon.com

ナレッジ (RAG) 設定

プロンプトログ

注釈

🤖 4. エージェントの開発

DuckDuckGo プラグインをセットアップして,リサーチエージェントとして検索をするという内容だった.

ログの詳細

🤖 5. ワークフローの開発

手順も長く,そこそこ複雑なワークフローを構築しよう❗️という内容だった.Dify の「質問分類器」を使って RAG・パラメータ抽出・例外処理に分岐する感じで,ブロックごとに解説もされてて理解を深めながら進められるようになっていて良かった.「パラメータ抽出」を体験できるようにワークショップが作られているのも素敵💡

質問分類器

ワークフローの実行結果

まとめ

Dify のセルフホスト版を AWS にデプロイしつつ Dify に入門できる「一石二鳥な」ワークショップだった👏

ちなみにこのワークショップは2024年10月に公開された.公開直後にすぐやってみようと思ったけど,個人アカウントだと Amazon Bedrock のモデルアクセスを有効化できなくて,サポートの回答を待っていたら結局やらなくなってしまったという背景があった😇そのまま寝かせていて,2025年4月にワークショップ手順のアップデートがあったため,改めてやってみることにした❗️

Dify 関連本

2025年5月に Dify 関連本を2冊読んだ.どちらも面白かったからおすすめ❗️特に「ゼロからわかる Dify の教科書」はビジネスパーソンに幅広く刺さりそうな内容になっていて,エンジニアじゃなくても Dify を使ってノーコード(ローコード)な業務効率化ワークフローを作れるっていう自信につながる内容だったから,今回紹介したワークショップとセットで読んでみるのも良さそう😀