Administrar conjuntos de datos
En este tema se describe la creación, la recuperación, la lista, la actualización y la eliminación de conjuntos de datos.
Crear conjunto de datos
La CreateDataset API crea un nuevo conjunto de datos de evaluación. Se trata de una operación asíncrona (HTTP 202): el conjunto de datos pasa de CREATING a ACTIVE una vez que se completa la ingestión.
Parámetros obligatorios: datasetName (solo alfanuméricos y guiones bajos^[a-zA-Z][a-zA-Z0-9_]{0,47}$) y source (ejemplos en línea o schemaType URI de S3).
Parámetros opcionales: description, kmsKeyArn (clave de cifrado gestionada por el cliente, inmutable tras la creación; consulte Cifrado del conjunto de datos),. tags
Los siguientes ejemplos muestran cómo crear un conjunto de datos:
ejemplo
- 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
Esto crea un archivo JSONL local y registra el conjunto de datos en la configuración del proyecto. Ejecute agentcore deploy para crear el recurso del conjunto de datos y sincronizar los ejemplos con el servicio.
Ejecútelo desde el interior de un directorio de AgentCore proyecto (creado conagentcore 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"}},
)
Para la ingesta de S3, cada línea del archivo JSONL debe incluir un campo. exampleId Se debe poder acceder al bucket de S3 con las credenciales de la persona que llama.
- 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
Obtenga el conjunto de datos
La GetDataset API recupera los metadatos del conjunto de datos, el estado, el recuento de ejemplos y una URL de descarga prefirmada para el contenido del conjunto de datos. De forma predeterminada, lee el borrador; se especifica si se trata datasetVersion de una versión publicada.
downloadUrlEs una URL S3 prefirmada para el dataset.jsonl archivo completo. Puede descargarlo con una simple solicitud HTTP GET sin encabezados de autenticación.
Los siguientes ejemplos muestran cómo obtener un conjunto de datos:
ejemplo
- 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
Enumere los conjuntos de datos
La ListDatasets API devuelve una lista paginada de los conjuntos de datos de tu cuenta y región.
En los siguientes ejemplos, se muestra cómo enumerar los conjuntos de datos:
ejemplo
- 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
Actualizar el conjunto de datos
La UpdateDataset API actualiza los metadatos del conjunto de datos. Se trata de una operación sincrónica (HTTP 200). Solo description y tags se puede actualizar. datasetName,schemaType, y kmsKeyArn son inmutables tras su creación.
El conjunto de datos debe estar en ACTIVEUPDATE_FAILED, o CREATE_FAILED estado.
Los siguientes ejemplos muestran cómo actualizar los metadatos del conjunto de datos:
ejemplo
- AgentCore CLI
-
-
Para actualizar un conjunto de datos con la AgentCore CLI, edite directamente la configuración del conjunto de datos en su agentcore.json archivo y, a continuación, vuelva a implementar:
agentcore deploy
Abreagentcore.json, busca el conjunto de datos en la datasets matriz, modifícalo y description ejecútalo. agentcore deploy Los cambios surten efecto después de la implementación.
Ejecútelo desde el interior de un directorio de AgentCore proyecto (creado conagentcore 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"
Eliminar conjunto de datos
La DeleteDataset API elimina un conjunto de datos. Se trata de una operación asíncrona (HTTP 202).
-
Eliminar por completo (omitirdatasetVersion): elimina todas las versiones, el borrador y el registro del conjunto de datos.
-
Version-specific eliminar (especificar datasetVersion como un número entero): elimina solo la versión publicada.
El conjunto de datos debe estar en DELETE_FAILED estado ACTIVECREATE_FAILED,UPDATE_FAILED, o.
Solo se aceptan números de versión enteros para la eliminación de versiones específicas.
Los siguientes ejemplos muestran cómo eliminar un conjunto de datos:
ejemplo
- 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