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