

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 存取和分析使用者收集的意見回饋
<a name="accessing-and-analyzing-user-collected-feedback"></a>

自 v3.0.0 起，部署儀表板會部署巢狀意見回饋堆疊，允許使用儀表板部署的文字和 Bedrock 代理程式使用案例，具有 LLM/代理程式產生之回應的意見回饋集合功能。特別是，使用者可以提供正面或負面的意見回饋，以及選用的評論。如果使用者提供負面意見回饋，他們可以進一步選取其中一個負面類別：「不正確」、「不完整或不足」、「有害」和/或「其他」。

使用者提供意見回饋後，意見回饋會存放在依使用案例 ID、年份和月份分割的 S3 儲存貯體中。您可以在部署儀表板中找到使用案例 ID，也可以在部署儀表板堆疊的回饋巢狀堆疊的輸出中找到回饋 S3 儲存貯體：

 **描述部署堆疊 - 尋找意見回饋儲存貯體名稱** 

![回饋儲存貯體輸出](http://docs.aws.amazon.com/zh_tw/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 的名稱 （包含所有對話和人工和 AI 訊息序列），而這些項目進一步用於擷取實際 `userInput`和 `llmResponse`。其他詳細資訊也會附加到此意見回饋記錄，例如 Bedrock 代理程式使用案例`agentAliasId`的 `agentId`和 `modelProvider`，以及使用此組態的文字使用案例的 `bedrockModelId`、 等。如需如何存取此組態的詳細資訊，請參閱下面的[自訂意見回饋映射](#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 代理程式使用案例， 或類似項目：

```
{
   "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`物件指定要新增至意見回饋 S3 儲存貯體中存放的意見回饋 JSON 記錄之所有其他欄位的 JSONPaths。例如，對於上述範例使用案例組態，CustomMappings 還會在以 `config`作為 `ScoreThreshold` JSONPaths 根目錄的 `CustomMappings` 物件中包含 `NumberOfDocs`和 JSONPaths。透過此組態，儲存在意見回饋 S3 儲存貯體中的每個 JSON 記錄將開始從已提供的欄位取得這 2 個額外值。

## 分析意見回饋資料
<a name="analyzing-feedback-data"></a>

意見回饋資料會以 JSON 物件的形式存放在 S3 中。以下是讓此意見回饋資料更易於存取和可行的一些方法：

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

 [AWS Glue](https://aws.amazon.com/glue) 和 [Amazon Athena](https://aws.amazon.com/athena) 提供無伺服器方法來編目、查詢和分析您的意見回饋資料。

AWS Glue 可讓您建立 [AWS Glue 爬蟲程式](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)，以檢查 S3 儲存貯體中的資料、推斷其結構描述，並記錄目錄中所有相關中繼資料。之後，Amazon Athena 之類的服務可用於查詢資料。

您可以參考 [AWS Athena 文件](https://docs.aws.amazon.com/athena/latest/ug/data-sources-glue.html)，了解使用 AWS Glue Data Catalog 將意見回饋 S3 儲存貯體與 Amazon Athena 連線的步驟。您也可以使用 Glue 一些更強大的功能，對此資料執行擷取轉換和載入 (ETL) 任務，並將其轉換為適合您分析或模型重新訓練使用案例的格式。使用 Glue，您可以執行一些操作，例如篩選具有特定意見回饋類型的記錄、填寫任何缺少的資訊，也可以將此資料載入另一個儲存位置，例如另一個 S3 儲存貯體或不同的 AWS 資料存放區。

**注意**  
根據您的使用案例，請考慮排定 Glue 爬蟲程式定期執行 （例如每週） 而不是每天執行，以最佳化成本，因為意見回饋資料可能很稀疏。

### 使用解決方案的 CloudWatch Dashboards
<a name="using-the-solutions-cloudwatch-dashboards"></a>

您也可以存取與 解決方案一起封裝的 **CloudWatch Dashboard**，以根據每個使用案例為您提供正面和負面意見回饋、負面意見回饋原因類別等趨勢。您可以在 AWS CloudWatch 主控台的 *Dashboards* 中，使用您的使用案例名稱來尋找此儀表板：

 **描述使用案例 CloudWatch 儀表板** 

![cloudwatch 使用案例儀表板](http://docs.aws.amazon.com/zh_tw/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 儲存貯體上**實作資料生命週期政策**，將較舊的意見回饋資料封存至成本較低的儲存層
+  **為每個使用案例建立個別分析**，以識別特定模型的改善機會
+  **建立意見回饋閾值**，在負面意見回饋超過可接受的層級時觸發提醒
+  定期**匯出重要洞見**，以便與利益相關者和模型改進團隊共用