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
-
-
# 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.
Führen Sie dies in einem AgentCore Projektverzeichnis aus (erstellt mitagentcore create).
- AgentCore SDK
-
-
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"}},
)
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
-
-
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
-
-
# 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
-
-
# 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
-
-
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
-
-
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
-
-
# 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
-
-
agentcore status --type dataset
- AgentCore SDK
-
-
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
-
-
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
-
-
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
-
-
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.
Führen Sie dies in einem AgentCore Projektverzeichnis aus (erstellt mitagentcore create).
- AgentCore SDK
-
-
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
-
-
import boto3
client = boto3.client('bedrock-agentcore-control')
client.update_dataset(datasetId='my-dataset-id', description='Updated description')
- AWS CLI
-
-
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.
Für das versionsspezifische Löschen werden nur ganzzahlige Versionsnummern akzeptiert.
Die folgenden Beispiele zeigen, wie ein Datensatz gelöscht wird:
Beispiel
- AgentCore CLI
-
-
# 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
-
-
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
-
-
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
-
-
# 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