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.
Il est possible de définir une fonction Lambda de transformation personnalisée pour injecter votre propre logique dans le processus d'ingestion de la base de connaissances.
Vous avez peut-être une logique de segmentation spécifique, qui n'est pas prise en charge de manière native par les bases de connaissances Amazon Bedrock. Utilisez l'option de stratégie d'absence de segmentation, tout en spécifiant une fonction Lambda contenant votre logique de segmentation. En outre, vous devez spécifier un compartiment Amazon S3 pour la base de connaissances afin d'écrire les fichiers à segmenter par votre fonction Lambda.
Après le découpage, votre fonction Lambda réécrit les fichiers fragmentés dans le même compartiment et renvoie des références à la base de connaissances pour un traitement ultérieur. Vous pouvez éventuellement fournir votre propre AWS KMS clé pour le chiffrement des fichiers stockés dans votre compartiment S3.
Vous pouvez également spécifier des métadonnées au niveau des segments, tout en demandant à la base de connaissances d'appliquer l'une des stratégies de segmentation prises en charge de manière native. Dans ce cas, sélectionnez l'une des stratégies de segmentation prédéfinies (par exemple, segmentation par défaut ou de taille fixe), tout en fournissant une référence à votre fonction Lambda et à votre compartiment S3. Dans ce cas, la base de connaissances stockera les fichiers analysés et pré-fragmentés dans le compartiment S3 prédéfini, avant d'appeler votre fonction Lambda pour ajouter des métadonnées au niveau des fragments.
Après avoir ajouté des métadonnées au niveau des segments, votre fonction Lambda réécrit les fichiers fragmentés dans le même compartiment et renvoie des références à la base de connaissances pour un traitement ultérieur. Veuillez noter que les métadonnées au niveau des segments ont priorité et remplacent les métadonnées au niveau du fichier, en cas de collision.
Pour un exemple d'utilisation d'une fonction Lambda Python pour un découpage personnalisé, voir Découpage personnalisé à l'aide
Pour les contrats API et classez-les, reportez-vous aux structures ci-dessous :
APIcontrat lors de l'ajout d'une transformation personnalisée à l'aide de la fonction Lambda
{
...
"vectorIngestionConfiguration": {
"customTransformationConfiguration": { // Custom transformation
"intermediateStorage": {
"s3Location": { // the location where input/output of the Lambda is expected
"uri": "string"
}
},
"transformations": [{
"transformationFunction": {
"transformationLambdaConfiguration": {
"lambdaArn": "string"
}
},
"stepToApply": "string" // enum of POST_CHUNKING
}]
},
"chunkingConfiguration": {
"chunkingStrategy": "string",
"fixedSizeChunkingConfiguration": {
"maxTokens": "number",
"overlapPercentage": "number"
}
...
}
}
}
Format d'entrée de transformation Lambda personnalisé
{
"version": "1.0",
"knowledgeBaseId": "string",
"dataSourceId": "string",
"ingestionJobId": "string",
"bucketName": "string",
"priorTask": "string",
"inputFiles": [{
"originalFileLocation": {
"type": "S3",
"s3_location": {
"uri": "string"
}
},
"fileMetadata": {
"key1": "value1",
"key2": "value2"
},
"contentBatches": [{
"key":"string"
}]
}]
}
Format de sortie de transformation Lambda personnalisé
{
"outputFiles": [{
"originalFileLocation": {
"type": "S3",
"s3_location": {
"uri": "string"
}
},
"fileMetadata": {
"key1": "value1",
"key2": "value2"
},
"contentBatches": [{
"key": "string"
}]
}]
}
Le format de fichier pour les objets est référencé dans fileContents
{
"fileContents": [{
"contentBody": "...",
"contentType": "string", // enum of TEXT, PDF, ...
"contentMetadata": {
"key1": "value1",
"key2": "value2"
}
}
...
]
}