はじめに
こちらのAWS公式ハンズオンをやってみました!
この記事は、ハンズオンで学んだ内容を備忘的に残すことを目的とさせていただいてます。
詳細な手順などはAWSのハンズオンページをご確認ください!
実際に手を動かすことによって得られる学びは非常に大きいので、是非ご自身でもやってみていただければと思います!
1.環境準備
2.環境構築
2-1. Amazon Bedrock Agentsの作成
2-2. Amazon DynamoDBの作成
2-3. AWS Lambda関数の作成
2-4. アクショングループの追加(在庫追加)
2-5. アクショングループの追加(製品情報検索)
2-1. Amazon Bedrock Agentsの作成
ここでは、マネジメントコンソールにログインし、生成AIサービスの Amazon Bedrock の Agent を作成します。
アクショングループを追加して終了。
最後に「準備」を押すのを忘れないように!!
「準備」を押すことでステータスが PREPARED
になります。
2-2. Amazon DynamoDBの作成
ここでは、Amazon Bedrock の Agent が在庫の確認のためにアクセスする倉庫在庫DBである Amazon DynamoDB を作成します。
テーブルを作成し、レコードを1件手動で登録します。
※weight
が文字列型なのが解せない!w
2-3. AWS Lambda関数の作成
ここでは、Amazon Bedrock の Agent が実行するアクショングループファンクションである Lambda関数 を作成します。
アクショングループ作成時に生成されたLambda関数の設定を行います。
まず、用意されているコードをコピペしてデプロイ。
DynamoDBのテーブルから特定の商品名に基づいて在庫情報を取得し、レスポンスを返すコードです。
続いて、Lambda関数に紐づけられたIAMロールに、DynamoDBの操作権限を付与。
2-4. アクショングループの追加(在庫追加)
ここでは、Amazon Bedrock の Agent が実行するアクショングループを追加して、自然言語によるリクエストによって、在庫の追加を実行できるようにします。
続いて、「エージェント向けの指示」を書き換えます。
## 修正前
あなたは倉庫業務のエージェントです。入力に応じて在庫の検索や登録・更新を行います。使用できる言語は日本語のみです。
## 修正後
あなたは倉庫業務のエージェントです。入力に応じて在庫の検索や更新を行います。
使用できる言語は日本語のみです。
製品の在庫数を検索するリクエストは、製品名{product_name}を使ってアクションを呼び出します。
製品の在庫を追加するリクエストは、製品名{product_name}と数量{num}を使って、アクションを呼び出します。
<example>
"シャンプーは何個ですか"というリクエストの場合、{product_name}がシャンプーを表します
"シャンプーを10個登録したい"というリクエストの場合、 {product_name}がシャンプー、{num}が10を表します
</example>
2-3同様、アクショングループ作成時に生成されたLambda関数の設定を行います。
用意されているコードをコピペしてデプロイ。
DynamoDBテーブルを使用して商品の在庫数を更新するコードです。
続いて、これまた先ほどと同様に、Lambda関数に紐づけられたIAMロールにDynamoDBの操作権限を付与し、Agentの動作確認を行います。
いい感じですね!
2-5. アクショングループの追加(製品情報検索)
ここでは、Amazon Bedrock の Agent が実行するアクショングループを追加して、自然言語によるリクエストによって、製品情報を照会するようにします。
やることは2-4とほぼ一緒なので割愛します。
3.ホスティング
3-1. Agentのエイリアスの作成
3-2. Amazon VPCの作成
3-3. Amazon EC2の作成
3-1. Agentのエイリアス作成
チャットアプリケーションからアクセスするためのAgentのエイリアスを作成します。
Agentのエイリアスはエージェントのデプロイ戦略に欠かせないものです。
詳細はこちらをご確認ください。
3-2. Amazon VPC
Amazon EC2をデプロイするためのAmazon VPC を作成します。
VPC、サブネットなどを作っていきます。
VPCを作るのと同時にサブネットやルートテーブルの設定もできます。
いい時代になりましたw
3-3. Amazon EC2の作成
チャットアプリケーションを展開する Amazon EC2 を作成します。
EC2を作成して、ユーザーデータでStreamlitを入れています。
EC2からBedrockにアクセスできるように、EC2に紐づくIAMロールに AmazonBedrockFullAccess
を付与し、動作確認。
できた!!
4.片付け
忘れずにやりましょう!
4-1. Amazon EC2の削除
4-2. AWS Lambdaの削除
4-3. Amazon DynamoDBの削除
4-4. Amazon Bedrock Agentsの削除
終わりに
以上、AWS公式のAmazon Bedrock Agentsハンズオンをやってきました。
Agentsの構築の仕方、動き方の理解が非常に深まりました。
ただ、今回のハンズオンではアクショングループの利用にとどまり、ナレッジベース(RAG)の利用はありませんでした。
@minorun365 さん、@hedgehog051 さん、@moritalous さんが執筆された『Amazon Bedrock 生成AIアプリ開発入門』で紹介されているハンズオンは、ナレッジベースを含む広い範囲の機能を触れますので、こちらも是非お求めいただければと思います。
最後までお目通しいただき、ありがとうございました!