本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用会话管理 API 存储和检索对话历史记录及上下文
注意
会话管理 API 是预览版,可能会进行更改。
借助会话管理 API,您能够在使用开源框架(例如 LangGraph 和 LlamaIndex)构建的生成式人工智能应用程序中,保存正在进行的对话的检查点。您可以使用 API,在多步骤生成式人工智能工作流中安全地管理状态和对话上下文。您不必为了实现状态和上下文持久性而构建、维护或扩展自定义后端解决方案。
使用会话管理 API,您可以执行以下操作:
-
检查迭代测试和人机协同工作流的工作流阶段。
-
从中断点恢复对话和任务。
-
查看会话日志来分析工作流阶段和调试故障。
由于会话是 Amazon Bedrock 中的资源,因此您可以使用 AWS Identity and Access Management(IAM)控制对会话的访问权限。默认情况下,Amazon Bedrock 使用 AWS 托管式密钥进行会话加密,包括会话元数据,您也可以使用自己的 AWS KMS 密钥。有关更多信息,请参阅 会话加密。
您可以使用 Amazon Bedrock API 或 AWS SDK 创建和管理 Amazon Bedrock 会话。对于基于 LangGraph 构建的应用程序,您可以使用 langgraph_checkpoint_aws.saver 库中的 BedrockSessionSaver 类。这是 LangGraph CheckpointSaver 的自定义实施。有关更多信息,请参阅 LangChain
注意
您可以使用会话,存储通过开源框架构建的生成式人工智能应用程序的状态和对话历史记录。对于 Amazon Bedrock 代理,该服务会自动管理对话上下文,并将其与您在 InvokeAgent API 操作中指定的代理特定的 sessionId 相关联。
主题
使用案例示例
您可能有一个应用程序,使用 LangGraph 代理来帮助客户规划旅行行程。用户可以启动与该代理的对话,为即将到来的旅行创建行程,添加目的地、偏好的酒店和航班详细信息。
通过会话管理 API,代理可以保存不断扩展的多步骤交互中的中间状态和持久上下文。添加各个目的地后,代理可以使用 Amazon Bedrock 会话来检查其状态,保留有关客户偏好的详细信息。
如果对话中断或失败,代理可以稍后在上下文(包括文本和图像)保持不变的情况下恢复会话。这使得代理可以继续工作,而无需客户重复提供信息。此外,遇到故障时,您可以调查会话详细信息,对造成问题的原因进行调试。
工作流
使用会话管理 API 的工作流如下。有关使用 BedrockSessionSaver 库的信息,请参阅使用 BedrockSessionSaver LangGraph 库管理会话。
-
创建会话 – 当最终用户首次启动对话时,您可以使用 CreateSession API 操作创建会话,并为该会话指定 ID。在存储和检索对话状态时,您可以使用此 ID。
-
存储对话和上下文 – 当最终用户与您的生成式人工智能助手交互时,请使用 CreateInvocation API 在会话中创建一组交互。对于每个调用,使用 PutInvocationStep API 操作为每次交互存储细粒度的状态检查点,包括文本和图像。
-
检索对话历史记录和上下文:使用 GetSession、ListInvocations 和 GetInvocationStep API 操作检索会话元数据和交互详细信息。
-
结束会话:会话完成后,使用 EndSession API 操作结束会话。结束会话后,您仍然可以访问其内容,但不能添加内容。要删除会话及其内容,请使用 DeleteSession API 操作。
注意事项
在创建和管理会话之前,请注意以下事项:
-
您可以使用 Amazon Bedrock API 及 AWS SDK 创建和管理会话。您无法使用 AWS 管理控制台来管理会话。
-
对于基于 LangGraph 构建的代理应用程序,您可以使用
langchain-aws库中的BedrockSessionSaver类。这是 LangGraph CheckpointSaver 的自定义实施。有关使用 BedrockSessionSaver 库的信息,请参阅使用 BedrockSessionSaver LangGraph 库管理会话。要直接查看代码,请参阅 LangChainGitHub 存储库中的 langgraph-checkpoint-aws 。 -
如果您在创建会话时指定了客户自主管理型 AWS KMS 密钥,则创建会话的用户或角色必须有权使用该密钥。有关更多信息,请参阅 会话加密。
-
会话管理 API 具有以下配额:
-
一个会话中所有调用的调用步骤数:1000
-
每个调用步骤的最大大小:50 MB
-
空闲会话超时:1 小时
-
保留期:会话数据将在 30 天后自动删除
-