View a markdown version of this page

Accès et analyse des commentaires collectés par les utilisateurs - Générateur d'applications d'IA générative sur AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accès et analyse des commentaires collectés par les utilisateurs

Depuis la version 3.0.0, le tableau de bord de déploiement déploie une pile de commentaires imbriquée qui permet aux cas d'utilisation des agents Text et Bedrock déployés avec le tableau de bord de disposer de la fonctionnalité de collecte de commentaires pour les réponses qu'il génère. LLM/Agent En particulier, les utilisateurs peuvent fournir un feedback positif ou négatif ainsi qu'un commentaire facultatif. Si l'utilisateur fournit un commentaire négatif, il peut ensuite sélectionner l'une des catégories négatives suivantes : « Inexact », « Incomplet ou insuffisant », « Nuisible », « Autre ». and/or

Une fois que l'utilisateur a fourni les commentaires, ceux-ci sont stockés dans un compartiment S3 partitionné par ID de cas d'utilisation, année et mois. L'ID de cas d'utilisation se trouve dans le tableau de bord de déploiement et le compartiment Feedback S3 se trouve dans les sorties de la pile imbriquée de commentaires de la pile du tableau de bord de déploiement :

Représente la pile de déploiement : recherche du nom du compartiment de commentaires

sortie du godet de rétroaction

Les commentaires des utilisateurs sont envoyés sous forme de demande d'API contenant un ensemble minimal d'informations :

{ "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." }

Cette charge utile est ensuite traitée par un lambda à l'aide du useCaseRecordKey qui identifie la configuration correcte d'un cas d'utilisation au moment du déploiement. Cette configuration est utilisée pour obtenir des détails spécifiques sur le feedback, tels que le nom ConversationTable du et (contient toutes les conversations et les séquences de messages humains et IA), qui est ensuite utilisé pour récupérer le véritable userInput etllmResponse. Des détails supplémentaires sont également joints à cet enregistrement de commentaires, tels que le cas agentId et agentAliasId pour un cas d'utilisation de Bedrock Agent, et, etc. modelProviderbedrockModelId, pour un cas d'utilisation de type Text utilisant cette configuration. Pour plus de détails sur la façon d'accéder à cette configuration, consultez la section Mappages de commentaires personnalisés ci-dessous. Chaque demande de feedback entrante est stockée sous forme d'objet JSON et un exemple d'enregistrement de feedback peut ressembler à ceci pour un cas d'utilisation de type Text :

{ "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" }

ou comme ceci pour un cas d'utilisation de 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" }

Ce feedback peut ensuite être utilisé pour un traitement ultérieur, une analyse et une modélisation des boucles de réentraînement/de feedback. Vous pouvez également ajouter des mappages personnalisés pour améliorer l'enregistrement des commentaires stocké dans le lambda des commentaires.

Mappages de commentaires personnalisés

Le tableau de bord de déploiement contient un LLMConfigTable qui se trouve dans les sorties de la pile du tableau de bord de déploiement avec la cléLLMConfigTableName. LLMConfigTablecontient les configurations pour chaque cas d'utilisation en fonction des paramètres sélectionnés par l'administrateur lors du déploiement du cas d'utilisation via l'assistant du tableau de bord de déploiement. Chaque configuration de cas d'utilisation est identifiée par son. useCaseRecordKey Voici un exemple d'enregistrement de configuration de cas d'utilisation dans le : 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" } }

Si le feedback est activé pour un cas d'utilisation, cette configuration contiendra un FeedbackParams objet dans lequel un CustomMappings objet peut spécifier tous les champs supplémentaires JSONPaths à ajouter à l'enregistrement JSON de feedback stocké dans le compartiment de feedback S3. Par exemple, pour l'exemple de configuration de cas d'utilisation ci-dessus, le CustomMappings contient NumberOfDocs et ScoreThreshold JSONPaths en plus dans l'CustomMappingsobjet qui commencent config par la racine du. JSONPath Avec cette configuration, chaque enregistrement JSON stocké dans le compartiment S3 de feedback commencera à obtenir ces 2 valeurs supplémentaires en plus des champs déjà fournis.

Analyse des données de feedback

Les données de feedback sont stockées dans S3 sous forme d'objets JSON. Voici quelques approches pour rendre ces données de feedback plus accessibles et exploitables :

Utilisation d'AWS Glue et d'Amazon Athena

AWS Glue et Amazon Athena fournissent un moyen sans serveur de cataloguer, d'interroger et d'analyser les données de vos commentaires.

AWS Glue vous permet de créer un robot d'exploration AWS Glue qui inspecte les données d'un compartiment S3, en déduit le schéma et enregistre toutes les métadonnées pertinentes dans un catalogue. Après cela, des services tels qu'Amazon Athena peuvent être utilisés pour interroger les données.

Vous pouvez consulter la documentation AWS Athena pour connaître les étapes à suivre pour connecter le compartiment S3 de commentaires à Amazon Athena à l'aide d'AWS Glue Data Catalog. Vous pouvez également utiliser certaines des fonctionnalités les plus puissantes de Glue pour effectuer des tâches d'extraction, de transformation et de chargement (ETL) sur ces données et les transformer dans un format adapté à vos analyses ou à vos cas d'utilisation de reconversion de modèles. Avec Glue, vous pouvez effectuer des opérations telles que le filtrage des enregistrements avec certains types de commentaires, le remplissage des informations manquantes, et vous pouvez également charger ces données dans un autre emplacement de stockage tel qu'un autre compartiment S3 ou un autre magasin de données AWS.

Note

En fonction de votre cas d'utilisation, pensez à programmer le crawler Glue pour qu'il s'exécute périodiquement (par exemple, chaque semaine) plutôt que tous les soirs afin d'optimiser les coûts, car les données de feedback peuvent être rares.

Utilisation des tableaux de CloudWatch bord de la solution

Vous avez également accès à un CloudWatch tableau de bord fourni avec la solution qui peut vous fournir des tendances en matière de commentaires positifs et négatifs, de catégories de raisons de commentaires négatifs, etc., par cas d'utilisation. Vous pouvez trouver ce tableau de bord sous le nom de votre cas d'utilisation dans la section Tableaux de bord de la console AWS : CloudWatch

Représente le tableau de bord Usecase CloudWatch

tableau de bord des cas d'utilisation de Cloudwatch

Vous pouvez également créer des widgets supplémentaires dans ce tableau de bord ou créer des tableaux de bord Amazon Quick Sight.

Meilleures pratiques pour l'analyse des données de feedback

  • Mettez en œuvre des politiques de cycle de vie des données dans votre compartiment S3 afin d'archiver les anciennes données de feedback vers des niveaux de stockage moins coûteux

  • Créez une analyse distincte pour chaque cas d'utilisation afin d'identifier les opportunités d'amélioration spécifiques au modèle

  • Établissez des seuils de feedback qui déclenchent des alertes lorsque les commentaires négatifs dépassent les niveaux acceptables

  • Exportez régulièrement des informations critiques pour les partager avec les parties prenantes et les équipes d'amélioration des modèles