View a markdown version of this page

Gerenciar conjuntos de dados - Amazon Bedrock AgentCore

Gerenciar conjuntos de dados

Este tópico aborda a criação, recuperação, listagem, atualização e exclusão de conjuntos de dados.

Criar conjunto de dados

A CreateDataset API cria um novo conjunto de dados de avaliação. Essa é uma operação assíncrona (HTTP 202) — o conjunto de dados muda de para quando a ingestão é concluída. CREATING ACTIVE

Parâmetros obrigatórios: datasetName (somente alfanuméricos e sublinhados^[a-zA-Z][a-zA-Z0-9_]{0,47}$) e source (exemplos embutidos ou URI do S3). schemaType

Parâmetros opcionais:description, kmsKeyArn (chave de criptografia gerenciada pelo cliente, imutável após a criação — consulte Criptografia do conjunto de dados),. tags

Os exemplos a seguir mostram como criar um conjunto de dados:

exemplo
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

    Isso cria um arquivo JSONL local e registra o conjunto de dados na configuração do seu projeto. Execute agentcore deploy para criar o recurso do conjunto de dados e sincronizar exemplos com o serviço.

    nota

    Execute isso de dentro de um diretório de AgentCore projeto (criado comagentcore 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 a ingestão do S3, cada linha no arquivo JSONL deve incluir um campo. exampleId O bucket do S3 deve estar acessível usando as credenciais do chamador.

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

Obtenha o conjunto de dados

A GetDataset API recupera metadados do conjunto de dados, status, contagem de exemplos e um URL de download pré-assinado para o conteúdo do conjunto de dados. Por padrão, lê o Rascunho; especifique datasetVersion para uma versão publicada.

downloadUrlÉ um URL S3 pré-assinado para o arquivo completodataset.jsonl. Você pode baixá-lo com uma solicitação HTTP GET simples sem cabeçalhos de autenticação.

Os exemplos a seguir mostram como obter um conjunto de dados:

exemplo
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

Listar conjuntos de dados

A ListDatasets API retorna uma lista paginada de conjuntos de dados em sua conta e região.

Os exemplos a seguir mostram como listar conjuntos de dados:

exemplo
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

Atualizar conjunto de dados

A UpdateDataset API atualiza os metadados do conjunto de dados. Essa é uma operação síncrona (HTTP 200). Somente description e tags pode ser atualizado. datasetName,schemaType, e kmsKeyArn são imutáveis após a criação.

O conjunto de dados deve estar em ACTIVEUPDATE_FAILED, ou CREATE_FAILED status.

Os exemplos a seguir mostram como atualizar os metadados do conjunto de dados:

exemplo
AgentCore CLI
  1. Para atualizar um conjunto de dados com a AgentCore CLI, edite a configuração do conjunto de dados diretamente no agentcore.json seu arquivo e reimplante:

    agentcore deploy

    Abraagentcore.json, encontre o conjunto de dados na datasets matriz, modifique-o description e executeagentcore deploy. As alterações entram em vigor após a implantação.

    nota

    Execute isso de dentro de um diretório de AgentCore projeto (criado comagentcore 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"

Excluir conjunto de dados

A DeleteDataset API exclui um conjunto de dados. Essa é uma operação assíncrona (HTTP 202).

  • Exclusão completa (omissãodatasetVersion): exclui todas as versões, o rascunho e o registro do conjunto de dados.

  • Version-specific delete (especifique datasetVersion como um número inteiro): exclui somente a versão publicada.

O conjunto de dados deve estar emACTIVE, CREATE_FAILEDUPDATE_FAILED, ou DELETE_FAILED status.

nota

Somente números de versão inteiros são aceitos para exclusão específica da versão.

Os exemplos a seguir mostram como excluir um conjunto de dados:

exemplo
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