Gérer les ensembles de données
Cette rubrique traite de la création, de la récupération, de la liste, de la mise à jour et de la suppression d'ensembles de données.
Créer un ensemble de données
L'CreateDatasetAPI crée un nouvel ensemble de données d'évaluation. Il s'agit d'une opération asynchrone (HTTP 202) : l'ensemble de données passe de CREATING à ACTIVE une fois l'ingestion terminée.
Paramètres obligatoires : datasetName (caractères alphanumériques et traits de soulignement uniquement^[a-zA-Z][a-zA-Z0-9_]{0,47}$)schemaType, et source (exemples en ligne ou URI S3).
Paramètres facultatifs :description, kmsKeyArn (clé de chiffrement gérée par le client, immuable après la création — voir Chiffrement du jeu de données),tags.
Les exemples suivants montrent comment créer un ensemble de données :
Exemple
- 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
Cela crée un fichier JSONL local et enregistre le jeu de données dans la configuration de votre projet. Exécutez agentcore deploy pour créer la ressource de jeu de données et synchroniser les exemples avec le service.
Exécutez-le depuis un répertoire de AgentCore projet (créé avecagentcore 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"}},
)
Pour l'ingestion de S3, chaque ligne du fichier JSONL doit inclure un exampleId champ. Le compartiment S3 doit être accessible à l'aide des informations d'identification de l'appelant.
- 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
Obtenir un ensemble de données
L'GetDatasetAPI récupère les métadonnées, le statut, le nombre d'exemples et une URL de téléchargement présignée pour le contenu de l'ensemble de données. Par défaut, lit le brouillon ; spécifiez datasetVersion pour une version publiée.
downloadUrlIl s'agit d'une URL S3 présignée pour le dataset.jsonl fichier complet. Vous pouvez le télécharger avec une simple requête HTTP GET sans en-têtes d'authentification.
Les exemples suivants montrent comment obtenir un ensemble de données :
Exemple
- 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
Lister les ensembles de données
L'ListDatasetsAPI renvoie une liste paginée des ensembles de données de votre compte et de votre région.
Les exemples suivants montrent comment répertorier des ensembles de données :
Exemple
- 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
Mettre à jour le jeu
L'UpdateDatasetAPI met à jour les métadonnées de l'ensemble de données. Il s'agit d'une opération synchrone (HTTP 200). Uniquement description et tags peut être mis à jour. datasetNameschemaType, et kmsKeyArn sont immuables après leur création.
Le jeu de données doit être ACTIVE activé UPDATE_FAILED ou en CREATE_FAILED statut.
Les exemples suivants montrent comment mettre à jour les métadonnées d'un ensemble de données :
Exemple
- AgentCore CLI
-
-
Pour mettre à jour un ensemble de données à l'aide de la AgentCore CLI, modifiez directement la configuration du jeu de données dans votre agentcore.json fichier, puis redéployez :
agentcore deploy
Ouvrezagentcore.json, recherchez l'ensemble de données dans le datasets tableau, modifiez-ledescription, puis exécutez-leagentcore deploy. Les modifications prennent effet après le déploiement.
Exécutez-le depuis un répertoire de AgentCore projet (créé avecagentcore 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"
Supprimer le jeu de données
L'DeleteDatasetAPI supprime un ensemble de données. Il s'agit d'une opération asynchrone (HTTP 202).
-
Suppression complète (omettredatasetVersion) : supprime toutes les versions, le brouillon et l'enregistrement de l'ensemble de données.
-
Version-specific supprimer (à spécifier datasetVersion sous forme de nombre entier) : supprime uniquement la version publiée.
L'ensemble de données doit avoir le DELETE_FAILED statut ACTIVE CREATE_FAILEDUPDATE_FAILED,, ou.
Seuls les numéros de version entiers sont acceptés pour la suppression spécifique à la version.
Les exemples suivants montrent comment supprimer un ensemble de données :
Exemple
- 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