亞馬遜基岩的代理商使開發人員能夠創建通過基礎模型(FMS)理解自然語言的對話代理。在這篇博客文章中,我將創建一個亞馬遜基石代理商,該代理商允許用戶使用自然語言與Amazon DynamoDB表和Amazon Bedrock的知識庫進行交互。
我將指導您設置資源,定義代理的行動組,將AWS Lambda函數關聯以執行DynamoDB操作,並將知識庫集成以增強對話體驗,以提供對用戶查詢的更個性化和上下文感知的響應。使用AWS Cloud Development套件(CDK)使用“ CDK部署”命令所有這些。
最後,您將了解如何構建一個智能對話代理,該智能對話代理簡化數據庫交互,提供個性化的響應並提供用戶友好的體驗。

該代理充當用戶輸入信息並提出請求的接口。
用戶的操作觸發了基於操作組定義,代理可以幫助用戶執行三個關鍵操作的操作觸發AWS lambda函數:Spanappointment,Getappointment和AskTodayDate。
?動作組定義在ag_data.json和Amazon Bedrock定義在Agent_data.json中
Spanappointment和GetAppointment功能與Amazon DynamoDB表相互作用。它根據需要存儲並檢索約會數據。
AskTodayDate函數檢索當前日期信息,然後通過Amazon Bedrock的代理將其轉移回用戶。這使用戶可以接收有關其約會計劃操作的實時更新和確認。
利用存儲在知識庫中的信息,代理可以提供針對客戶獨特需求量身定制的個性化按摩建議。它可以建議最合適的按摩類型,持續時間和任何其他服務,以增強其水療經驗並解決其特定問題。
例如,如果客戶提到頸部疼痛和僵硬,則代理可以從知識庫中汲取靈感,並建議針對頸部和肩部區域的深層組織按摩,並結合熱石療法,以增加放鬆和肌肉的緩解。
AWS級別:中級-200
先決條件:
?完成費用:
✅克隆倉庫
git clone https://github.com/build-on-aws/bedrock-agent-appointment-manager-dynamodb
✅轉到:
cd agent-appointment-manage
通過遵循以下步驟並使用此數據來創建AMZON知識庫,然後在KB_DATA.JSON中編輯“ Inswards_base_id”值:
{
"description_kb": "Recommend the best massage. Recommend the best massage according to the user's preferences",
"knowledge_base_id": "XXXXXXXXXX"
}
✅創建虛擬環境:通過遵循redme中的步驟
python3 -m venv .venv
source .venv/bin/activate
對於Windows:
.venvScriptsactivate.bat
✅安裝要求:
pip install -r requirements.txt
✅通過以下命令合成雲形式模板:
cdk synth --all
✅部署:
cdk deploy --all
在亞馬遜基岩控制台中嘗試代理商,並改進代理商的說明,直到找到最佳結果為止。


該代碼旨在構建三種類型的代理:
構建的代理類型在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表進行交互。
BedRock,DynamoDB和自然語言處理的代理商的組合Hrough Foundation模型(FMS)為構建用戶友好的應用程序提供了令人興奮的可能性。用戶可以使用普通語言與數據庫進行交互,從而使非技術用戶更容易訪問和操縱數據。
我鼓勵您進一步探索並根據您的特定要求擴展對話代理的功能。有了正確的設計和實施,您可以創建智能代理,以徹底改變用戶與數據交互的方式。
感謝您加入我的旅程,我希望這篇文章啟發您使用Amazon Bedrock的代理商創建自己的創新解決方案。
有關更多信息,請參見貢獻。
該圖書館已獲得MIT-0許可證的許可。請參閱許可證文件。