【Dify×AWS】Bedrock連携方法をスクショ付きで徹底解説!

「AIチャットボットの開発に興味はあるけれど、難しそうで手が出せない…」

そんな方も多いのではないでしょうか?ChatGPTの登場以降、多くの企業がAIチャットボットの導入を検討しています。でも、実際の開発では、高度なプログラミングスキルや複雑なインフラ構築が必要で、多くの開発者にとってまだまだハードルが高い状況です。

本記事では、オープンソースのLLMプラットフォーム「Dify」とAWSを組み合わせて、誰でも気軽にAIチャットボットを作れる方法を紹介します。プログラミングの知識がなくても大丈夫です。GUIで直感的に操作できるDifyと、安定したインフラを提供するAWSの組み合わせで、数時間で実用的なチャットボットを作れます。

これから説明する手順に従えば、誰でも実用的なAIチャットボットを作れます。本記事を読んで、AIチャットボット開発の世界への第一歩を踏み出しましょう。

目次

DifyとAWS Bedrockの基礎知識

ここではDifyやAWS、AWS Bedrockを解説します。

Difyとは?

Difyは、だれでもAIアプリケーションを開発できるオープンソースのプラットフォームです。AIを効率よく開発できる環境を提供しており、自分だけのAIアプリケーションを作ることができます。Difyの特徴は、コードを書く必要がない直感的な操作画面です。ビジネスマンからエンジニアまで、幅広い人が使えます。

DifyはいろいろなAIモデルに対応しているので、さまざまな種類のアプリケーションを作ることができます。オープンソースで商用利用もできますし、会社の特別なニーズに合わせて作り込むこともできます。日本語の画面も用意されているので、日本人でも安心して使い始められます。

Difyを使えば、次のAIアプリケーションが簡単に作れます。

  • チャットボット
  • 文章を自動で作るツール
  • データを分析するツール
  • 言葉を処理するツール
  • 画像を認識するツール
  • AIアシスタント
  • プログラムのコードを生成するツール

使う人のニーズに合わせて調整もできるので、柔軟に対応できます。

AWS とは?

AWS(Amazon Web Service)は、Amazonが提供するクラウドサービスです。サーバーやデータの保存場所、データベースなどを提供・共有するパブリッククラウドで、サービスの種類は700以上もあると言われています。

AWSは、Amazonが自分の会社のために作った仕組みをもとに、2006年にリリースしました。コンピューターの仮想サーバーを作ったり、システムを開発する環境を作ったり、コンテンツを配ったり、たくさんのデータを分析したりと、いろいろな機能の中から必要なものを選び使える、柔軟なシステムを提供しています。

パブリッククラウドサービスを使えば、システムの管理を会社の中で行う手間がかからず、設備を用意したり維持したりする必要もありません。また、どこにいてもデータの管理ができます。このような便利さが認められて、パブリッククラウドはいろいろな業界で使われるようになっています。

AWS Bedrockとは?

Amazon Bedrockは、サーバーレスで手軽に最新の生成AIモデルを使えるAWSのサービスです。このサービスは、大手AI企業が提供する多くの生成AIモデルが使えます。日本では2023年10月からはじまった比較的新しいサービスで、マーケティングや仕事の進め方の改善などに使われています。

Amazon Bedrockは、たとえば次のことができます。

  • 新しいコンテンツや、SNSに投稿する文章などを自動で作る
  • 広告やプレゼン資料で使う、きれいな画像を素早く作る
  • お客様へのおすすめ商品の提案や、会社の大切な情報をまとめて探して共有する
  • 仕事の自動分類や質問への回答など、いろいろな作業をスムーズにする
  • 論文や文書、技術レポートなどの長い文章から大切なところを素早く見つける
Tom

AWSでDifyを使うなら、AWS Bedrockは必須!!

なぜDifyとAWSを組み合わせるのか?

DifyとAWSの組み合わせには、たくさんのメリットがあります。AWSのインフラを使えば、必要に応じて柔軟にリソースを調整できます。またAWSは信頼性が高く、安定して使え、またバックアップや監視など、運用に必要な機能も充実しています。料金面では使った分だけの支払いなので、ムダがありません。無料枠をうまく活用すれば、Dify Cloudで構築するよりも安く運用ができます。

Difyの初期設定とAWS Bedrock連携

ここではAWS公式ハンズオンに掲載されているDifyとAWS Bedrockを連携したチャットボットのセットアップを紹介します。

1. AWSアカウントを準備しよう

まずAWSのアカウントを作成します。AWSのサイトで「アカウントを作成」を選びます。案内に沿って進めます。カード情報は必要ですが、上手に使えば無料枠で十分です。アカウントができたら、安全のために管理者とは別のIAMユーザーを作ります。AWSのコンソールにログインし、IAMから新しいユーザーを作り、必要な権限だけを与えます。

2. AWS CloudFormationで構築しよう

AWSには「AWS CloudFormation」という便利な機能があり、設計図のようなファイル(テンプレート)を用意しておけば、必要な設定を全て自動で行ってくれます。AWS公式がDifyを簡単に構築できるCloudFormaionのテンプレート「dify-self-deployment.yml」を用意しているので、今回はそれを使います。

はじめに「dify-self-deployment.yml」ファイルを公式からダウンロードします。そしてテンプレートを次のように最新のDifyを使うように変更します。

sudo git checkout 0.9.1-fix1
sudo git pull origin 0.9.1-fix1
LATEST_TAG=$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)
sudo git checkout $LATEST_TAG
sudo git pull origin $LATEST_TAG

次にAWSの画面上部の検索欄に「CloudFormation」と入力し、表示されたリンクをクリックします。

左側のメニューから「スタック」を選び、「スタックの作成」→「新しいリソースを使用」の順にクリックします。

「テンプレートファイルのアップロード」を選び、先ほどダウンロードしたファイルをアップロードします。

3つ目に、スタック名(例:DifyWorkshop)を入力します。特定のパソコンからだけアクセスできるようにしたい場合は、「AllowedCIDR」に制限したいIPアドレスの範囲を入力し、「次へ」をクリックします。

最後に、画面を下までスクロールし、「AWSによってIAMリソースが作成される場合があることを承認します」にチェックを入れます。そして 「次へ」をクリックし、内容を確認して「送信」をクリックします。

設定が終わるまで待機して、終わったら、画面右側の「出力」タブをクリックします。「InstancePublicIP」に表示されているIPアドレスはDifyにアクセスするときに必要になるアドレスです。

3. Amazon Bedrockを有効にしよう

DifyはAmazon Bedrockとの連携で、Amazon TitanやAnthropic Claudeなど、さまざまなAIモデルを簡単に使えます。今回は最も多くのAIモデルが使えるオレゴン(us-west-2)にあるAmazon Bedrockを使います。次の手順に従い、AWS Bedrockを有効にします。

  1. 画面右上で「オレゴン」(us-west-2)を選択します。違う地域になっている場合は、オレゴンに変更してください。
  1. AIモデルを有効にします。画面上部の検索欄に「bedrock」と入力し、表示された「Amazon Bedrock」をクリックします。
  1. 画面左上の三本線マークをクリックしてメニューを開き、一番下の「モデルアクセス」を選び、「特定のモデルを有効にする」をクリックします。
  1. Claude 3.5 Sonnet v2にチェックを入れ、モデルの使用規約(EULA)を確認し、画面下の「Next」をクリックします。
  1. Claudeを使う場合のみ、次の画面が出るので、ユースケースを入力します。
  1. 確認画面が出てきたら、内容を確認して送信をクリックします

これで設定は完了です。AIモデルが使えるようになるまで数分かかるので、その間に次の作業をします。

4. Difyにアクセスしてチャットボットを作ろう

ここまでの手順で、DifyをインストールしたAmazon EC2サーバーが準備できました。次は、このDifyにアクセスして初期設定をします。これ以降はDifyの初期セットアップと同じです。

吹き出し> Difyの初期セットアップを知りたい方はこちらの記事をどうぞ!

Amazon Bedrockのモデルは次のように設定します。

  1. 画面右上のユーザー名をクリックして設定を選択
  1. 左側のメニューからモデルプロバイダーを選択
  1. モデルプロバイダーAmazon Bedrockをインストールして、セットアップをクリック
  1. [AWS Region]で「US West (Oregon)」を選択し、[Available Model Name]に「anthropic.claude-3-5-sonnet-20241022-v2:0」と入力して、保存をクリック。

Available Model Nameに必要なパラメーターはAWSのモデルプロバイダー一覧のModel IDに記載されています。

  1. モデル表示から「Claude 3.5 Sonnet v2」のみ有効にします。
  1. 保存をクリックして設定を完了します。

これで初期設定は完了です!次のステップでチャットボットを作ります。

Tom

difyでチャットボットを作る記事はこちらの記事をどうぞ!

まとめ

この記事では、DifyとAWSを使ってAIチャットボットを作る方法を紹介しました。難しそうに見えるAIチャットボット開発もAWSでは3つのステップで実現できます。

  1. AWSアカウントを用意する
  2. CloudFormationで環境を自動構築する
  3. DifyとAWS Bedrockを連携する

AWS CloudFormationを使うことで、複雑な環境も自動で構築できます。また、AWS Bedrockと連携すれば、Claude 3.5 Sonnetなどの高性能なAIモデルの利用も可能です。AWSでDifyをインストールする際はこの記事を参考に構築してみてください。

参考URL

https://catalog.us-east-1.prod.workshops.aws/workshops/95a3c231-2064-4a33-9a3d-624b7c11aaa6/ja-JP/10-about-dify

https://qiita.com/Aichi_Lover/items/230bc01431ea5843e39b#42cloudformation%E3%81%AE%E5%AE%9F%E8%A1%8C

https://dev.classmethod.jp/articles/amazon-nova-series-model-announced-aws-reinvent

このコンテンツの投稿者

学生時代は生成AIによるアノテーションの研究を行っていた。現在は、AI戦略室でAI関連の開発や事業への活用を担当。 オウンドメディアの担当者を経て、現在はAIエンジニア。

目次