View a markdown version of this page

Administrar conjuntos de datos - Amazon Bedrock AgentCore

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
  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

    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.

    nota

    Ejecútelo desde el interior de un directorio de AgentCore proyecto (creado conagentcore 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"}}, )
    nota

    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
  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

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
  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

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
  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

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
  1. 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.

    nota

    Ejecútelo desde el interior de un directorio de AgentCore proyecto (creado conagentcore 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"

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.

nota

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
  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