Amazon Bedrockのエージェントにより、開発者はFoundationモデル(FM)を介して自然言語を理解する会話エージェントを作成できます。このブログ投稿では、ユーザーが自然言語を使用してAmazon DynamodbテーブルとAmazon Bedrockの知識ベースと対話できるようにするAmazon Bedrockエージェントを作成します。
リソースのセットアップ、エージェントのアクショングループの定義、AWSラムダ関数を関連付けてDynamoDB操作を実行し、知識ベースを統合して、ユーザークエリに対してよりパーソナライズされたコンテキスト対応の応答を提供するための知識ベースを統合します。これはすべて、AWSクラウド開発キット(CDK)を使用した「CDK Deploy」コマンドを使用しています。
最後に、データベースのインタラクションを簡素化し、パーソナライズされた応答を提供し、ユーザーフレンドリーなエクスペリエンスを提供するインテリジェントな会話エージェントを構築する方法がわかります。

このエージェントは、ユーザーが情報を入力してリクエストを行うためのインターフェイスとして機能します。
ユーザーのアクションは、アクショングループの定義、エージェントがユーザーが3つの重要なアクションを実行できるようにするアクションに基づいて、AWSラムダ関数をトリガーします。スパンアップメント、getTopintment、およびaskTodaydateです。
?アクショングループの定義はAG_DATA.JSONおよびAMAZON BEDROCKの定義がagent_data.jsonにあります
SpanippointmentおよびGetAppointment関数は、Amazon DynamoDBテーブルと相互作用します。必要に応じて予約データを保存および取得します。
AskTodayDate関数は現在の日付情報を取得し、Amazon Bedrockのエージェントを介してユーザーに戻ってリレーされます。これにより、ユーザーは予約スケジューリングアクションに関するリアルタイムの更新と確認を受信できます。
ナレッジベースに保存されている情報を活用して、エージェントは顧客の独自のニーズに合わせたパーソナライズされたマッサージの推奨事項を提供できます。最も適切なマッサージタイプ、期間、およびスパエクスペリエンスを向上させ、特定の懸念に対処する可能性のある追加サービスを提案できます。
たとえば、顧客が首の痛みと剛性に言及している場合、エージェントは知識ベースから引き出し、首と肩の領域に焦点を当てた深い組織マッサージを推奨し、リラクゼーションと筋肉の緩和を高めるために熱い石療法と組み合わせることができます。
AWSレベル:中間 - 200
前提条件:
?完了するための費用:
Repoをクローンします
git clone https://github.com/build-on-aws/bedrock-agent-appointment-manager-dynamodb
✅移動:
cd agent-appointment-manage
これらの手順に従ってこのデータを使用してAmzonの知識ベースを作成し、kb_data.jsonで「knowledge_base_id」値を編集します。
{
"description_kb": "Recommend the best massage. Recommend the best massage according to the user's preferences",
"knowledge_base_id": "XXXXXXXXXX"
}
∎仮想環境を作成する:readmeの手順に従うことにより
python3 -m venv .venv
source .venv/bin/activate
Windowsの場合:
.venvScriptsactivate.bat
corputions要件をインストールします。
pip install -r requirements.txt
cloud次のコマンドでクラウドフォーム化テンプレートを合成します。
cdk synth --all
deployment展開:
cdk deploy --all
Amazon Bedrockコンソールでエージェントを試して、最良の結果が見つかるまでエージェントの指示を改善してください。


このコードは、3種類のエージェントを構築するように設計されています。
構築されているエージェントのタイプは、agent_appointment_manager_stack.pyの130行で定義されています。各タイプのエージェントの構築は、知識ベースとアクショングループのJSON定義ファイルの存在に依存します。
if kb_data and not ag_data :
agent_name = "spa_agent_withKB"
print ( "KB data" )
agent_knowledge_base_property = create_kb_property ( kb_data )
ag = CreateAgentWithKB ( self , "agentwithkb" , agent_name , agent_data [ "foundation_model" ], agent_data [ "agent_instruction" ], agent_data [ "description" ], agent_knowledge_base_property , agent_resource_role . arn )
elif ag_data and not kb_data :
agent_name = "spa_agent_withag"
print ( "AG data" )
agent_action_group_properties = agent_action_group_property ( ag_data )
ag = CreateAgentWithAG ( self , "agentwithag" , agent_name , agent_data [ "foundation_model" ], agent_data [ "agent_instruction" ], agent_data [ "description" ], agent_action_group_properties , agent_resource_role . arn )
elif ag_data and kb_data :
agent_name = "spa_agent_with_ag_kb"
print ( "AG and KB data" )
agent_action_group_properties = agent_action_group_property ( ag_data )
agent_knowledge_base_property = create_kb_property ( kb_data )
ag = CreateAgentWithKA ( self , "agentwithbooth" , agent_name , agent_data [ "foundation_model" ], agent_data [ "agent_instruction" ], agent_data [ "description" ], agent_knowledge_base_property , agent_action_group_properties , agent_resource_role . arn )
else :
agent_name = "spa_agent"
print ( "No data" )
ag = CreateAgent ( self , "agent" , agent_name , agent_data [ "description" ], agent_resource_role . arn )このブログ投稿では、ユーザーが自然言語を使用してAmazon Dynamodbテーブルと対話できるようにするAmazon Bedrockの会話エージェントを作成する方法を学びました。
Bedrock、Dynamodb、およびNatural Language Processing Hrough Foundation Models(FMS)のエージェントの組み合わせは、ユーザーフレンドリーなアプリケーションを構築するためのエキサイティングな可能性を開きます。ユーザーは、プレーン言語を使用してデータベースと対話でき、非技術的なユーザーがデータにアクセスして操作しやすくすることができます。
特定の要件に基づいて、会話エージェントの機能をさらに調査し、拡張することをお勧めします。適切な設計と実装により、ユーザーがデータとの対話方法に革命をもたらすインテリジェントエージェントを作成できます。
この旅に参加していただきありがとうございます。この投稿が、Amazon Bedrockのエージェントを使用して独自の革新的なソリューションを作成するように促されたことを願っています。
詳細については、貢献を参照してください。
このライブラリは、MIT-0ライセンスに基づいてライセンスされています。ライセンスファイルを参照してください。