View a markdown version of this page

Configuration et personnalisation des requêtes pour les bases de connaissances gérées - Amazon Bedrock

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.

Configuration et personnalisation des requêtes pour les bases de connaissances gérées

Vous pouvez configurer et personnaliser la récupération, améliorant ainsi la pertinence des résultats. Par exemple, vous pouvez appliquer des filtres aux métadonnées des documents afin fields/attributes d'utiliser les documents les plus récemment mis à jour ou les documents dont la date de modification est récente.

Note

Toutes les configurations suivantes ne s'appliquent qu'aux sources de données non structurées.

Pour plus d’informations sur ces configurations dans la console ou l’API, sélectionnez l’une des rubriques suivantes :

Lorsque vous interrogez une base de connaissances, Amazon Bedrock renvoie par défaut jusqu’à cinq résultats dans la réponse. Chaque résultat correspond à un segment source.

Note

Le nombre réel de résultats dans la réponse peut être inférieur à la valeur numberOfResults spécifiée, car ce paramètre définit le nombre maximum de résultats à renvoyer. Si vous avez configuré le découpage hiérarchique pour votre stratégie de segmentation, le paramètre numberOfResults correspond au nombre de segments enfants que la base de connaissances extraira. Étant donné que les segments enfants qui partagent le même segment parent sont remplacés par le segment parent dans la réponse finale, le nombre de résultats renvoyés peut être inférieur au montant demandé.

Pour modifier le nombre maximum de résultats à renvoyer, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

Console

Suivez les étapes de la console décrites dans Interrogation d’une base de connaissances et extraction des données. Dans le volet Configurations, développez la section Segments sources et entrez le nombre maximum de segments sources à renvoyer.

API

Lorsque vous faites une RetrieveAndGenerate demande Retrieve ou, incluez un retrievalConfiguration champ mappé à un KnowledgeBaseRetrievalConfiguration objet. Pour connaître l'emplacement de ce champ, reportez-vous aux corps de RetrieveAndGenerate requête Retrieve et dans la référence de l'API.

L'objet JSON suivant indique les champs minimaux requis dans l'KnowledgeBaseRetrievalConfigurationobjet pour définir le nombre maximum de résultats à renvoyer :

"retrievalConfiguration": { "vectorSearchConfiguration": { "numberOfResults": number } }

Spécifiez le nombre maximum de résultats récupérés (voir le numberOfResults champ KnowledgeBaseRetrievalConfiguration pour la plage de valeurs acceptées) à renvoyer dans le numberOfResults champ.

Vous pouvez appliquer des filtres fields/attributes au document pour améliorer encore la pertinence des réponses. Vos sources de données peuvent inclure des métadonnées attributes/fields de document sur lesquelles filtrer et peuvent spécifier les champs à inclure dans les intégrations.

Considérations relatives à la base de connaissances gérée

Lorsque vous utilisez le filtrage des métadonnées avec une base de connaissances gérée :

  • Les filtres startsWith de stringContains métadonnées et ne sont pas pris en charge. Utilisez equals plutôt greaterThan les notIn opérateurs lessThanin,, ou.

  • Les opérateurs de plage (greaterThan, greaterThanOrEqualslessThan, etlessThanOrEquals) acceptent soit un nombre, soit une valeur date-heure. Pour filtrer en fonction d'une date-heure, fournissez la valeur sous forme de chaîne au format date-heure ISO-8601 décalé. Utilisez le formulaire offset complet, par exemple2026-03-02T19:02:18Z. Les opérateurs de plage prennent en charge les valeurs de chaîne date-heure uniquement pour les bases de connaissances gérées.

  • Pour les bases de connaissances personnalisées, les champs de métadonnées préfixés par x-amz-bedrock sont réservés par le service. Pour les bases de connaissances entièrement gérées, les champs de métadonnées réservés utilisent un préfixe de soulignement (par exemple_source_uri,_data_source_id). Vous ne pouvez pas remplacer les champs de métadonnées réservés dans aucun type de base de connaissances.

Par exemple, « epoch_modification_time » représente le temps en secondes écoulé depuis le 1er janvier 1970 (UTC), date à laquelle le document a été mis à jour pour la dernière fois. Vous pouvez filtrer les données en fonction des plus récentes, pour lesquelles « epoch_modification_time » est supérieur à un certain nombre. Ces documents les plus récents peuvent être utilisés pour la requête.

Pour utiliser des filtres lorsque vous interrogez une base de connaissances, vérifiez que celle-ci répond aux exigences suivantes :

  • Lorsque vous configurez votre connecteur de source de données, la plupart des connecteurs explorent les principaux champs de métadonnées de vos documents. Si vous utilisez un compartiment Amazon S3 comme source de données, le compartiment doit inclure au moins un fileName.extension.metadata.json pour le fichier ou le document auquel il est associé. Consultez Champs de métadonnées du document dans Configuration de la connexion pour plus d’informations sur la configuration du fichier de métadonnées.

  • Si l'index vectoriel de votre base de connaissances se trouve dans une boutique vectorielle Amazon OpenSearch Serverless, vérifiez que l'index vectoriel est configuré avec le faiss moteur. Si l’index vectoriel est configuré avec le moteur nmslib, vous devrez effectuer l’une des opérations suivantes :

  • Si votre base de connaissances utilise un index vectoriel dans un compartiment vectoriel S3, vous ne pouvez pas utiliser les filtres startsWith et stringContains.

  • Si vous ajoutez des métadonnées à un index vectoriel existant dans un cluster de bases de données Amazon Aurora, nous vous recommandons de fournir le nom de champ de la colonne de métadonnées personnalisée afin de stocker toutes vos métadonnées dans une seule colonne. Lors de l’ingestion de données, cette colonne sera utilisée pour remplir toutes les informations contenues dans vos fichiers de métadonnées à partir de vos sources de données. Si vous choisissez de remplir ce champ, vous devez créer un index sur cette colonne.

    • Lorsque vous créez une nouvelle base de connaissances dans la console et que vous laissez Amazon Bedrock configurer votre base de données Amazon Aurora, il crée automatiquement une colonne unique pour vous et la remplit avec les informations de vos fichiers de métadonnées.

    • Lorsque vous choisissez de créer un autre index vectoriel dans le magasin de vecteurs, vous devez fournir le nom du champ de métadonnées personnalisé pour stocker les informations de vos fichiers de métadonnées. Si vous ne fournissez pas ce nom de champ, vous devez créer une colonne pour chaque attribut de métadonnées de vos fichiers et spécifier le type de données (texte, nombre ou booléen). Par exemple, si l’attribut genre existe dans votre source de données, vous devez ajouter une colonne nommée genre et spécifier text comme type de données. Pendant l’ingestion, ces colonnes distinctes seront remplies avec les valeurs d’attribut correspondantes.

Si votre source de données contient des documents PDF et que vous utilisez Amazon OpenSearch Serverless ou Amazon Aurora pour votre boutique vectorielle, les bases de connaissances Amazon Bedrock généreront les numéros de page des documents et les stockeront dans des métadonnées field/attribute appelées x-amz-bedrock-kb-document-page-number. Notez que les numéros de page enregistrés dans un champ de métadonnées ne sont pas pris en charge si vous choisissez de ne pas segmenter vos documents.

Vous pouvez utiliser les opérateurs de filtrage suivants pour filtrer les résultats lorsque vous interrogez les éléments suivants :

Opérateurs de filtrage
Opérateur Console Nom du filtre d’API Types de données d’attribut pris en charge Résultats filtrés
Égal à = equals chaîne, nombre, booléen L'attribut correspond à la valeur que vous fournissez
Non égal à != notEquals chaîne, nombre, booléen L’attribut ne correspond pas à la valeur que vous fournissez
Supérieur à > Plus grand que number L’attribut est supérieur à la valeur que vous fournissez
Supérieur ou égal à >= plus grand ThanOrEquals number L’attribut est supérieur ou égal à la valeur que vous fournissez
Inférieur à < Inférieur à number L’attribut est inférieur à la valeur que vous fournissez
Inférieur ou égal à <= moins ThanOrEquals number L’attribut est inférieur ou égal à la valeur que vous fournissez
Dans : in liste de chaînes L'attribut se trouve dans la liste que vous fournissez (actuellement, il est préférable de le prendre en charge avec les magasins OpenSearch vectoriels Amazon Serverless et Neptune Analytics GraphRag)
Pas dans !: Pas dans liste de chaînes L'attribut ne figure pas dans la liste que vous fournissez (actuellement, il est préférable de le prendre en charge avec les boutiques OpenSearch vectorielles Amazon Serverless et Neptune Analytics GraphRag)
La chaîne contient Non disponible stringContains chaîne L’attribut doit être une chaîne. Le nom de l'attribut correspond à la clé et dont la valeur est une chaîne contenant la valeur que vous avez fournie en tant que sous-chaîne, ou une liste dont un membre contient la valeur que vous avez fournie en tant que sous-chaîne (actuellement, il est préférable de le prendre en charge avec la boutique vectorielle Amazon OpenSearch Serverless). Le magasin vectoriel GraphRag de Neptune Analytics prend en charge la variante de chaîne (mais pas la variante de liste de ce filtre).
La liste contient Non disponible listContains chaîne L’attribut doit être une liste de chaînes. Le nom de l'attribut correspond à la clé et sa valeur est une liste contenant la valeur que vous avez fournie en tant que membre (actuellement, il est préférable de prendre en charge les boutiques vectorielles Amazon OpenSearch Serverless).

Pour combiner les opérateurs de filtrage, vous pouvez utiliser les opérateurs logiques suivants :

Opérateurs logiques
Opérateur Console Nom de champ de filtre d’API Résultats filtrés
Et and andAll Les résultats répondent à toutes les expressions de filtrage du groupe
Or or orAll Les résultats répondent à au moins toutes les expressions de filtrage du groupe

Pour apprendre à filtrer les résultats à l’aide de métadonnées, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

Console

Suivez les étapes de la console décrites dans Interrogation d’une base de connaissances et extraction des données. Lorsque vous ouvrez le volet Configurations, vous verrez une section Filtres. Les procédures suivantes décrivent différents cas d’utilisation :

  • Pour ajouter un filtre, créez une expression de filtrage en saisissant un attribut de métadonnées, un opérateur de filtrage et une valeur dans le champ. Séparez chaque partie de l’expression par un espace. Appuyez sur Entrée pour ajouter le filtre.

    Pour obtenir la liste des opérateurs de filtrage acceptés, consultez le tableau Opérateurs de filtrage ci-dessus. Vous pouvez également voir une liste d’opérateurs de filtrage lorsque vous ajoutez un espace après l’attribut de métadonnées.

    Note

    Vous devez placer les chaînes entre guillemets.

    Par exemple, vous pouvez filtrer les résultats des documents source contenant un attribut de métadonnées genre dont la valeur est "entertainment" en ajoutant le filtre suivant : genre = "entertainment".

    Ajoutez un filtre.
  • Pour ajouter un autre filtre, entrez une autre expression de filtrage dans le champ et appuyez sur Entrée. Vous pouvez ajouter jusqu’à 5 filtres au groupe.

    Ajoutez un autre filtre.
  • Par défaut, la requête renvoie des résultats qui répondent à toutes les expressions de filtrage que vous fournissez. Pour renvoyer des résultats qui répondent à au moins une des expressions de filtrage, choisissez le menu déroulant et entre deux opérations de filtrage, puis sélectionnez ou.

    Modifiez l’opération logique entre les filtres.
  • Pour combiner différents opérateurs logiques, sélectionnez + Ajouter un groupe pour ajouter un groupe de filtres. Entrez les expressions de filtrage dans le nouveau groupe. Vous pouvez ajouter jusqu’à 5 groupes de filtres.

    Ajoutez un groupe de filtres pour combiner différents opérateurs logiques.
  • Pour modifier l’opérateur logique utilisé entre tous les groupes de filtrage, choisissez le menu déroulant ET entre deux groupes de filtres et sélectionnez OU.

    Modifiez l’opération logique entre les groupes de filtres.
  • Pour modifier un filtre, sélectionnez-le, modifiez l’opération de filtrage, puis choisissez Appliquer.

    Modifiez un filtre.
  • Pour supprimer un groupe de filtres, cliquez sur l’icône de corbeille ( Trash can icon representing a delete action. ) en regard du groupe. Pour supprimer un filtre, choisissez l’icône de suppression ( Close or cancel icon represented by an "X" symbol. ) en regard du filtre.

    Supprimez un filtre ou un groupe de filtres.

L’image suivante montre un exemple de configuration de filtre qui renvoie tous les documents écrits après 2018 dont le genre est "entertainment", en plus des documents dont le genre est "cooking" ou "sports" et dont l’auteur commence par "C".

Exemple de configuration de filtre.
API

Lorsque vous faites une RetrieveAndGenerate demande Retrieve ou, incluez un retrievalConfiguration champ mappé à un KnowledgeBaseRetrievalConfiguration objet. Pour connaître l'emplacement de ce champ, reportez-vous aux corps de RetrieveAndGenerate requête Retrieve et dans la référence de l'API.

Les objets JSON suivants indiquent les champs minimaux requis dans l'KnowledgeBaseRetrievalConfigurationobjet pour définir des filtres pour différents cas d'utilisation :

  1. Utilisez un opérateur de filtrage (consultez le tableau des Opérateurs de filtrage ci-dessus).

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] } } } }
  2. Utilisez un opérateur logique (consultez le tableau Opérateurs logiques ci-dessus) pour en combiner jusqu’à 5.

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ] } } }
  3. Utilisez un opérateur logique pour combiner jusqu’à 5 opérateurs de filtrage dans un groupe de filtres, et un second opérateur logique pour combiner ce groupe de filtres avec un autre opérateur de filtrage.

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ], "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] } ] } } }
  4. Combinez jusqu’à 5 groupes de filtres en les intégrant dans un autre opérateur logique. Vous pouvez créer un niveau d’intégration.

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ], "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ] ] } } }

Le tableau suivant décrit les types de filtre que vous pouvez utiliser :

Champ Types de données de valeur pris en charge Résultats filtrés
equals chaîne, nombre, booléen L'attribut correspond à la valeur que vous fournissez
notEquals chaîne, nombre, booléen L’attribut ne correspond pas à la valeur que vous fournissez
greaterThan number L’attribut est supérieur à la valeur que vous fournissez
greaterThanOrEquals number L’attribut est supérieur ou égal à la valeur que vous fournissez
lessThan number L’attribut est inférieur à la valeur que vous fournissez
lessThanOrEquals number L’attribut est inférieur ou égal à la valeur que vous fournissez
in liste de chaînes L’attribut se trouve dans la liste que vous fournissez
notIn liste de chaînes L’attribut ne se trouve pas dans la liste que vous fournissez
startsWith chaîne L'attribut commence par la chaîne que vous fournissez (prise en charge uniquement pour les boutiques vectorielles Amazon OpenSearch Serverless)

Pour combiner les types de filtre, vous pouvez utiliser l’un des opérateurs logiques suivants :

Champ Est mappé à Résultats filtrés
andAll Liste de 5 types de filtres au maximum Les résultats répondent à toutes les expressions de filtrage du groupe
orAll Liste de 5 types de filtres au maximum Les résultats répondent à au moins toutes les expressions de filtrage du groupe

Pour des exemples, voir Envoyer une requête et inclure des filtres (Extraire) et Envoyer une requête et inclure des filtres (RetrieveAndGenerate).

Vous pouvez mettre en œuvre des mesures de protection pour votre base de connaissances, vos cas d’utilisation et les politiques d’IA responsables. Vous pouvez créer plusieurs barrières de protection adaptées à différents cas d’utilisation et les appliquer à de multiples conditions de demande et de réponse, afin d’offrir une expérience utilisateur cohérente et de standardiser les contrôles de sécurité dans votre base de connaissances. Vous pouvez configurer les sujets refusés pour interdire les sujets indésirables et les filtres de contenu pour bloquer le contenu préjudiciable dans les entrées et les réponses du modèle. Pour de plus amples informations, veuillez consulter Détection et filtrage des contenus préjudiciables à l’aide des barrières de protection Amazon Bedrock.

Note

L’utilisation de barrières de protection pour les bases de connaissances n’est actuellement pas prise en charge sur Claude 3, Sonnet et Haiku.

Pour les directives générales d’ingénierie de requête, consultez Concepts d’ingénierie de requête.

Choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

Console

Suivez les étapes de la console décrites dans Interrogation d’une base de connaissances et extraction des données. Dans la fenêtre de test, activez Générer des réponses. Ensuite, dans le volet Configurations, développez la section Barrières de protection.

  1. Dans la section Barrières de protection, choisissez le Nom et la version de votre barrière de protection. Si vous souhaitez voir les détails de la barrière de protection et de la version que vous avez choisis, choisissez Afficher.

    Vous pouvez également en créer une nouvelle en choisissant le lien Barrière de protection.

  2. Lorsque vous avez terminé les modifications, choisissez Enregistrer les modifications. Pour quitter sans enregistrer les modifications, choisissez Supprimer les modifications.

API

Lorsque vous faites une demande RetrieveAndGenerate, incluez le champ guardrailConfiguration dans generationConfiguration pour utiliser votre barrière de protection avec la demande. Pour connaître l’emplacement de ce champ, reportez-vous au corps de demande RetrieveAndGenerate dans la Référence des API.

L'objet JSON suivant indique les champs minimaux requis dans le GenerationConfiguration pour définir le guardrailConfiguration :

"generationConfiguration": { "guardrailConfiguration": { "guardrailId": "string", "guardrailVersion": "string" } }

Spécifiez les valeurs guardrailId et guardrailVersion des barrières de protection que vous avez choisies.

Vous pouvez utiliser un modèle de reclassement pour reclasser les résultats d’une requête de la base de connaissances. Suivez les étapes de la console décrites dans Interrogation d’une base de connaissances et extraction des données. Lorsque vous ouvrez le volet Configurations, développez la section Reclassement. Sélectionnez un modèle de reclassement, mettez à jour les autorisations si nécessaire et modifiez les options supplémentaires. Entrez une invite et sélectionnez Exécuter pour tester les résultats après le reclassement.