

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 de la génération de requêtes et de réponses
<a name="kb-test-config"></a>

Vous pouvez configurer et personnaliser l’extraction et la génération de réponses, afin d’améliorer encore la pertinence des réponses. Par exemple, vous pouvez appliquer des filtres aux métadonnées des documents fields/attributes afin d'utiliser les derniers documents mis à jour ou ceux dont la date de modification est récente.

**Note**  
Toutes les configurations suivantes, à l’exception de **Orchestration et génération**, 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 :

## Nombre de blocs source
<a name="kb-test-config-number"></a>

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 sur [Interrogation d’une base de connaissances et extraction des données](kb-test-retrieve.md) ou[Interrogation d’une base de connaissances et génération de réponses basées sur les données récupérées](kb-test-retrieve-generate.md). Dans le volet **Configurations**, développez la section **Segments sources** et entrez le nombre maximum de segments sources à renvoyer.

------
#### [ API ]

Lorsque vous faites une [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html)demande [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html)ou, incluez un `retrievalConfiguration` champ mappé à un [KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html)objet. Pour connaître l'emplacement de ce champ, reportez-vous aux corps de [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html)requête [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html)et dans la référence de l'API.

L'objet JSON suivant indique les champs minimaux requis dans l'[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html)objet pour définir le nombre maximal de résultats à renvoyer :

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

Spécifiez le nombre maximum de résultats extraits (voir le `numberOfResults` champ [KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html)pour connaître la plage de valeurs acceptées) à renvoyer dans le `numberOfResults` champ.

------

## Type de recherche
<a name="kb-test-config-search"></a>

Le type de recherche définit la manière dont les sources de données de la base de connaissances sont interrogées. Les types de recherche possibles sont les suivants :

**Note**  
La recherche hybride n'est prise en charge que pour les magasins vectoriels Amazon RDS, Amazon OpenSearch Serverless et MongoDB qui contiennent un champ de texte filtrable. Si vous utilisez un autre magasin de vecteurs ou si votre magasin de vecteurs ne contient pas de champ de texte filtrable, la requête utilise la recherche sémantique.
+ **Par défaut** : Amazon Bedrock décide de la stratégie de recherche à votre place.
+ **Hybride** : Combine la recherche de vectorisations (recherche sémantique) avec la recherche dans le texte brut.
+ **Sémantique** : recherche uniquement les vectorisations.

Pour apprendre à définir le type de recherche, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

------
#### [ Console ]

Suivez les étapes de la console sur [Interrogation d’une base de connaissances et extraction des données](kb-test-retrieve.md) ou[Interrogation d’une base de connaissances et génération de réponses basées sur les données récupérées](kb-test-retrieve-generate.md). Lorsque vous ouvrez le volet **Configurations**, développez la section **Type de recherche**, activez **Remplacer la recherche par défaut** et sélectionnez une option.

------
#### [ API ]

Lorsque vous faites une [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html)demande [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html)ou, incluez un `retrievalConfiguration` champ mappé à un [KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html)objet. Pour connaître l'emplacement de ce champ, reportez-vous aux corps de [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html)requête [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html)et dans la référence de l'API.

L'objet JSON suivant indique les champs minimaux requis dans l'[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html)objet pour définir les configurations de type de recherche :

```
"retrievalConfiguration": {
    "vectorSearchConfiguration": {
        "overrideSearchType": "HYBRID | SEMANTIC"
    }
}
```

Spécifiez le type de recherche dans le champ `overrideSearchType`. Vous avez les options suivantes :
+ Si vous ne spécifiez pas de valeur, Amazon Bedrock choisit la stratégie de recherche la mieux adaptée à la configuration de votre magasin de vecteurs.
+ **HYBRIDE** : Amazon Bedrock interroge la base de connaissances en utilisant à la fois les vectorisations et le texte brut.
+ **SÉMANTIQUE** : Amazon Bedrock interroge la base de connaissances à l’aide de ses vectorisations.

------

## Streaming
<a name="kb-test-config-stream"></a>

------
#### [ Console ]

Suivez les étapes de la console décrites dans [Interrogation d’une base de connaissances et génération de réponses basées sur les données récupérées](kb-test-retrieve-generate.md). Lorsque vous ouvrez le volet **Configurations**, développez la section **Préférence de diffusion** et activez **Diffuser les réponses**.

------
#### [ API ]

Pour diffuser les réponses, utilisez l’API [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerateStream.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerateStream.html). Pour plus de détails sur le remplissage des champs, consultez l’onglet **API** à la section [Interrogation d’une base de connaissances et génération de réponses basées sur les données récupérées](kb-test-retrieve-generate.md).

------

## Filtrage manuel des métadonnées
<a name="kb-test-config-filters"></a>

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 à filtrer et peuvent spécifier les champs à inclure dans les intégrations.

Par exemple, « epoch\$1modification\$1time » 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\$1modification\$1time » 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](s3-data-source-connector.md#configuration-s3-connector) 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 un magasin de vecteurs 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 :
  + [Créez une nouvelle base de connaissances](knowledge-base-create.md) dans la console et laissez Amazon Bedrock créer automatiquement un index vectoriel dans Amazon OpenSearch Serverless pour vous.
  + [Créer un autre index vectoriel](knowledge-base-setup.md) dans le magasin de vecteurs et sélectionner `faiss` comme **moteur** [Créer ensuite une base de connaissances](knowledge-base-create.md) et spécifier le nouvel index vectoriel
+ 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](kb-data-source-sync-ingest.md), 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](knowledge-base-create.md) 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](knowledge-base-setup.md) 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 pour votre boutique vectorielle : les bases de connaissances Amazon Bedrock généreront des numéros de page de document et les stockeront dans une métadonnée field/attribute appelée 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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-equals) | chaîne, nombre, booléen | L'attribut correspond à la valeur que vous fournissez | 
| Non égal à | \$1= | [notEquals](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-notEquals) | chaîne, nombre, booléen | L’attribut ne correspond pas à la valeur que vous fournissez | 
| Supérieur à | > | [Plus grand que](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-greaterThan) | number | L’attribut est supérieur à la valeur que vous fournissez | 
| Supérieur ou égal à | >= | [greaterThanOrÉgal](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-greaterThanOrEquals) | number | L’attribut est supérieur ou égal à la valeur que vous fournissez | 
| Inférieur à | < | [Inférieur à](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-lessThan) | number | L’attribut est inférieur à la valeur que vous fournissez | 
| Inférieur ou égal à | <= | [lessThanOrÉgal](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-lessThanOrEquals) | number | L’attribut est inférieur ou égal à la valeur que vous fournissez | 
| Dans | : | [in](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-in) | liste de chaînes | L'attribut figure 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 | \$1: | [Pas dedans](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-notIn) | 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 magasins OpenSearch vectoriels Amazon Serverless et Neptune Analytics GraphRag) | 
| La chaîne contient | Non disponible | [stringContains](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-stringContains) | chaîne | L’attribut doit être une chaîne. Le nom de l'attribut correspond à la clé et sa valeur est une chaîne contenant la valeur que vous avez fournie sous forme de sous-chaîne, ou une liste dont un membre contient la valeur que vous avez fournie sous forme de sous-chaîne (actuellement, il est préférable de le prendre en charge avec le magasin vectoriel 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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-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 le prendre en charge avec 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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-andAll) | Les résultats répondent à toutes les expressions de filtrage du groupe | 
| Or | or | [orAll](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-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 sur [Interrogation d’une base de connaissances et extraction des données](kb-test-retrieve.md) ou[Interrogation d’une base de connaissances et génération de réponses basées sur les données récupérées](kb-test-retrieve-generate.md). 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.\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/kb/filter-one.png)
+ 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.\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/kb/filter-more.png)
+ 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.\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/kb/filter-logical.png)
+ Pour combiner différents opérateurs logiques, sélectionnez **\$1 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.\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/kb/filter-group.png)
+ 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.\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/kb/filter-group-logical.png)
+ Pour modifier un filtre, sélectionnez-le, modifiez l’opération de filtrage, puis choisissez **Appliquer**.  
![\[Modifiez un filtre.\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/kb/filter-edit.png)
+ Pour supprimer un groupe de filtres, cliquez sur l’icône de corbeille (![\[Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family.\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/icons/trash.png)) en regard du groupe. Pour supprimer un filtre, choisissez l’icône de suppression (![\[Close or cancel icon represented by an "X" symbol.\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/icons/close.png)) en regard du filtre.  
![\[Supprimez un filtre ou un groupe de filtres.\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/kb/filter-delete.png)

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.\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/kb/filter-example.png)


------
#### [ API ]

Lorsque vous faites une [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html)demande [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html)ou, incluez un `retrievalConfiguration` champ mappé à un [KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html)objet. Pour connaître l'emplacement de ce champ, reportez-vous aux corps de [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html)requête [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html)et dans la référence de l'API.

Les objets JSON suivants indiquent les champs minimaux requis dans l'[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html)objet 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", ...]
               }
           }
       }
   }
   ```

1. 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", ...]
                   },
                   ...
               ]
           }
       }
   }
   ```

1. 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", ...]
                   }
               ]
           }
       }
   }
   ```

1. 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 (uniquement pris en charge 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 (Retrieve)](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html#API_agent-runtime_Retrieve_Example_2) et [Envoyer une requête et inclure des filtres (RetrieveAndGenerate)](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html#API_agent-runtime_RetrieveAndGenerate_Example_2).

------

## Filtrage implicite de métadonnées
<a name="kb-test-config-implicit"></a>

La base de connaissances Amazon Bedrock génère et applique un filtre d’extraction basé sur la requête utilisateur et un schéma de métadonnées.

**Note**  
La fonctionnalité ne fonctionne actuellement qu’avec Anthropic Claude 3.5 Sonnet.

`implicitFilterConfiguration` est spécifié dans le corps `vectorSearchConfiguration` de la demande [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html). Incluez les champs suivants :
+ `metadataAttributes` : dans ce tableau, fournissez des schémas décrivant les attributs de métadonnées pour lesquels le modèle générera un filtre.
+ `modelArn` : ARN du modèle à utiliser.

Voici un exemple de schéma de métadonnées que vous pouvez ajouter à la matrice `metadataAttributes`.

```
[
    {
        "key": "company",
        "type": "STRING",
        "description": "The full name of the company. E.g. `Amazon.com, Inc.`, `Alphabet Inc.`, etc"
    },
    {
        "key": "ticker",
        "type": "STRING",
        "description": "The ticker name of a company in the stock market, e.g. AMZN, AAPL"
    },
    {
        "key": "pe_ratio",
        "type": "NUMBER",
        "description": "The price to earning ratio of the company. This is a measure of valuation of a company. The lower the pe ratio, the company stock is considered chearper."
    },
    {
        "key": "is_us_company",
        "type": "BOOLEAN",
        "description": "Indicates whether the company is a US company."
    },
    {
        "key": "tags",
        "type": "STRING_LIST",
        "description": "Tags of the company, indicating its main business. E.g. `E-commerce`, `Search engine`, `Artificial intelligence`, `Cloud computing`, etc"
    }
]
```

## Barrières de protection
<a name="kb-test-config-guardrails"></a>

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](guardrails.md).

**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](prompt-engineering-guidelines.md).

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

------
#### [ Console ]

Suivez les étapes de la console sur [Interrogation d’une base de connaissances et extraction des données](kb-test-retrieve.md) ou[Interrogation d’une base de connaissances et génération de réponses basées sur les données récupérées](kb-test-retrieve-generate.md). 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**.

1. 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 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html), 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 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) dans la Référence des API.

L'objet JSON suivant indique les champs [GenerationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerationConfiguration.html)minimaux requis pour définir `guardrailConfiguration` :

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

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

------

## Reclassement
<a name="kb-test-config-rerank"></a>

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 sur [Interrogation d’une base de connaissances et extraction des données](kb-test-retrieve.md) ou[Interrogation d’une base de connaissances et génération de réponses basées sur les données récupérées](kb-test-retrieve-generate.md). 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.

## Décomposition des requêtes
<a name="kb-test-query-modifications"></a>

La décomposition des requêtes est une technique utilisée pour décomposer une requête complexe en sous-requêtes plus petites et plus faciles à gérer. Cette approche peut aider à extraire des informations plus précises et pertinentes, en particulier lorsque la requête initiale comporte plusieurs facettes ou est trop large. L’activation de cette option peut entraîner l’exécution de plusieurs requêtes dans votre base de connaissances, ce qui peut contribuer à une réponse finale plus précise.

Par exemple, pour une question du type *« Qui a obtenu le meilleur score lors de la Coupe du Monde de la FIFA 2022, l’Argentine ou la France ? »*, les bases de connaissances Amazon Bedrock peuvent d’abord générer les sous-requêtes suivantes, avant de générer une réponse finale :

1. *Combien de buts l’Argentine a-t-elle marqués lors de la finale de la Coupe du Monde de la FIFA 2022 ?*

1. *Combien de buts la France a-t-elle marqués lors de la finale de la Coupe du Monde de la FIFA 2022 ?*

------
#### [ Console ]

1. Créez et synchronisez une source de données ou utilisez une base de connaissances existante.

1. Accédez à la fenêtre de test et ouvrez le panneau de configuration.

1. Activez la décomposition des requêtes.

------
#### [ API ]

```
POST /retrieveAndGenerate HTTP/1.1
Content-type: application/json
{
   "input": {
      "text": "string"
   },
   "retrieveAndGenerateConfiguration": {
      "knowledgeBaseConfiguration": {
         "orchestrationConfiguration": { // Query decomposition
           "queryTransformationConfiguration": {
                "type": "string" // enum of QUERY_DECOMPOSITION
           }
         },
...}
}
```

------

## Paramètres d'inférence
<a name="kb-test-model-params"></a>

Lorsque vous générez des réponses basées sur l’extraction d’informations, vous pouvez utiliser des [paramètres d’inférence](inference-parameters.md) pour mieux contrôler le comportement du modèle pendant l’inférence et influencer les sorties du modèle.

Pour découvrir comment modifier les paramètres d’influence, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

------
#### [ Console ]

**Pour modifier les paramètres d’inférence lorsque vous interrogez une base de connaissances**, suivez les étapes de la console décrites dans [Interrogation d’une base de connaissances et extraction des données](kb-test-retrieve.md) ou [Interrogation d’une base de connaissances et génération de réponses basées sur les données récupérées](kb-test-retrieve-generate.md). Lorsque vous ouvrez le volet **Configurations**, vous verrez une section **Paramètres d’inférence**. Modifiez les paramètres selon vos besoins.

**Pour modifier les paramètres d’inférence lorsque vous discutez avec votre document**, suivez les étapes décrites dans [Discussion avec votre document sans configuration de base de connaissances](knowledge-base-chatdoc.md). Dans le volet **Configurations**, développez la section **Paramètres d’inférence** et modifiez les paramètres si nécessaire.

------
#### [ API ]

Vous fournissez les paramètres du modèle lors de l’appel de l’API [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html). Vous pouvez personnaliser le modèle en fournissant des paramètres d’inférence dans le champ `inferenceConfig` de `knowledgeBaseConfiguration` (si vous interrogez une base de connaissances) ou de `externalSourcesConfiguration` (si vous [discutez avec votre document](knowledge-base-chatdoc.md)).

Le champ `inferenceConfig` contient un champ `textInferenceConfig` qui contient les paramètres suivants que vous pouvez :
+ temperature
+ topP
+ maxTokenCount
+ stopSequences

Vous pouvez personnaliser le modèle en utilisant les paramètres suivants dans le champ `inferenceConfig` de `externalSourcesConfiguration` et `knowledgeBaseConfiguration` : 
+ temperature
+ topP
+ maxTokenCount
+ stopSequences

Pour une explication détaillée de la fonction de chacun de ces paramètres, consultez [Génération de réponse d’influence à l’aide de paramètres d’inférence](inference-parameters.md).

En outre, vous pouvez fournir des paramètres personnalisés qui ne sont pas pris en charge par `textInferenceConfig` via la carte `additionalModelRequestFields`. Vous pouvez fournir des paramètres uniques à des modèles spécifiques avec cet argument. Pour les paramètres uniques, consultez [Paramètres de demande d’inférence et champs de réponse pour les modèles de fondation](model-parameters.md).

Si un paramètre est omis de `textInferenceConfig`, une valeur par défaut sera utilisée. Tout paramètre non reconnu dans `textInferneceConfig` sera ignoré, tandis que tout paramètre non reconnu dans `AdditionalModelRequestFields` provoquera une exception. 

Une exception de validation est émise s’il existe le même paramètre dans à la fois `additionalModelRequestFields` et `TextInferenceConfig`.

**Utilisation des paramètres du modèle dans RetrieveAndGenerate**

 Voici un exemple de structure pour `inferenceConfig` et `additionalModelRequestFields` sous `generationConfiguration` dans le corps de demande `RetrieveAndGenerate` :

```
"inferenceConfig": {
    "textInferenceConfig": {
        "temperature": 0.5,  
        "topP": 0.5,
        "maxTokens": 2048,
        "stopSequences": ["\nObservation"]
    }
},
"additionalModelRequestFields": {
    "top_k": 50
}
```

 L’exemple suivant définit une valeur `temperature` de 0,5, `top_p` de 0,5 ou `maxTokens` de 2 048, arrête la génération s’il rencontre la chaîne « \$1nObservation » dans la réponse générée et transmet une valeur `top_k` personnalisée de 50. 

------

## Modèles d’invite de base de connaissances : orchestration et génération
<a name="kb-test-config-prompt-template"></a>

Lorsque vous interrogez une base de données et demandez la génération d’une réponse, Amazon Bedrock utilise un modèle d’invite qui combine les instructions et le contexte avec la requête de l’utilisateur pour construire l’invite de génération qui est envoyée au modèle pour la génération de réponses. Vous pouvez également personnaliser l’invite d’orchestration, qui transforme l’invite de l’utilisateur en requête de recherche. Lorsque vous modifiez les modèles d’invite à l’aide des outils suivants :
+ **Espaces réservés à l’invite** : variables prédéfinies dans les bases de connaissances Amazon Bedrock qui sont renseignées dynamiquement au moment de l’exécution lors de l’interrogation de la base de connaissances. Dans l’invite du système, vous verrez ces espaces réservés entourés du symbole `$`. La liste suivante décrit les espaces réservés que vous pouvez utiliser :
**Note**  
L’espace réservé `$output_format_instructions$` est un champ obligatoire pour que les citations soient affichées dans la réponse.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/kb-test-config.html)
+ **Balises XML** : les modèles Anthropic prennent en charge l’utilisation de balises XML pour structurer et délimiter vos invites. Utilisez des noms de balises descriptifs pour des résultats optimaux. Par exemple, dans l’invite système par défaut, vous verrez la balise `<database>` utilisée pour délimiter une base de données de questions précédemment posées). Pour plus d’informations, consultez [Utiliser des balises XML](https://docs.anthropic.com/claude/docs/use-xml-tags) dans le [Guide de l’utilisateur Anthropic](https://docs.anthropic.com/en/docs/welcome).

Pour les directives générales d’ingénierie de requête, consultez [Concepts d’ingénierie de requête](prompt-engineering-guidelines.md).

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

------
#### [ Console ]

Suivez les étapes de la console sur [Interrogation d’une base de connaissances et extraction des données](kb-test-retrieve.md) ou[Interrogation d’une base de connaissances et génération de réponses basées sur les données récupérées](kb-test-retrieve-generate.md). Dans la fenêtre de test, activez **Générer des réponses**. Ensuite, dans le volet **Configurations**, développez la section **modèle d’invite de la base de connaissances**.

1. Choisissez **Modifier**.

1. Modifiez l’invite système dans l’éditeur de texte, en incluant les espaces réservés aux invites et les balises XML si nécessaire. Pour revenir au modèle d’invite par défaut, sélectionnez **Restauration**.

1. Lorsque vous avez terminé les modifications, choisissez **Enregistrer les modifications**. Pour quitter sans enregistrer l’invite du système, choisissez **Ignorer les modifications**.

------
#### [ API ]

Lorsque vous faites une [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html)demande, incluez un `generationConfiguration` champ mappé à un [GenerationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerationConfiguration.html)objet. Pour connaître l’emplacement de ce champ, reportez-vous au corps de demande [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) dans la Référence des API.

L'objet JSON suivant indique les champs minimaux requis dans l'[GenerationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerationConfiguration.html)objet pour définir le nombre maximal de résultats extraits à renvoyer :

```
"generationConfiguration": {
    "promptTemplate": {
        "textPromptTemplate": "string"
    }
}
```

Entrez votre modèle d’invite personnalisé dans le champ `textPromptTemplate`, y compris les espaces réservés aux invites et les balises XML si nécessaire. Pour connaître le nombre maximal de caractères autorisés dans l'invite du système, consultez le `textPromptTemplate` champ dans [GenerationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerationConfiguration.html).

------