Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Amazon Bedrock をTeamsとノーコードで連携する

はじめに

10月に入り、やっと秋らしい感じになってきました。
データ分析エンジニアの木介です。
先日、AWS Chatbotの新機能を利用して、BedrockがTeamsやSlackと簡単に連携できるようになったと発表がありました。
今回は、その内容を確認して、BedrockとTeamsを連携する方法について、説明していきます。

aws.amazon.com

概要

Amazon Bedrockとは?

Amazon Bedrock は、AWSが提供するマネージドサービスで、開発者が複数の大規模言語モデル(LLM)を簡単に利用できるプラットフォームです。
Bedrockを使用することで、アプリケーションにAI機能を組み込むために高度なAIやMLの知識を持っていなくても、自然言語処理、テキスト生成、質問応答、翻訳、要約といった高度なAIタスクを実現することができます。

docs.aws.amazon.com

今回のゴール

以下の形でTeamsにAmazon Bedrockで作成したAIエージェントを用いたチャットボットをAWS Chatbotを用いてノーコードで組み込むことが今回の目的になります。

Opening Slide

TeamsへのBedrockを使ったアプリの導入

構築環境

Teamsは、「一般法人向けプラン」と「家庭向けプラン」がありますが、今回は前者の「一般法人向けプラン」の内容を利用します。

www.microsoft.com

以下が利用するAWS サービスです

  • Agents for Amazon Bedrock
    • 生成AIを用いたAIエージェントを作成するために利用
  • AWS Chatbot
    • AWSサービスをTeamsに配信するために利用

また今回はus-east-1でのリージョンで構築を行っていきますが、AWS ChatbotのAmazon Bedrockとの連携はすべてのリージョンでサポートされているとのことです。
料金についてはTeamsにAIエージェントを配信するAWS Chatbotは無料で利用可能ですが、配信されるサービス(今回ではAgents for Amazon Bedrock)には別途費用が必要となります。

aws.amazon.com

aws.amazon.com

1. Agents for Amazon BedrockでAIエージェントを作成する

ではまずAmazon Bedrockを使ってチャットボットで回答をするAIエージェントを作成していきます。
AWSマネジメントコンソールのAmazon Bedrockより「エージェントを作成を選択」します。
以下の画面が出てくるので、任意のエージェント名を入力し作成を選択します。

エージェントの設定については以下の部分のみを修正し、他はデフォルトで設定をしました。

  • モデル:Claude 3 Sonnet
  • ユーザ入力:Enabled
    • 質問に対して情報不足な時に追加情報を求める
  • Memory: Enabled
    • 会話内容を記憶する


上記設定後、保存して終了→準備でテストが可能になります。
作成したAIエージェントのテストが右側のチャット欄から行えます。

作成したAIエージェントで回答が出来ていることが分かります。

2. AWS Chatbotの設定

次にAWS Chatbotでチャットボットの設定を行っていきます。
まずBedrockと連携したいTeamsアカウントからリンクを取得します。
チャネルより右クリックで「チャネルへのリンクを取得」でリンクをコピーします。
AWS Chatbotの設定で必要ですのでメモしておいてください。

AWSマネジメントコンソールのAWS Chatbotの画面よりTeamsを選択して「クライアントを設定」を選択します。

以下の画面で先ほど取得したチャネルへのリンクを入力し、設定を選択。

以下のアクセス許可について承諾が必要となります。

次にチャネルの設定を行っていきます。
以下から「新しいチャネルを設定」を選択します。

Bedrockでのチャネルの設定については以下の形で行っていきます。
画面の「チャネルのURL」項目についてはチャットボットを導入したいTeamsのチャネルのリンクを入力してください。

またアクセス許可のロール設定については「チャネルIAMロール」としました。
これにより、指定したチャネル内のメンバー全員に同じ権限を付与できます。
こちらで作成したロールに後ほどBedrockを使うための権限を付与します。

先ほど作成したロールにBedrockへのアクセス権限を付与していきます。
ロールを選択して、許可を追加から「インラインポリシーを作成」を選択。
以下の形で先ほど作成したエージェントのARNとエイリアスIDを入力します。


{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "AllowInvokeBedrockAgent",
			"Effect": "Allow",
			"Action": "bedrock:InvokeAgent",
			"Resource": [
				"arn:aws:bedrock:us-east-1:111222333444:agent-alias/AGENTARN/ALIASID"
			]
		}
	]
}

以上でAWS Chatbotの設定が完了しました。

3. Teamsの設定

それでは最後にTeams側の設定を行っていきます。
アプリの検索よりAWSを検索し、以下のアプリをチャネルに追加します。
これでTeamsでBedrockを使ったチャットボットが利用できます。


使い方

では早速作成したチャットボットをTeamsで使ってみましょう。
先ほどTeamsに導入したawsアプリでTeams上でAWS CLIの機能が利用可能となります。

docs.aws.amazon.com

まず動作確認として@aws connectorを入力してみましょう。

上記の形で応答があれば成功です。

次に以下のコマンドで利用するエージェントを指定します。
AGENT-IDとALIAS-IDに作成したエージェントのIDを指定します。

@aws connector add ai-chatbot arn:aws:bedrock:us-east-1:111111111111:agent/AGENT-ID ALIAS-ID

以下のレスポンスがあればOKです。

会話については以下のコマンドで行うことができます。

@aws ask ai-chatbot “会話内容”

以下が実際に行った内容です。

手順1で作成したエージェントの設定どおりに、不明点に対して聞き返したり、会話を記憶出来ていることが分かります。

以上でBedrockをTeamsで利用するまでの一通りの流れを紹介しました。
Agents for Amazon Bedrockと連携できるのでKnowledge Basesも扱うことができ、色々なことに応用が出来そうです。

まとめ

今回はノーコードでAmazon BedrockとTeamsを連携する方法を解説しました。
Amazon Bedrock Knowledge Basesを利用することで社内ドキュメントとの連携も可能となり、様々な場面で活用できると感じましたので、皆さんも是非試してみてください。


Acroquest Technologyでは、キャリア採用を行っています。
  • Azure OpenAI/Amazon Bedrock等を使った生成AIソリューションの開発
  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • マイクロサービス、DevOps、最新のOSSクラウドサービスを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
www.wantedly.com