New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Comment puis-je synchroniser automatiquement mes données avec Amazon Bedrock ?
Je souhaite automatiser la synchronisation de mes données pour ma base de connaissances Amazon Bedrock.
Brève description
Les organisations qui utilisent une approche basée sur la génération à enrichissement contextuel (RAG) pour leurs applications d'IA doivent maintenir leur base de connaissances synchronisée avec leurs données. Pour automatiser les mises à jour des données, vous pouvez utiliser l'API StartinGestionJob.
Prérequis :
- Un compte AWS disposant des autorisations appropriées.
- Connaissance du kit SDK AWS pour votre langage de programmation préféré.
Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la page Résoudre les erreurs liées à AWS CLI. Vérifiez également que vous utilisez la version la plus récente de l'interface AWS CLI.
Résolution
Utiliser l'API IngestionJob
Procédez comme suit :
-
Configurez votre kit SDK AWS pour votre langage de programmation préféré. Ou, si vous utilisez l'AWS CLI, configurez l'AWS CLI avec vos informations d'identification.
-
Pour trouver l'ID de votre base de connaissances, exécutez la commande list-knowledge-bases de l'AWS CLI :
aws bedrock-agent list-knowledge-bases --region your-region-name
Remarque : Remplacez your-region-name par votre région AWS.
-
Pour trouver l'ID de votre source de données, exécutez la commande list-data-sources de l’AWS CLI :
aws bedrock-agent list-data-sources --knowledge-base-id your-knowledge-base-id --region your-region-name
Remarque : Remplacez your-region-name par votre région AWS et your-knowledge-base-id par l'ID de votre base de connaissances.
-
Exécutez l'API StartIngestionJob :
SDK_BedrockAgent_Client.StartIngestionJob( --knowledge-base-id your-knowledge-base-id --data-source-id your-data-source-id)
Remarque : L'apparence de l'API peut varier en fonction du langage de programme utilisé. Ou l’API peut être différente si vous utilisez l'interface de ligne de commande AWS. Vous trouverez ci-dessous un exemple qui utilise Python et boto3 :
import boto3from botocore.exceptions import ClientError def start_ingestion_job(knowledge_base_id, data_source_id): bedrock = boto3.client('bedrock-agent', region_name='your-region') try: response = bedrock.start_ingestion_job( knowledgeBaseId=knowledge_base_id, dataSourceId=data_source_id ) return response except ClientError as e: print(f"An error occurred: {e}") return None --# Usage knowledge_base_id = 'your-knowledge-base-id' data_source_id = 'your-data-source-id' job_response = start_ingestion_job(knowledge_base_id, data_source_id) if job_response: print(f"Ingestion job started successfully. Job ID: {job_response['ingestionJob']['ingestionJobId']}") else: print("Failed to start ingestion job.")
-
À partir de la sortie, notez l'ingestionJobId.
-
Pour vérifier le statut de la tâche d'ingestion, exécutez l'API GetIngestionJob :
SDK_BedrockAgent_Client.GetIngestionJob( --knowledge-base-id your-knowledge-base-id --data-source-id your-data-source-id --ingestion-job-id your-ingestion-job-id)
Remarque : L'apparence de l'API peut varier en fonction du langage de programme utilisé. Ou l’API peut être différente si vous utilisez l'interface de ligne de commande AWS. Vous trouverez ci-dessous un exemple qui utilise Python et boto3 :
def check_ingestion_job_status(knowledge_base_id, data_source_id, ingestion_job_id): bedrock = boto3.client('bedrock-agent', region_name='your-region') try: response = bedrock.get_ingestion_job( knowledgeBaseId=knowledge_base_id, dataSourceId = data_source_id, ingestionJobId=ingestion_job_id ) return response['ingestionJob']['status'] except ClientError as e: print(f"An error occurred: {e}") return None --# Usage if job_response: status = check_ingestion_job_status(knowledge_base_id, data_source_id, ingestion_job_id) print(f"Current ingestion job status: {status}")
Utiliser un pseudo-code pour transférer vos données vers votre base de connaissances
Utilisez un pseudo-code pour mettre à jour les données de toutes les sources de données disponibles dans votre base de connaissances.
Exemple :
Function StartJob(knowledgeBaseId, dataSourceId) Try job = BedrockAgentService.StartIngestionJob(knowledgeBaseId, dataSourceId) Return job Catch Error LogError("Failed to start ingestion job for data source: " + dataSourceId) Return null Function GetIngestionJobStatus(knowledgeBaseId, dataSourceId, ingestionJobId) Try jobStatus = BedrockAgentService.GetIngestionJob(knowledgeBaseId, dataSourceId, ingestionJobId) Return jobStatus Catch Error LogError("Failed to get status for job: " + ingestionJobId) Return null Function RunIngestionJobs(knowledgeBaseId) dataSources = BedrockAgentService.ListDataSources(knowledgeBaseId) For Each dataSource in dataSources job = StartJob(knowledgeBaseId, dataSource.Id) If job is not null Then LogInfo("Job started successfully for data source: " + dataSource.Id) While job.Status is not (Completed or Failed or Stopped) Wait for short interval job = GetIngestionJobStatus(knowledgeBaseId, dataSource.Id, job.Id) If job is null Then Break While loop If job is not null Then LogInfo("Job completed with status: " + job.Status) Else LogError("Job monitoring failed for data source: " + dataSource.Id) Else LogError("Failed to start job for data source: " + dataSource.Id) Main knowledgeBaseId = "<your-knowledge-base-id" RunIngestionJobs(knowledgeBaseId)
Le code définit trois fonctions principales :
- La fonction StartJob utilise l'API StartinGestionJob pour démarrer une tâche d'ingestion pour la base de connaissances et la source de données que vous fournissez.
- La fonction GetIngestionJobStatus obtient le statut actuel de la tâche d'ingestion que vous fournissez.
- La fonction RunIngestionJobs démarre et surveille les tâches d'ingestion pour les sources de données de la base de connaissances que vous fournissez.
Remarque : Si une opération échoue, consultez vos messages d'erreur pour plus de détails.
Suivre les bonnes pratiques
Pour réduire les problèmes liés à la synchronisation de vos données avec Amazon Bedrock, suivez les bonnes pratiques suivantes :
- Pour gérer les problèmes liés aux appels d'API, implémentez la gestion des erreurs tout au long du processus.
- Pour vérifier périodiquement le statut d'une tâche, utilisez un mécanisme d’interrogation. Pour plus d'informations, consultez la section Rechercher le statut de tâche avec Lambda et AWS Batch.
- Conservez des journaux détaillés du processus d'ingestion à des fins de dépannage et d'audit.
- Suivez les bonnes pratiques AWS en matière de sécurité.
- Examinez les coûts d'ingestion et de stockage des données.

Contenus pertinents
- demandé il y a un anlg...
- demandé il y a un moislg...
- demandé il y a 10 moislg...
- demandé il y a 2 anslg...
- AWS OFFICIELA mis à jour il y a 9 mois
- AWS OFFICIELA mis à jour il y a 9 mois
- AWS OFFICIELA mis à jour il y a 3 mois
- Comment résoudre l'erreur « Impossible de supprimer la base de connaissances » dans Amazon Bedrock ?AWS OFFICIELA mis à jour il y a 4 mois