View a markdown version of this page

Datensätze verwalten - Amazon Grundgestein AgentCore

Datensätze verwalten

Dieses Thema behandelt das Erstellen, Abrufen, Auflisten, Aktualisieren und Löschen von Datensätzen.

Datensatz erstellen

Die CreateDataset API erstellt einen neuen Bewertungsdatensatz. Dies ist ein asynchroner Vorgang (HTTP 202) — der Datensatz wechselt von CREATING zu, ACTIVE sobald die Aufnahme abgeschlossen ist.

Erforderliche Parameter: datasetName (nur alphanumerische Zeichen und Unterstriche,^[a-zA-Z][a-zA-Z0-9_]{0,47}$)schemaType, und source (Inline-Beispiele oder S3-URI).

Optionale Parameter:description, kmsKeyArn (vom Kunden verwalteter Verschlüsselungsschlüssel, nach der Erstellung unveränderlich — siehe Datensatzverschlüsselung),. tags

Die folgenden Beispiele zeigen, wie ein Datensatz erstellt wird:

Beispiel
AgentCore CLI
  1. # Add a dataset to your project agentcore add dataset --name my_eval_dataset \ --schema-type AGENTCORE_EVALUATION_PREDEFINED_V1 # Edit the generated JSONL file with your scenarios # File location: agentcore/datasets/my_eval_dataset.jsonl # Deploy to create the dataset in your AWS account agentcore deploy

    Dadurch wird eine lokale JSONL-Datei erstellt und der Datensatz in Ihrer Projektkonfiguration registriert. Führen Sie den agentcore deploy Befehl aus, um die Datensatz-Ressource zu erstellen und Beispiele mit dem Service zu synchronisieren.

    Anmerkung

    Führen Sie dies in einem AgentCore Projektverzeichnis aus (erstellt mitagentcore create).

AgentCore SDK
  1. from bedrock_agentcore.evaluation import DatasetClient client = DatasetClient(region_name="us-west-2") # Create with inline examples (polls until ACTIVE) ds = client.create_dataset_and_wait( datasetName="customer_support_scenarios", schemaType="AGENTCORE_EVALUATION_PREDEFINED_V1", source={ "inlineExamples": { "examples": [ { "scenario_id": "TC-01", "turns": [{"input": "What is my balance?", "expected_response": "Your balance is $50."}], "assertions": ["Response includes a dollar amount"], } ] } }, ) print(f"Dataset ID: {ds['datasetId']}, Status: {ds['status']}") # Create with S3 source ds = client.create_dataset_and_wait( datasetName="my_s3_dataset", schemaType="AGENTCORE_EVALUATION_PREDEFINED_V1", source={"s3Source": {"s3Uri": "s3://my-bucket/scenarios.jsonl"}}, )
    Anmerkung

    Für die S3-Aufnahme muss jede Zeile in der JSONL-Datei ein Feld enthalten. exampleId Auf den S3-Bucket muss mit den Anmeldeinformationen des Aufrufers zugegriffen werden können.

AWS SDK
  1. import boto3 import time client = boto3.client('bedrock-agentcore-control') response = client.create_dataset( datasetName='customer_support_scenarios', schemaType='AGENTCORE_EVALUATION_PREDEFINED_V1', source={ 'inlineExamples': { 'examples': [ { 'scenario_id': 'TC-01', 'turns': [{'input': 'What is my balance?', 'expected_response': 'Your balance is $50.'}], 'assertions': ['Response includes a dollar amount'], } ] } } ) dataset_id = response['datasetId'] # Create with S3 source response = client.create_dataset( datasetName='my_s3_dataset', schemaType='AGENTCORE_EVALUATION_PREDEFINED_V1', source={ 's3Source': {'s3Uri': 's3://my-bucket/scenarios.jsonl'} } ) # Poll until ACTIVE while True: ds = client.get_dataset(datasetId=dataset_id) if ds['status'] in ('ACTIVE', 'CREATE_FAILED'): break time.sleep(2)
AWS CLI
  1. # Create with inline examples aws bedrock-agentcore-control create-dataset \ --dataset-name "customer_support_scenarios" \ --schema-type AGENTCORE_EVALUATION_PREDEFINED_V1 \ --source '{"inlineExamples": {"examples": [{"scenario_id": "TC-01", "turns": [{"input": "What is my balance?", "expected_response": "Your balance is $50."}], "assertions": ["Response includes a dollar amount"]}]}}' # Create with S3 source aws bedrock-agentcore-control create-dataset \ --dataset-name "my_s3_dataset" \ --schema-type AGENTCORE_EVALUATION_PREDEFINED_V1 \ --source '{"s3Source": {"s3Uri": "s3://my-bucket/scenarios.jsonl"}}' # Poll until ACTIVE aws bedrock-agentcore-control get-dataset \ --dataset-id my-dataset-id

Datensatz abrufen

Die GetDataset API ruft Datensatz-Metadaten, den Status, die Anzahl der Beispiele und eine vordefinierte Download-URL für den Datensatzinhalt ab. Liest standardmäßig den Entwurf; geben Sie dies datasetVersion für eine veröffentlichte Version an.

Das downloadUrl ist eine vorsignierte S3-URL für die vollständige dataset.jsonl Datei. Sie können es mit einer einfachen HTTP-GET-Anfrage ohne Authentifizierungsheader herunterladen.

Die folgenden Beispiele zeigen, wie Sie einen Datensatz abrufen können:

Beispiel
AgentCore CLI
  1. # Show dataset deployment status and metadata agentcore status --type dataset # Download dataset content to your local JSONL file (default: Draft) agentcore dataset download --name my_eval_dataset # Download a specific published version agentcore dataset download --name my_eval_dataset --version 1
AgentCore SDK
  1. from bedrock_agentcore.evaluation import DatasetClient client = DatasetClient(region_name="us-west-2") # Get dataset (default: Draft) ds = client.get_dataset(datasetId="my-dataset-id") print(f"Status: {ds['status']}, Examples: {ds['exampleCount']}") print(f"Download URL: {ds['downloadUrl']}") # Get a specific published version ds_v1 = client.get_dataset(datasetId="my-dataset-id", datasetVersion="1")
AWS SDK
  1. import boto3 client = boto3.client('bedrock-agentcore-control') response = client.get_dataset(datasetId='my-dataset-id') print(f"Status: {response['status']}, Examples: {response['exampleCount']}") # Download the dataset content via presigned URL if 'downloadUrl' in response: import requests data = requests.get(response['downloadUrl']) print(data.text) # Get a specific published version response = client.get_dataset(datasetId='my-dataset-id', datasetVersion='1')
AWS CLI
  1. # Get dataset (default: Draft) aws bedrock-agentcore-control get-dataset \ --dataset-id my-dataset-id # Get a specific published version aws bedrock-agentcore-control get-dataset \ --dataset-id my-dataset-id \ --dataset-version 1

Datensätze auflisten

Die ListDatasets API gibt eine paginierte Liste von Datensätzen in Ihrem Konto und Ihrer Region zurück.

Die folgenden Beispiele zeigen, wie Datensätze aufgelistet werden:

Beispiel
AgentCore CLI
  1. agentcore status --type dataset
AgentCore SDK
  1. from bedrock_agentcore.evaluation import DatasetClient client = DatasetClient(region_name="us-west-2") response = client.list_datasets() for dataset in response["datasets"]: print(f" {dataset['datasetName']} ({dataset['status']})")
AWS SDK
  1. import boto3 client = boto3.client('bedrock-agentcore-control') response = client.list_datasets() for dataset in response['datasets']: print(f" {dataset['datasetName']} ({dataset['status']})")
AWS CLI
  1. aws bedrock-agentcore-control list-datasets

Datensatz aktualisieren

Die UpdateDataset API aktualisiert die Datensatz-Metadaten. Dies ist ein synchroner Vorgang (HTTP 200). Nur description und tags kann aktualisiert werden. datasetNameschemaType, und kmsKeyArn sind nach der Erstellung unveränderlich.

Der Datensatz muss den CREATE_FAILED Status ACTIVEUPDATE_FAILED, oder haben.

Die folgenden Beispiele zeigen, wie Datensatz-Metadaten aktualisiert werden:

Beispiel
AgentCore CLI
  1. Um einen Datensatz mit der AgentCore CLI zu aktualisieren, bearbeiten Sie die Datensatzkonfiguration direkt in Ihrer agentcore.json Datei und stellen Sie ihn dann erneut bereit:

    agentcore deploy

    Öffnen Sie den Datensatzagentcore.json, suchen Sie ihn im datasets Array, ändern Sie ihn und führen Sie description ihn dann ausagentcore deploy. Änderungen werden nach der Bereitstellung wirksam.

    Anmerkung

    Führen Sie dies in einem AgentCore Projektverzeichnis aus (erstellt mitagentcore create).

AgentCore SDK
  1. from bedrock_agentcore.evaluation import DatasetClient client = DatasetClient(region_name="us-west-2") client.update_dataset(datasetId="my-dataset-id", description="Updated description")
AWS SDK
  1. import boto3 client = boto3.client('bedrock-agentcore-control') client.update_dataset(datasetId='my-dataset-id', description='Updated description')
AWS CLI
  1. aws bedrock-agentcore-control update-dataset \ --dataset-id my-dataset-id \ --description "Updated description"

Datensatz löschen

Die DeleteDataset API löscht einen Datensatz. Dies ist eine asynchrone Operation (HTTP 202).

  • Vollständiges Löschen (AuslassendatasetVersion): Löscht alle Versionen, den Entwurf und den Datensatz.

  • Version-specific löschen (datasetVersionals Ganzzahl angeben): Löscht nur die veröffentlichte Version.

Der Datensatz muss den DELETE_FAILED StatusACTIVE, CREATE_FAILEDUPDATE_FAILED, oder haben.

Anmerkung

Für das versionsspezifische Löschen werden nur ganzzahlige Versionsnummern akzeptiert.

Die folgenden Beispiele zeigen, wie ein Datensatz gelöscht wird:

Beispiel
AgentCore CLI
  1. # Delete a specific published version agentcore dataset remove-version 1 --name my_eval_dataset # Delete entire dataset agentcore remove dataset --name my_eval_dataset agentcore deploy
AgentCore SDK
  1. from bedrock_agentcore.evaluation import DatasetClient client = DatasetClient(region_name="us-west-2") # Delete a specific published version client.delete_dataset_and_wait(datasetId="my-dataset-id", datasetVersion="1") # Delete entire dataset (polls until complete) client.delete_dataset_and_wait(datasetId="my-dataset-id")
AWS SDK
  1. import boto3 client = boto3.client('bedrock-agentcore-control') # Delete a specific published version client.delete_dataset(datasetId='my-dataset-id', datasetVersion='1') # Delete entire dataset client.delete_dataset(datasetId='my-dataset-id')
AWS CLI
  1. # Delete a specific published version aws bedrock-agentcore-control delete-dataset \ --dataset-id my-dataset-id \ --dataset-version 1 # Delete entire dataset aws bedrock-agentcore-control delete-dataset \ --dataset-id my-dataset-id