Personnalisation de l’ingestion pour une source de données - Amazon Bedrock

Personnalisation de l’ingestion pour une source de données

Vous pouvez personnaliser l’ingestion vectorielle lorsque vous connectez une source de données dans la AWS Management Console ou en modifiant la valeur du champ vectorIngestionConfiguration lors de l’envoi d’une demande CreateDataSource.

Sélectionnez une rubrique pour savoir comment inclure des configurations permettant de personnaliser l’ingestion lors de la connexion à une source de données :

Choix de l’outil à utiliser pour l’analyse

Vous pouvez personnaliser la façon dont les documents contenus dans vos données sont analysés. Pour en savoir plus sur les options d’analyse des données dans les bases de connaissances Amazon Bedrock, consultez Options d’analyse structurée pour votre source de données.

Avertissement

Une fois connecté à la source de données, vous ne pouvez plus modifier la stratégie d’analyse. Pour utiliser une stratégie d’analyse différente, vous pouvez ajouter une nouvelle source de données.

Vous ne pouvez pas ajouter d’emplacement S3 pour stocker des données multimodales (notamment des images, des figures, des graphiques et des tableaux) après avoir créé une base de connaissances. Si vous souhaitez inclure des données multimodales et utiliser un analyseur qui les prend en charge, vous devez créer une nouvelle base de connaissances.

Les étapes du choix d’une stratégie d’analyse varient selon que vous utilisez la AWS Management Console ou l’API Amazon Bedrock et selon la méthode d’analyse que vous choisissez. Si vous choisissez une méthode d’analyse qui prend en charge les données multimodales, vous devez spécifier un URI S3 dans lequel stocker les données multimodales extraites de vos documents. Ces données peuvent être renvoyées dans une requête de la base de connaissances.

  • Dans AWS Management Console, effectuez les opérations suivantes :

    1. Sélectionnez la stratégie d’analyse lorsque vous vous connectez à une source de données lors de la configuration d’une base de connaissances ou lorsque vous ajoutez une nouvelle source de données à votre base de connaissances existante.

    2. (Si vous choisissez l’automatisation des données Amazon Bedrock ou un modèle de fondation comme stratégie d’analyse) Spécifiez un URI S3 dans lequel stocker les données multimodales extraites de vos documents dans la section Destination de stockage multimodal lorsque vous sélectionnez un modèle de vectorisation et configurez votre magasin de vecteurs. Vous pouvez également utiliser une clé gérée par le client pour chiffrer vos données S3.

  • Dans l’API Amazon Bedrock, procédez comme suit :

    1. (Si vous envisagez d’utiliser l’automatisation des données Amazon Bedrock ou un modèle de fondation comme stratégie d’analyse) Incluez un SupplementalDataStorageLocation dans la configuration VectorKnowledgeBaseConfiguration d’une demande CreateKnowledgeBase.

    2. Incluez une ParsingConfiguration dans le champ parsingConfiguration de la VectorIngestionConfiguration de la demande CreateDataSource.

      Note

      Si vous omettez cette configuration, les bases de connaissances Amazon Bedrock utilisent l’analyseur par défaut Amazon Bedrock.

Pour plus de détails sur la façon de spécifier une stratégie d’analyse dans l’API, développez la section correspondant à la stratégie d’analyse que vous souhaitez utiliser :

Pour utiliser l’analyseur par défaut, n’incluez aucun champ parsingConfiguration dans la VectorIngestionConfiguration.

Pour utiliser l’analyseur d’automatisation des données Amazon Bedrock, spécifiez BEDROCK_DATA_AUTOMATION dans le champ parsingStrategy de la ParsingConfiguration et incluez une BedrockDataAutomationConfiguration dans le champ bedrockDataAutomationConfiguration, au format suivant :

{ "parsingStrategy": "BEDROCK_DATA_AUTOMATION", "bedrockDataAutomationConfiguration": { "parsingModality": "string" } }

Pour utiliser un modèle de fondation comme analyseur, spécifiez le BEDROCK_FOUNDATION_MODEL dans le champ parsingStrategy de la ParsingConfiguration et incluez une configuration BedrockFoundationModelConfiguration dans le champ bedrockFoundationModelConfiguration, au format suivant :

{ "parsingStrategy": "BEDROCK_FOUNDATION_MODEL", "bedrockFoundationModelConfiguration": { "modelArn": "string", "parsingModality": "string", "parsingPrompt": { "parsingPromptText": "string" } } }

Choix d’une stratégie de découpage

Vous pouvez personnaliser la façon dont les documents contenus dans vos données sont découpés à des fins de stockage et d’extraction. Pour en savoir plus sur les options de découpage des données dans les bases de connaissances Amazon Bedrock, consultez Fonctionnement du découpage du contenu pour les bases de connaissances.

Avertissement

Une fois connecté à la source de données, vous ne pouvez plus modifier la stratégie de découpage.

Dans la AWS Management Console, vous choisissez la stratégie de découpage lorsque vous vous connectez à une source de données. Avec l’API Amazon Bedrock, vous incluez une ChunkingConfiguration dans le champ chunkingConfiguration de la VectorIngestionConfiguration.

Note

Si vous omettez cette configuration, Amazon Bedrock divise votre contenu en fragments d’environ 300 jetons, tout en préservant les limites de phrases.

Développez la section qui correspond à la stratégie d’analyse que vous souhaitez utiliser :

Pour traiter chaque document de votre source de données comme un bloc source unique, spécifiez NONE dans le champ chunkingStrategy de la ChunkingConfiguration, au format suivant :

{ "chunkingStrategy": "NONE" }

Pour diviser chaque document de votre source de données en fragments de taille approximativement identique, spécifiez FIXED_SIZE dans le champ chunkingStrategy de la ChunkingConfiguration et incluez une FixedSizeChunkingConfiguration dans le champ fixedSizeChunkingConfiguration, au format suivant :

{ "chunkingStrategy": "FIXED_SIZE", "fixedSizeChunkingConfiguration": { "maxTokens": number, "overlapPercentage": number } }

Pour diviser chaque document de votre source de données en deux niveaux, la deuxième couche contenant de plus petits fragments dérivés de la première couche, spécifiez HIERARCHICAL dans le champ chunkingStrategy de la ChunkingConfiguration et incluez le champ hierarchicalChunkingConfiguration, au format suivant :

{ "chunkingStrategy": "HIERARCHICAL", "hierarchicalChunkingConfiguration": { "levelConfigurations": [{ "maxTokens": number }], "overlapTokens": number } }

Pour diviser chaque document de votre source de données en fragments qui privilégient le sens sémantique par rapport à la structure syntaxique, spécifiez SEMANTIC dans le champ chunkingStrategy de la ChunkingConfiguration et incluez le champ semanticChunkingConfiguration, au format suivant :

{ "chunkingStrategy": "SEMANTIC", "semanticChunkingConfiguration": { "breakpointPercentileThreshold": number, "bufferSize": number, "maxTokens": number } }

Utilisation d’une fonction Lambda lors de l’ingestion

Vous pouvez post-traiter la façon dont les blocs source de vos données sont écrits dans le magasin de vecteurs à l’aide d’une fonction Lambda de la manière suivante :

  • Incluez une logique de découpage pour fournir une stratégie de découpage personnalisée.

  • Incluez une logique pour spécifier les métadonnées au niveau des fragments.

Pour en savoir plus sur l’écriture d’une fonction Lambda personnalisée pour l’ingestion, consultez Utilisation d’une fonction Lambda de transformation personnalisée pour définir la manière dont vos données sont ingérées. Dans la AWS Management Console, vous choisissez la fonction Lambda lorsque vous vous connectez à une source de données. Avec l’API Amazon Bedrock, vous incluez une CustomTransformationConfiguration dans le champ CustomTransformationConfiguration de la VectorIngestionConfiguration et vous spécifiez l’ARN de la fonction Lambda, au format suivant :

{ "transformations": [{ "transformationFunction": { "transformationLambdaConfiguration": { "lambdaArn": "string" } }, "stepToApply": "POST_CHUNKING" }], "intermediateStorage": { "s3Location": { "uri": "string" } } }

Vous spécifiez également l’emplacement S3 dans lequel stocker la sortie après avoir appliqué la fonction Lambda.

Vous pouvez inclure le champ chunkingConfiguration pour appliquer la fonction Lambda après avoir appliqué l’une des options de découpage proposées par Amazon Bedrock.