

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.

# Ingestion de documents directement dans une base de connaissances
<a name="kb-direct-ingestion-add"></a>

Cette rubrique décrit comment ingérer des documents directement dans une base de connaissances. Des restrictions s’appliquent aux types de documents que vous pouvez ingérer directement en fonction de votre source de données. Reportez-vous au tableau suivant pour connaître les restrictions relatives aux méthodes que vous pouvez utiliser pour spécifier les documents à ingérer :


****  

| Type de source de données | Document défini en ligne | Document dans un emplacement Amazon S3 | 
| --- | --- | --- | 
| Amazon S3 | ![](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/icons/icon-no.png)Non | ![](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/icons/icon-yes.png)Oui | 
| Personnalisé | ![](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/icons/icon-yes.png)Oui | ![](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/icons/icon-yes.png)Oui | 

Développez la section correspondant à votre cas d’utilisation :

**Note**  
Lorsque vous utilisez la console, vous pouvez ingérer jusqu’à 10 documents directement dans votre base de connaissances. Quand vous utilisez l’API `IngestKnowledgeBaseDocuments`, il est possible d’ingérer jusqu’à 25 documents dans votre base de connaissances. Pour plus d’informations sur ce quota, consultez [Quotas de service Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#limits_bedrock) dans le *Guide de référence générale AWS *.

## Utilisation de la console
<a name="kb-direct-ingestion-add-console"></a>

Pour ajouter ou modifier des documents directement dans le AWS Management Console, procédez comme suit :

1. Connectez-vous au AWS Management Console avec une identité IAM autorisée à utiliser la console Amazon Bedrock. Ouvrez ensuite la console Amazon Bedrock à [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)l'adresse.

1. Dans le volet de navigation de gauche, sélectionnez **Bases de connaissances**.

1. Dans la section **Bases de connaissances**, sélectionnez la base de connaissances dans laquelle vous souhaitez ingérer les documents.

1. Dans la section **Source de données**, sélectionnez la source de données pour laquelle vous souhaitez ajouter, modifier ou supprimer des documents.

1. Dans la section **Document**, choisissez **Ajouter des documents**. Ensuite, effectuez l’une des actions suivantes :
   + Pour ajouter ou modifier un document directement, sélectionnez **Ajouter directement des documents**. Ensuite, procédez comme suit :

     1. Dans le champ **Identifiant du document**, spécifiez un nom unique pour le document. Si vous spécifiez un nom qui existe déjà dans la source de données, le document correspondant sera remplacé.

     1. Pour charger un document, sélectionnez **Charger**. Pour définir un document en ligne, sélectionnez **Ajouter un document en ligne**, choisissez un format et entrez le texte du document dans le champ.

     1. (Facultatif) Pour associer des métadonnées au document, sélectionnez **Ajouter des métadonnées** et entrez une clé, un type et une valeur.
   + Pour ajouter ou modifier un document en spécifiant son emplacement S3, sélectionnez **Ajouter des documents S3**. Ensuite, procédez comme suit :

     1. Dans le champ **Identifiant du document**, spécifiez un nom unique pour le document. Si vous spécifiez un nom qui existe déjà dans la source de données, le document correspondant sera remplacé.

     1. Spécifiez si l'**emplacement S3** du document se trouve dans votre AWS compte courant ou sur un autre compte. Spécifiez ensuite l’URI S3 du document.

     1. (Facultatif) Pour associer des métadonnées au document, choisissez une **source de métadonnées**. Spécifiez l’URI S3 des métadonnées ou sélectionnez **Ajouter des métadonnées** et entrez une clé, un type et une valeur.

1. Pour ingérer le document et les métadonnées associées, choisissez **Ajouter**.

## Utilisation de l’API
<a name="kb-direct-ingestion-add-api"></a>

Pour intégrer des documents directement dans une base de connaissances à l'aide de l'API Amazon Bedrock, envoyez une [IngestKnowledgeBaseDocuments](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_IngestKnowledgeBaseDocuments.html)demande à un point de [terminaison Agents for Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) et spécifiez l'ID de la base de connaissances et de la source de données à laquelle elle est connectée.

**Note**  
Si vous spécifiez un identifiant de document ou un emplacement S3 qui existe déjà dans la base de connaissances, le document correspondant sera remplacé par le nouveau contenu.

Le corps de la demande contient un champ qui correspond à un ensemble d'[KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html)objets, chacun représentant le contenu et les métadonnées facultatives d'un document à ajouter à la source de données et à intégrer dans la base de connaissances. `documents` Un objet [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html) contient les champs suivants :
+ contenu : correspond à un [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objet contenant des informations sur le contenu du document à ajouter.
+ metadata — (Facultatif) Fait référence à un [DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html)objet contenant des informations sur les métadonnées du document à ajouter. Pour plus d’informations sur l’utilisation des métadonnées lors de la récupération, consultez la section **Métadonnées et filtrage** dans [Configuration et personnalisation de la génération de requêtes et de réponses](kb-test-config.md).

Cliquez sur l’une des rubriques suivantes pour découvrir comment ingérer des documents pour différents types de sources de données ou pour consulter des exemples :

**Topics**
+ [Ingestion d’un document dans une base de connaissances connectée à une source de données personnalisée](#kb-direct-ingestion-add-custom)
+ [Ingestion d’un document dans une base de connaissances connectée à une source de données Amazon S3](#kb-direct-ingestion-add-s3)
+ [Exemple de corps de demande](#w2aac32c12c23c19c17c11b3c19)

### Ingestion d’un document dans une base de connaissances connectée à une source de données personnalisée
<a name="kb-direct-ingestion-add-custom"></a>

Si le `dataSourceId` que vous spécifiez appartient à une source de données personnalisée, vous pouvez ajouter du contenu et des métadonnées pour chaque [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html)objet du `documents` tableau.

Le contenu d’un document ajouté à une source de données personnalisée peut être défini de la manière suivante :

#### Définition du document en ligne
<a name="kb-direct-ingestion-add-custom-inline"></a>

Vous pouvez définir les types de documents suivants en ligne :

------
#### [ Text ]

Si le document est du texte, l'[DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objet doit être au format suivant :

```
{ 
    "custom": { 
        "customDocumentIdentifier": { 
            "id": "string"
        },
        "inlineContent": { 
            "textContent": { 
                "data": "string"
            },
            "type": "TEXT"
        },
        "sourceType": "IN_LINE"
    },
    "dataSourceType": "CUSTOM"
}
```

Incluez l’ID du document dans le champ `id` et le texte du document dans le champ `data`.

------
#### [ Bytes ]

Si le document contient plus que du texte, convertissez-le en Base64-string. L'[DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objet doit alors être au format suivant :

```
{ 
    "custom": { 
        "customDocumentIdentifier": { 
            "id": "string"
        },
        "inlineContent": { 
            "byteContent": { 
                "data": blob,
                "mimeType": "string"
            },
            "type": "BYTE"
        },
        "sourceType": "IN_LINE"
    },
    "dataSourceType": "CUSTOM"
}
```

Incluez un identifiant pour le document dans le `id` champ, le Base64-encoded document dans le `data` champ et le type MIME dans le `mimeType` champ.

------

#### Ingestion du document depuis S3
<a name="w2aac32c12c23c19c17c11b3c15b7b3"></a>

Si vous ingérez un document depuis un emplacement S3, l'[DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objet du `content` champ doit être de la forme suivante :

```
{ 
    "custom": { 
        "customDocumentIdentifier": { 
            "id": "string"
        },
        "s3Location": { 
            "bucketOwnerAccountId": "string",
            "uri": "string"
        },
        "sourceType": "S3"
    },
    "dataSourceType": "CUSTOM"
}
```

Incluez l’ID du document dans le champ `id`, le propriétaire du compartiment S3 qui contient le document dans le champ `bucketOwnerAccountId` et l’URI S3 du document dans le champ `uri`.

Les métadonnées d’un document peuvent être définies ainsi :

#### Définition des métadonnées en ligne
<a name="w2aac32c12c23c19c17c11b3c15c11b1"></a>

Si vous définissez les métadonnées en ligne, l'[DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html)objet du `metadata` champ doit être au format suivant :

```
{ 
    "inlineAttributes": [ 
        { 
            "key": "string",
            "value": { 
                "stringValue": "string",
                "booleanValue": boolean,
                "numberValue": number,
                "stringListValue": [ "string" ],
                "type": "STRING" | "BOOLEAN" | "NUMBER" | "STRING_LIST"
            }
        }
    ],
    "type": "IN_LINE_ATTRIBUTE"
}
```

Pour chaque attribut que vous ajoutez, définissez la clé dans le champ `key`. Spécifiez le type de données de la valeur dans le champ `type` et incluez le champ correspondant au type de données. Par exemple, si vous incluez une chaîne, l’attribut sera au format suivant :

```
{ 
    "key": "string",
    "value": { 
        "stringValue": "string",
        "type": "STRING"
    }
}
```

#### Ingestion des métadonnées depuis S3
<a name="w2aac32c12c23c19c17c11b3c15c11b3"></a>

Vous pouvez également ingérer les métadonnées d’un fichier portant l’extension `.metadata.json` dans un emplacement S3. Pour plus d’informations sur le format d’un fichier de métadonnées, consultez la section **Champs de métadonnées des documents** dans [Connexion à Amazon S3 pour votre base de connaissances](s3-data-source-connector.md).

Si les métadonnées proviennent d'un fichier S3, l'[DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html)objet du `metadata` champ doit être au format suivant :

```
{
    "s3Location": { 
        "bucketOwnerAccountId": "string",
        "uri": "string"
    },
        "type": "S3_LOCATION"
    }
 }
```

Incluez le propriétaire du compartiment S3 qui contient le fichier de métadonnées dans le champ `bucketOwnerAccountId`, ainsi que l’URI S3 du fichier de métadonnées dans le champ `uri`.

**Avertissement**  
Si vous avez défini le contenu en ligne, vous devez définir les métadonnées en ligne.

### Ingestion d’un document dans une base de connaissances connectée à une source de données Amazon S3
<a name="kb-direct-ingestion-add-s3"></a>

Si le `dataSourceId` que vous spécifiez appartient à une source de données S3, vous pouvez ajouter du contenu et des métadonnées pour chaque [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html)objet du `documents` tableau.

**Note**  
Pour les sources de données S3, vous ne pouvez ajouter du contenu et des métadonnées qu’à partir d’un emplacement S3.

Le contenu d'un document S3 à ajouter à S3 doit être ajouté à un [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objet au format suivant :

```
{ 
    "dataSourceType": "string",
    "s3": { 
        "s3Location": { 
            "uri": "string"
        }
    }
}
```

Incluez le propriétaire du compartiment S3 qui contient le document dans le champ `bucketOwnerAccountId` et l’URI S3 du document dans le champ `uri`.

Les métadonnées d’un document ajouté à une source de données personnalisée peuvent être définies au format suivant :

```
{
    "s3Location": { 
        "bucketOwnerAccountId": "string",
        "uri": "string"
    },
        "type": "S3_LOCATION"
    }
 }
```

**Avertissement**  
Les documents que vous ingérez directement dans une base de connaissances connectée à une source de données S3 ne sont pas ajoutés au compartiment S3 lui-même. Nous vous recommandons d’ajouter également ces documents à la source de données S3 afin qu’ils ne soient ni supprimés ni remplacés lors de la synchronisation de votre source de données.

### Exemple de corps de demande
<a name="w2aac32c12c23c19c17c11b3c19"></a>

Développez les sections suivantes pour découvrir le corps de demandes correspondant à différents cas d’utilisation avec `IngestKnowledgeBaseDocuments` :

#### Ajout et ingestion d’un document texte personnalisé à une source de données personnalisée
<a name="w2aac32c12c23c19c17c11b3c19b5b1"></a>

L’exemple suivant montre l’ajout d’un document texte à une source de données personnalisée :

```
PUT /knowledgebases/{{KB12345678}}/datasources/{{DS12345678}}/documents HTTP/1.1
Content-type: application/json

{
   "documents": [ 
      { 
         "content": { 
            "dataSourceType": "CUSTOM",
            "custom": { 
               "customDocumentIdentifier": { 
                  "id": "MyDocument"
               },
               "inlineContent": { 
                  "textContent": { 
                     "data": "Hello world!"
                  },
                  "type": "TEXT"
               },
               "sourceType": "IN_LINE"
            }
         }
     }
   ]
}
```

#### Ajouter un Base64-encoded document à une source de données personnalisée et l'ingérer
<a name="w2aac32c12c23c19c17c11b3c19b5b3"></a>

L’exemple suivant montre l’ajout d’un document PDF à une source de données personnalisée :

```
PUT /knowledgebases/{{KB12345678}}/datasources/{{DS12345678}}/documents HTTP/1.1
Content-type: application/json

{
   "documents": [ 
      { 
         "content": { 
            "dataSourceType": "CUSTOM",
            "custom": { 
               "customDocumentIdentifier": { 
                  "id": "MyDocument"
               },
               "inlineContent": { 
                  "byteContent": { 
                     "data": "<Base64-encoded string>",
                     "mimeType": "application/pdf"
                  },
                  "type": "BYTE"
               },
               "sourceType": "IN_LINE"
            }
         }
     }
   ]
}
```

#### Ajout et ingestion d’un document depuis un emplacement S3 à une base de connaissances connectée à une source de données personnalisée
<a name="w2aac32c12c23c19c17c11b3c19b5b5"></a>

L’exemple suivant montre l’ajout, depuis un emplacement S3, d’un document texte à une source de données personnalisée :

```
PUT /knowledgebases/{{KB12345678}}/datasources/{{DS12345678}}/documents HTTP/1.1
Content-type: application/json

{
   "documents": [ 
      { 
         "content": { 
            "dataSourceType": "CUSTOM",
            "custom": { 
               "customDocumentIdentifier": { 
                  "id": "MyDocument"
               },
               "s3": {
                "s3Location": {
                    "uri": "amzn-s3-demo-bucket"
                }
               },
               "sourceType": "S3"
            }
         }
     }
   ]
}
```

#### Ajout d’un document en ligne à une base de connaissances connectée à une source de données personnalisée et inclusion des métadonnées en ligne
<a name="w2aac32c12c23c19c17c11b3c19b5b7"></a>

L’exemple suivant montre l’ajout en ligne d’un document à une source de données personnalisée avec des métadonnées contenant deux attributs :

```
PUT /knowledgebases/{{KB12345678}}/datasources/{{DS12345678}}/documents HTTP/1.1
Content-type: application/json

{
   "documents": [ 
      { 
         "content": { 
            "dataSourceType": "CUSTOM",
            "custom": { 
               "customDocumentIdentifier": { 
                  "id": "MyDocument"
               },
               "inlineContent": { 
                  "textContent": { 
                     "data": "Hello world!"
                  },
                  "type": "TEXT"
               },
               "sourceType": "IN_LINE"
            }
         },
         "metadata": {
            "inlineAttributes": [ 
               { 
                  "key": "genre",
                  "value": {
                     "stringValue": "pop",
                     "type": "STRING"
                  }
               },
               { 
                  "key": "year",
                  "value": { 
                     "numberValue": 1988,
                     "type": "NUMBER"
                  }
               }
            ],
            "type": "IN_LINE_ATTRIBUTE"
         }
     }
   ]
}
```

#### Ajout d’un document à une base de connaissances connectée à une source de données S3 et inclusion des métadonnées pour celui-ci
<a name="w2aac32c12c23c19c17c11b3c19b5b9"></a>

L’exemple suivant montre l’ajout d’un document et de métadonnées à une source de données S3. Vous ne pouvez inclure les métadonnées que via S3 :

```
PUT /knowledgebases/{{KB12345678}}/datasources/{{DS12345678}}/documents HTTP/1.1
Content-type: application/json

{
    "documents": [ 
        { 
            "content": { 
                "dataSourceType": "S3",
                "s3": { 
                "s3Location": {
                    "uri": "amzn-s3-demo-bucket"
                }
            }
        },
        "metadata": {
            "s3Location": {
                "bucketOwnerId": "111122223333",
                "uri": "amzn-s3-demo-bucket"
            },
                "type": "S3_LOCATION"
            }
        }
    ]
}
```