View a markdown version of this page

访问和分析用户收集的反馈 - AWS 上的生成式人工智能应用程序构建者

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

访问和分析用户收集的反馈

从 v3.0.0 开始,部署仪表板部署了一个嵌套的反馈堆栈,该堆栈允许在仪表板上部署的 Text 和 Bedrock Agent 用例具有为其生成的响应收集反馈的功能。 LLM/Agent 特别是,用户可以提供正面或负面的反馈以及可选的评论。如果用户提供了负面反馈,他们可以进一步选择以下负面类别之一:“不准确”、“不完整或不足”、“有害”、“其他”。 and/or

用户提供反馈后,反馈将存储在 S3 存储桶中,按用例 ID、年份和月份进行分区。用例 ID 可以在部署控制面板中找到,Feedback S3 存储桶可以在部署控制面板堆栈的反馈嵌套堆栈的输出中找到:

描述部署堆栈-查找反馈存储桶名称

反馈桶输出

用户反馈以 API 请求的形式发送,其中包含最少的一组信息:

{ "useCaseRecordKey": "a1b2c3d4-e5f6g7h8", "conversationId": "12345678-1234-1234-1234-123456789012", "messageId": "87654321-4321-4321-4321-210987654321", "rephrasedQuery": "What are the key features of the Generative AI Application Builder on AWS?", "sourceDocuments": [ "s3://bucket-name/document1.pdf", "s3://bucket-name/document2.pdf" ], "feedback": "positive", "feedbackReason": [ "Incomplete or insufficient" ], "comment": "The response was helpful but could include more details about important features." }

然后,使用的 lambda 处理此有效负载useCaseRecordKey,用于识别部署时用例的正确配置。此配置用于获取反馈的具体细节,例如 ConversationTable姓名(包含所有对话以及人类和人工智能消息序列),这些信息进一步用于检索实际userInputllmResponse。此反馈记录中还附有其他详细信息,例如 Bedrock Agent 用例的和 modelProviderbedrockModelId,以及使用此配置的文本用例等。agentId agentAliasId有关如何访问此配置的详细信息,请参阅下面的自定义反馈映射部分。每个传入的反馈请求都存储为 JSON 对象,对于文本用例,示例反馈记录可能如下所示:

{ "useCaseId": "12345678-1234-1234-1234-123456789012", "useCaseRecordKey": "c07a2e3b-2f31b1e0", "userId": "22345678-1234-1234-1234-123456789012", "conversationId": "dd51de5d-5af1-4ec6-91d2-aadf14352109", "messageId": "32345678-1234-1234-1234-123456789012", "userInput": "What are its key features?", "rephrasedQuery": "What are the key features of the Generative AI Application Builder on AWS?", "llmResponse": "Generative AI Application Builder on AWS can help you build production ready enterprise chatbots rapidly.", "feedback": "negative", "feedbackReason": [ "Incomplete or insufficient" ], "comment": "The response was helpful but could include more details about important features.", "timestamp": "2025-05-22T18:48:08.340Z", "feedbackId": "42345678-1234-1234-1234-123456789012", "useCaseType": "Text", "modelProvider": "Bedrock", "bedrockModelId": "amazon.nova-lite-v1:0", "ragEnabled": "false" }

或者对于 Bedrock Agent 用例来说是这样的:

{ "useCaseId": "12345678-1234-1234-1234-123456789012", "useCaseRecordKey": "c07a2e3b-2f31b1e0", "userId": "22345678-1234-1234-1234-123456789012", "conversationId": "dd51de5d-5af1-4ec6-91d2-aadf14352109", "messageId": "32345678-1234-1234-1234-123456789012", "userInput": "What are its key features?", "llmResponse": "Generative AI Application Builder on AWS can help you build production ready enterprise chatbots rapidly.", "feedback": "negative", "feedbackReason": [ "Incomplete or insufficient" ], "comment": "The response was helpful but could include more details about important features.", "timestamp": "2025-05-22T18:48:08.340Z", "feedbackId": "42345678-1234-1234-1234-123456789012", "useCaseType": "Agent", "agentId": "AHFXUJCAK1", "agentAliasId": "KSEDKOS0BL" }

然后,该反馈可用于进一步处理、分析和建模再训练/反馈回路。您还可以添加自定义映射以增强存储在反馈 lambda 中的反馈记录。

自定义反馈映射

部署仪表板包含一个LLMConfigTable,该密钥可以在部署仪表板堆栈的堆栈输出中找到LLMConfigTableNameLLMConfigTable包含每个用例的配置,这些配置基于管理员在通过 “部署控制面板” 向导部署用例时选择的设置。每个用例配置都由其标识。useCaseRecordKey以下是用例配置记录的示例:LLMConfigTable

{ "key": "2dd76cfa-bc1a14da", "config": { "ConversationMemoryParams": { ... }, "FeedbackParams": { "CustomMappings": { "NumberOfDocs": "$.KnowledgeBaseParams.NumberOfDocs", "ScoreThreshold": "$.KnowledgeBaseParams.ScoreThreshold" }, "FeedbackEnabled": true }, "IsInternalUser": "true", "KnowledgeBaseParams": { "KendraKnowledgeBaseParams": { "ExistingKendraIndexId": "d2831033-667f-4539-ab28-e6c7c7c5988b", "RoleBasedAccessControlEnabled": false }, "KnowledgeBaseType": "Kendra", "NumberOfDocs": 5, "ReturnSourceDocs": false, "ScoreThreshold": 0.3 }, "LlmParams": { "BedrockLlmParams": { "BedrockInferenceType": "QUICK_START", "ModelId": "amazon.nova-lite-v1:0" }, "ModelParams": {}, "ModelProvider": "Bedrock", "PromptParams": { ... }, "RAGEnabled": true, "Streaming": false, "Temperature": 0.1, "Verbose": false }, "UseCaseName": "test-rag-usecase", "UseCaseType": "Text" } }

如果为用例启用了反馈,则此配置将包含一个FeedbackParams对象,该对象允许其中的CustomMappings对象 JSONPaths 为所有其他字段指定要添加到存储在反馈 S3 存储桶中的反馈 JSON 记录中。例如,对于上面的示例用例配置,在以ScoreThreshold JSONPaths 根开头的CustomMappingsconfig对象中 CustomMappings 包含NumberOfDocs和。 JSONPath使用此配置,除了已经提供的字段外,存储在反馈 S3 存储桶中的每条 JSON 记录都将开始获取这 2 个额外值。

分析反馈数据

反馈数据作为 JSON 对象存储在 S3 中。以下是一些使反馈数据更易于访问和可操作的方法:

使用 AWS Glue 和亚马逊 Athena

AWS Glu e 和 Amazon Athena 提供了一种无服务器方式来对您的反馈数据进行分类、查询和分析。

AWS Glue 允许您创建 AWS Glue 爬虫来检查 S3 存储桶中的数据,推断其架构,并将所有相关元数据记录在目录中。之后,可以使用诸如Amazon Athena之类的服务来查询数据。

您可以参阅 AWS Athena 文档,了解使用 A WS Glue 数据目录将反馈 S3 存储桶与亚马逊 Athena 连接起来的步骤。您还可以使用 Glue 的一些更强大的功能对这些数据执行提取转换和加载 (ETL) 作业,并将其转换为适合您的分析或模型再训练用例的格式。使用 Glue,您可以执行诸如筛选具有特定反馈类型的记录、填写任何缺失信息之类的操作,还可以将这些数据加载到其他存储位置,例如另一个 S3 存储桶或其他 AWS 数据存储。

注意

根据您的用例,可以考虑将 Glue 爬虫安排为定期(例如每周)运行,而不是每晚运行,以优化成本,因为反馈数据可能很少。

使用解决方案的 CloudWatch 仪表板

您还可以访问包含解决方案的控制面板,该CloudWatch 仪表板可以根据每个用例为您提供正面和负面反馈、负面反馈原因类别等的趋势。您可以在 AWS CloudWatch 控制台内的控制面板中使用您的用例名称找到此控制面板

描绘用例仪表板 CloudWatch

cloudwatch 用例仪表板

您还可以在此控制面板中构建其他小组件或创建 Amazon Quick Sight 控制面板。

反馈数据分析的最佳实践

  • 在 S3 存储桶上@@ 实施数据生命周期策略,将较旧的反馈数据存档到成本较低的存储层

  • 为每个用例创建单独的分析,以确定特定于模型的改进机会

  • 建立反馈阈值,以便在负面反馈超过可接受水平时触发警报

  • 定期@@ 导出关键见解,以便与利益相关者和模型改进团队共享