亚马逊基岩的代理商使开发人员能够创建通过基础模型(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许可证的许可。请参阅许可证文件。