View a markdown version of this page

Gestione dei set di dati - Amazon Bedrock AgentCore

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

    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.

    Nota

    Eseguilo dall'interno di una directory di AgentCore progetto (creata 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

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

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

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

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

    Nota

    Eseguilo dall'interno di una directory di AgentCore progetto (creata 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"

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

Nota

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