Gestione dei set di dati
Questo argomento tratta la creazione, il recupero, l'elenco, l'aggiornamento e l'eliminazione dei set di dati.
Crea set di dati
L'CreateDatasetAPI crea un nuovo set di dati di valutazione. Si tratta di un'operazione asincrona (HTTP 202): il set di dati passa da a una volta completata l'ingestione. CREATING ACTIVE
Parametri richiesti: datasetName (solo caratteri alfanumerici e di sottolineatura^[a-zA-Z][a-zA-Z0-9_]{0,47}$), e (esempi in linea o URI S3). schemaType source
Parametri opzionali: description, kmsKeyArn (chiave di crittografia gestita dal cliente, immutabile dopo la creazione, vedi Crittografia del set di dati),. tags
Gli esempi seguenti mostrano come creare un set di dati:
Esempio
- 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
Questo crea un file JSONL locale e registra il set di dati nella configurazione del progetto. Esegui agentcore deploy per creare la risorsa del set di dati e sincronizzare gli esempi con il servizio.
Eseguilo dall'interno di una directory di AgentCore progetto (creata 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"}},
)
Per l'ingestione di S3, ogni riga del file JSONL deve includere un campo. exampleId Il bucket S3 deve essere accessibile utilizzando le credenziali del chiamante.
- 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
Ottieni set di dati
L'GetDatasetAPI recupera i metadati del set di dati, lo stato, il conteggio degli esempi e un URL di download predefinito per il contenuto del set di dati. Per impostazione predefinita, legge la bozza; specifica per una versione pubblicata. datasetVersion
downloadUrlSi tratta di un URL S3 predefinito per il file completo. dataset.jsonl Puoi scaricarlo con una semplice richiesta HTTP GET senza intestazioni di autenticazione.
Gli esempi seguenti mostrano come ottenere un set di dati:
Esempio
- 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
Elenca i set di dati
L'ListDatasetsAPI restituisce un elenco impaginato di set di dati nel tuo account e nella tua regione.
Gli esempi seguenti mostrano come elencare i set di dati:
Esempio
- 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
Aggiorna il set di dati
L'UpdateDatasetAPI aggiorna i metadati del set di dati. Si tratta di un'operazione sincrona (HTTP 200). Solo description e tags può essere aggiornata. datasetNameschemaType, e kmsKeyArn sono immutabili dopo la creazione.
Il set di dati deve essere inACTIVE, UPDATE_FAILED o deve essere in stato. CREATE_FAILED
Gli esempi seguenti mostrano come aggiornare i metadati del set di dati:
Esempio
- AgentCore CLI
-
-
Per aggiornare un set di dati con la AgentCore CLI, modifica la configurazione del set di dati direttamente nel agentcore.json tuo file, quindi ridistribuisci:
agentcore deploy
Apriagentcore.json, trova il set di dati nell'datasetsarray, modificalo, quindi esegui. description agentcore deploy Le modifiche hanno effetto dopo la distribuzione.
Eseguilo dall'interno di una directory di AgentCore progetto (creata 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"
Elimina il set di dati
L'DeleteDatasetAPI elimina un set di dati. Si tratta di un'operazione asincrona (HTTP 202).
-
Eliminazione completa (omissionedatasetVersion): elimina tutte le versioni, la bozza e il record del set di dati.
-
Version-specific delete (specifica datasetVersion come numero intero): elimina solo la versione pubblicata.
Il set di dati deve essere inACTIVE, CREATE_FAILEDUPDATE_FAILED, o stato. DELETE_FAILED
Per l'eliminazione specifica della versione sono accettati solo numeri di versione interi.
Gli esempi seguenti mostrano come eliminare un set di dati:
Esempio
- 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