データセットを管理する
このトピックでは、データセットの作成、取得、一覧表示、更新、削除について説明します。
データセットを作成する
CreateDataset API は新しい評価データセットを作成します。これは非同期オペレーション (HTTP 202) です。ACTIVE取り込みが完了すると、データセットは から CREATING に移行します。
必須パラメータ: datasetName (英数字とアンダースコアのみ、^[a-zA-Z][a-zA-Z0-9_]{0,47}$)、schemaType、および source (インライン例または S3 URI)。
オプションパラメータ: description、 kmsKeyArn (カスタマーマネージド暗号化キー、作成後に変更不可 — 「データセット暗号化」を参照)tags、。
次の例は、データセットを作成する方法を示しています。
例
- 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これにより、ローカル JSONL ファイルが作成され、データセットがプロジェクト設定に登録されます。
agentcore deployを実行してデータセットリソースを作成し、例を サービスに同期します。注記
AgentCoreプロジェクトディレクトリ内 ( で作成) からこれを実行します
agentcore 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"}}, )注記
S3 取り込みの場合、JSONL ファイルの各行に
exampleIdフィールドが含まれている必要があります。S3 バケットは、発信者の認証情報を使用してアクセスできる必要があります。
-
- 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
-
データセットを取得する
GetDataset API は、データセットコンテンツのデータセットメタデータ、ステータス、サンプル数、および署名付きダウンロード URL を取得します。デフォルトでは、 はドラフトを読み取り、公開されたバージョンdatasetVersionに を指定します。
downloadUrl は、ファイル全体の署名付き S3 URL ですdataset.jsonl。認証ヘッダーなしでプレーン HTTP GET リクエストでダウンロードできます。
次の例は、データセットを取得する方法を示しています。
例
- 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
-
データセットを一覧表示する
ListDatasets API は、アカウントとリージョンのデータセットのページ分割されたリストを返します。
次の例は、データセットを一覧表示する方法を示しています。
例
- 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
-
データセットを更新する
UpdateDataset API はデータセットメタデータを更新します。これは同期オペレーション (HTTP 200) です。更新tagsできるのは descriptionと のみです。datasetName、schemaType、および kmsKeyArnは作成後に変更できません。
データセットは、ACTIVE、UPDATE_FAILED、または CREATE_FAILEDステータスである必要があります。
次の例は、データセットメタデータを更新する方法を示しています。
例
- AgentCore CLI
-
-
AgentCore CLI でデータセットを更新するには、
agentcore.jsonファイル内のデータセット設定を直接編集してから、再デプロイします。agentcore deployを開き
agentcore.json、datasets配列内のデータセットを見つけ、その を変更してからdescription、 を実行しますagentcore deploy。変更はデプロイ後に有効になります。注記
AgentCoreプロジェクトディレクトリ内 ( で作成) からこれを実行します
agentcore 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"
-
データセットを削除する
DeleteDataset API はデータセットを削除します。これは非同期オペレーション (HTTP 202) です。
-
完全削除 ( を省略
datasetVersion): すべてのバージョン、ドラフト、データセットレコードを削除します。 -
バージョン固有の削除 (整数
datasetVersionで指定): その公開されたバージョンのみを削除します。
データセットは、ACTIVE、CREATE_FAILED、UPDATE_FAILED、または DELETE_FAILEDステータスである必要があります。
注記
バージョン固有の削除には、整数バージョン番号のみを使用できます。
次の例は、データセットを削除する方法を示しています。
例
- 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
-