Ingestion de documents directement dans une base de connaissances - 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.

Ingestion de documents directement dans une base de connaissances

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 Red circular icon with an X symbol, indicating cancellation or denial. Non Green circular icon with a white checkmark symbol inside. Oui
Personnalisé Green circular icon with a white checkmark symbol inside. Oui Green circular icon with a white checkmark symbol inside. 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 dans le Guide de référence générale AWS.

Pour ajouter ou modifier des documents directement dans leAWS 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 à l'adresse https://console.aws.amazon.com/bedrock.

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

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

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

  5. 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é.

      2. 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.

      3. (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é.

      2. 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.

      3. (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.

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

Pour intégrer des documents directement dans une base de connaissances à l'aide de l'API Amazon Bedrock, envoyez une IngestKnowledgeBaseDocumentsdemande à un point de terminaison Agents for Amazon Bedrock 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'KnowledgeBaseDocumentobjets, 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 contient les champs suivants :

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 :

Ingestion d’un document dans une base de connaissances connectée à une source de données personnalisée

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 KnowledgeBaseDocumentobjet 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 :

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

Text

Si le document est du texte, l'DocumentContentobjet 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 chaîne Base64. L'DocumentContentobjet 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 champ id, le document codé en Base64 dans le champ data et le type MIME dans le champ mimeType.

Si vous ingérez un document depuis un emplacement S3, l'DocumentContentobjet 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 :

Si vous définissez les métadonnées en ligne, l'DocumentMetadataobjet 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" } }

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.

Si les métadonnées proviennent d'un fichier S3, l'DocumentMetadataobjet 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

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 KnowledgeBaseDocumentobjet 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 DocumentContentobjet 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

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

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

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

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

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

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