亚马逊金融科技(FinTech)团队负责构建和运营系统,以管理不同司法管辖区的监管问询。这些团队处理来自监管机构的问询,每个问询都有不同的要求、文档格式和复杂程度。处理过程涉及审查文档、提取相关信息、从多个系统中检索支持数据,并在规定时间内完成回复。随着问询频率和业务复杂性的增加,亚马逊需要一种更具可扩展性的方法。
为了解决这些挑战,亚马逊金融科技团队利用 Amazon Bedrock、AWS Lambda 和其他 AWS 服务构建了一个智能监管响应自动化系统。该系统采用检索增强生成(RAG)架构,通过 Amazon Bedrock 知识库和 Amazon OpenSearch Serverless 进行向量存储,从而能够从数千份历史文档中高效检索信息。
知识库摄入流程提供自动化的文档处理管道。用户上传文档后,系统通过 API Gateway 触发 Lambda 函数生成预签名 URL,将文档上传至 S3。接着,文档处理 Lambda 函数调用 Amazon Bedrock 知识库,使用分层分块策略对文档内容进行分块,并通过 Amazon Titan Text Embeddings 生成嵌入向量,最后存储到 OpenSearch Serverless 中。这种分层策略非常适合结构化且复杂的金融文档,因为它既能精确检索小块内容,又能返回更大的父块以提供充分的上下文。
聊天应用部分提供实时对话界面,采用 AWS 无服务器架构和 WebSocket 连接。用户通过 WebSocket 提交问题,Chat Service Lambda 函数使用 Claude 3.5 Haiku 模型进行查询扩展,生成最多五个查询变体,然后并行调用知识库的 Retrieve API。检索结果结合 DynamoDB 中的对话历史,通过 Claude Sonnet 4.5 的 Converse Stream API 生成流式响应。响应以 Markdown 格式返回,并存储到 DynamoDB 中。
多轮对话方面,系统通过 Amazon Cognito 认证会话,并为每个会话分配唯一 ID。DynamoDB 按时间顺序存储消息,支持用户无缝恢复之前的对话。在每轮查询中,系统先进行输入清洗以防止提示注入,然后通过 LLM 判断查询是否需要知识库检索。对于知识密集型问题,采用查询扩展策略,并通过多线程并行检索将延迟从 10 秒降至 2 秒。最终通过 Amazon Bedrock Guardrails 过滤敏感信息,确保合规。
可观测性方面,Chat Service Lambda 集成了 OpenTelemetry,并将追踪数据发送到自托管的 Langfuse 实例。这提供了端到端的可见性,包括延迟、令牌使用、提示模板和模型响应。系统还检测模型幻觉和知识库中的过时指南,确保合规性和准确性。整体而言,该架构通过无服务器和事件驱动设计,实现了自动扩展和持续改进。