

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

# 访问和分析用户收集的反馈
<a name="accessing-and-analyzing-user-collected-feedback"></a>

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

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

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

![反馈桶输出](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/feedback-bucket-output.png)


用户反馈以 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姓名（包含所有对话以及人类和人工智能消息序列），这些信息进一步用于检索实际`userInput`和`llmResponse`。此反馈记录中还附有其他详细信息，例如 Bedrock Agent 用例的和 `modelProvider``bedrockModelId`，以及使用此配置的文本用例等。`agentId` `agentAliasId`有关如何访问此配置的详细信息，请参阅下面的[自定义反馈映射](#custom-feedback-mappings)部分。每个传入的反馈请求都存储为 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 中的反馈记录。

## 自定义反馈映射
<a name="custom-feedback-mappings"></a>

部署仪表板包含一个`LLMConfigTable`，该密钥可以在部署仪表板堆栈的堆栈输出中找到`LLMConfigTableName`。 `LLMConfigTable`包含每个用例的配置，这些配置基于管理员在通过 “部署控制面板” 向导部署用例时选择的设置。每个用例配置都由其标识。`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 根开头的`CustomMappings``config`对象中 CustomMappings 包含`NumberOfDocs`和。 JSONPath使用此配置，除了已经提供的字段外，存储在反馈 S3 存储桶中的每条 JSON 记录都将开始获取这 2 个额外值。

## 分析反馈数据
<a name="analyzing-feedback-data"></a>

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

### 使用 AWS Glue 和亚马逊 Athena
<a name="using-aws-glue-and-amazon-athena"></a>

 [AWS Glu](https://aws.amazon.com/glue) [e 和 Amazon](https://aws.amazon.com/athena) Athena 提供了一种无服务器方式来对您的反馈数据进行分类、查询和分析。

AWS Glue 允许您创建 [AWS Glue 爬虫](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)来检查 S3 存储桶中的数据，推断其架构，并将所有相关元数据记录在目录中。之后，可以使用诸如Amazon Athena之类的服务来查询数据。

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

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

### 使用解决方案的 CloudWatch 仪表板
<a name="using-the-solutions-cloudwatch-dashboards"></a>

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

 **描绘用例仪表板 CloudWatch ** 

![cloudwatch 用例仪表板](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/cloudwatch-usecase-dashboard.png)


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

### 反馈数据分析的最佳实践
<a name="best-practices-for-feedback-data-analysis"></a>
+  在 S3 存储桶上@@ **实施数据生命周期策略**，将较旧的反馈数据存档到成本较低的存储层
+  **为每个用例创建单独的分析**，以确定特定于模型的改进机会
+  **建立反馈阈值**，以便在负面反馈超过可接受水平时触发警报
+  定期@@ **导出关键见解**，以便与利益相关者和模型改进团队共享