Wie synchronisiere ich meine Daten automatisch mit Amazon Bedrock?
Ich möchte meine Datensynchronisierung für meine Amazon Bedrock-Wissensdatenbank automatisieren.
Kurzbeschreibung
Unternehmen, die für ihre KI-Anwendungen einen auf Retrieval Augmented Generation (RAG) basierenden Ansatz verwenden, müssen ihre Wissensdatenbank mit ihren Daten synchronisieren. Um Datenaktualisierungen zu automatisieren, kannst du die StartingestionJob-API verwenden.
Voraussetzungen:
- Ein AWS-Konto mit den entsprechenden Berechtigungen.
- Vertrautheit mit dem AWS SDK für die bevorzugte Programmiersprache.
**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, findest du weitere Informationen unter Troubleshoot AWS CLI errors. Stelle außerdem sicher, dass du die neueste Version der AWS CLI-Version verwendest.
Lösung
Die IngestionJob-API verwenden
Führe die folgenden Schritte aus:
-
Konfiguriere AWS SDK für die bevorzugte Programmiersprache. Oder, wenn du die AWS-CLI verwendest, konfiguriere die AWS-CLI mit den Anmeldeinformationen.
-
Führe den AWS-CLI-Befehl list-knowledge-bases aus, um die Wissensdatenbank-ID zu ermitteln:
aws bedrock-agent list-knowledge-bases --region your-region-nameHinweis: Ersetze your-region-name durch die AWS-Region.
-
Führe den AWS-CLI-Befehl list-data-sources aus, um die Datenquellen-ID zu ermitteln:
aws bedrock-agent list-data-sources --knowledge-base-id your-knowledge-base-id --region your-region-nameHinweis: Ersetze your-region-name durch die AWS-Region und your-knowledge-base-id durch die Wissensdatenbank-ID.
-
Führe die StartingestionJob-API aus:
SDK_BedrockAgent_Client.StartIngestionJob( --knowledge-base-id your-knowledge-base-id --data-source-id your-data-source-id)Hinweis: Die API kann je nach verwendeter Programmsprache anders aussehen. Oder sie könnte anders sein, wenn du die AWS CLI verwendest. Das Folgende ist ein Beispiel, das Python und boto3 verwendet:
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.") -
Notiere dir in der Ausgabe die ingestionJobId.
-
Um den Status des Erfassungsauftrags zu überprüfen, führe die GetIngestionJob-API aus:
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)Hinweis: Die API kann je nach verwendeter Programmsprache anders aussehen. Oder sie könnte anders sein, wenn du die AWS CLI verwendest. Das Folgende ist ein Beispiel, das Python und boto3 verwendet:
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}")
Pseudo-Code verwenden, um die Daten in die Wissensdatenbank zu übertragen
Verwende Pseudo-Code, um Daten aus allen verfügbaren Datenquellen in die Wissensdatenbank zu aktualisieren.
Beispiel:
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)
Der Code definiert drei Hauptfunktionen:
- Die StartJob-Funktion verwendet die StartingestionJob-API, um einen Erfassungsauftrag für die von dir angegebene Wissensdatenbank und Datenquelle zu starten.
- Die Funktion GetIngestionJobStatus ruft den aktuellen Status des von dir bereitgestellten Erfassungsauftrags ab.
- Die Funktion RunIngestionJobs startet und überwacht die Erfassungsaufträge für die Datenquellen in der von dir bereitgestellten Wissensdatenbank.
Hinweis: Wenn ein Vorgang fehlschlägt, überprüfe die Fehlermeldungen auf weitere Informationen.
Bewährte Methoden befolgen
Gehe wie folgt vor, um Probleme beim Synchronisieren der Daten mit Amazon Bedrock zu vermeiden:
- Implementiere während des gesamten Prozesses eine Fehlerbehandlung, um Probleme mit API-Aufrufen zu beheben.
- Verwende einen Abfragemechanismus, um den Status eines Auftrags regelmäßig zu überprüfen. Weitere Informationen findest du unter Umfrage zum Status des Auftrags mit Lambda und AWS Batch.
- Führe detaillierte Protokolle des Erfassungsvorgangs für Problembehebungs- und Überwachungszwecke.
- Folge den bewährten Methoden von AWS für Sicherheit.
- Überprüfe die Kosten für Datenerfassung und Speicherung.
- Tags
- Amazon Bedrock
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr