View a markdown version of this page

存取和分析使用者收集的意見回饋 - AWS 上的生成式 AI 應用程式建置器

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

存取和分析使用者收集的意見回饋

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

使用者提供意見回饋後,意見回饋會存放在依使用案例 ID、年份和月份分割的 S3 儲存貯體中。您可以在部署儀表板中找到使用案例 ID,也可以在部署儀表板堆疊的回饋巢狀堆疊的輸出中找到回饋 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 的名稱 (包含所有對話和人工和 AI 訊息序列),而這些項目進一步用於擷取實際 userInputllmResponse。其他詳細資訊也會附加到此意見回饋記錄,例如 Bedrock 代理程式使用案例agentAliasIdagentIdmodelProvider,以及使用此組態的文字使用案例的 bedrockModelId、 等。如需如何存取此組態的詳細資訊,請參閱下面的自訂意見回饋映射一節。每個傳入的意見回饋請求都會儲存為 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 中的意見回饋記錄。

自訂意見回饋映射

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

分析意見回饋資料

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

使用 AWS Glue 和 Amazon Athena

AWS GlueAmazon Athena 提供無伺服器方法來編目、查詢和分析您的意見回饋資料。

AWS Glue 可讓您建立 AWS Glue 爬蟲程式,以檢查 S3 儲存貯體中的資料、推斷其結構描述,並記錄目錄中所有相關中繼資料。之後,Amazon Athena 之類的服務可用於查詢資料。

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

注意

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

使用解決方案的 CloudWatch Dashboards

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

描述使用案例 CloudWatch 儀表板

cloudwatch 使用案例儀表板

您也可以在此儀表板中建置其他小工具,或建立 Amazon Quick Sight 儀表板。

意見回饋資料分析的最佳實務

  • 在 S3 儲存貯體上實作資料生命週期政策,將較舊的意見回饋資料封存至成本較低的儲存層

  • 為每個使用案例建立個別分析,以識別特定模型的改善機會

  • 建立意見回饋閾值,在負面意見回饋超過可接受的層級時觸發提醒

  • 定期匯出重要洞見,以便與利益相關者和模型改進團隊共用