

# 管理数据集示例
<a name="datasets-examples"></a>

数据集达到`ACTIVE`状态后，您可以在草稿中添加、更新、删除和列出示例。所有示例突变都是异步的 (HTTP 202)，并且使用全有或全无语义——如果找不到任何示例 ID，则整个批次都会失败。`ResourceNotFoundException`

每个请求最多 1,000 个示例。内联内容限制：5 MB。

## AddDatasetExamples
<a name="datasets-add-examples"></a>

以下示例说明如何向数据集添加示例：

**Example**  

1. 要 AgentCore 使用 CLI 添加示例，请将新场景附加到本地 JSONL 文件中，然后重新部署：

   ```
   # Edit agentcore/datasets/my_eval_dataset.jsonl — add new lines
   agentcore deploy
   ```

   部署会在您的 JSONL 文件中检测到新场景并将其添加到服务中。仅应用差异，不会重新上传现有示例。
**注意**  
在 AgentCore 项目目录（使用创建`agentcore create`）中运行它。

1. 

   ```
   from bedrock_agentcore.evaluation import DatasetClient
   
   client = DatasetClient(region_name="us-west-2")
   
   ds = client.add_examples_and_wait(
       datasetId="my-dataset-id",
       source={
           "inlineExamples": {
               "examples": [
                   {
                       "scenario_id": "TC-02",
                       "turns": [{"input": "Transfer $100", "expected_response": "Transfer complete."}],
                   }
               ]
           }
       },
   )
   print(f"Example count: {ds['exampleCount']}")
   ```

1. 

   ```
   import boto3
   import time
   
   client = boto3.client('bedrock-agentcore-control')
   
   resp = client.add_dataset_examples(
       datasetId='my-dataset-id',
       source={'inlineExamples': {'examples': [
           {'scenario_id': 'TC-02', 'turns': [{'input': 'Transfer $100', 'expected_response': 'Transfer complete.'}]}
       ]}}
   )
   print(f"Added example IDs: {resp['exampleIds']}")
   
   # Poll until ACTIVE
   while True:
       ds = client.get_dataset(datasetId='my-dataset-id')
       if ds['status'] == 'ACTIVE':
           break
       time.sleep(2)
   ```

1. 

   ```
   aws bedrock-agentcore-control add-dataset-examples \
       --dataset-id my-dataset-id \
       --source '{"inlineExamples": {"examples": [{"scenario_id": "TC-02", "turns": [{"input": "Transfer $100", "expected_response": "Transfer complete."}]}]}}'
   ```

## UpdateDatasetExamples
<a name="datasets-update-examples"></a>

每个条目必须包括`exampleId`加上更新的内容字段。数据集必须处于`ACTIVE`或`UPDATE_FAILED`状态。

以下示例演示如何更新数据集示例：

**Example**  

1. 要 AgentCore 使用 CLI 更新示例，请修改本地 JSONL 文件中的现有方案，然后重新部署：

   ```
   # Edit agentcore/datasets/my_eval_dataset.jsonl — modify existing lines
   agentcore deploy
   ```

   部署会将您的本地文件与服务进行比较，并更新更改的示例。每行都必须保留其`exampleId`信息，服务才能将其识别为更新而不是新示例。
**注意**  
在 AgentCore 项目目录（使用创建`agentcore create`）中运行它。

1. 

   ```
   from bedrock_agentcore.evaluation import DatasetClient
   
   client = DatasetClient(region_name="us-west-2")
   
   ds = client.update_examples_and_wait(
       datasetId="my-dataset-id",
       examples=[
           {
               "exampleId": "example-id-from-list",
               "scenario_id": "TC-02-updated",
               "turns": [{"input": "Transfer $200", "expected_response": "Transfer complete."}],
           }
       ],
   )
   ```

1. 

   ```
   import boto3
   import time
   
   client = boto3.client('bedrock-agentcore-control')
   
   client.update_dataset_examples(
       datasetId='my-dataset-id',
       examples=[
           {
               'exampleId': 'example-id-from-list',
               'scenario_id': 'TC-02-updated',
               'turns': [{'input': 'Transfer $200', 'expected_response': 'Transfer complete.'}],
           }
       ]
   )
   
   # Poll until ACTIVE
   while True:
       ds = client.get_dataset(datasetId='my-dataset-id')
       if ds['status'] == 'ACTIVE':
           break
       time.sleep(2)
   ```

1. 

   ```
   aws bedrock-agentcore-control update-dataset-examples \
       --dataset-id my-dataset-id \
       --cli-input-json file://update-examples.json
   ```

## DeleteDatasetExamples
<a name="datasets-delete-examples"></a>

数据集必须处于`ACTIVE``UPDATE_FAILED`、或`CREATE_FAILED`状态。

以下示例展示了如何删除数据集的示例：

**Example**  

1. 要 AgentCore 使用 CLI 删除示例，请从本地 JSONL 文件中删除相应的行，然后重新部署：

   ```
   # Edit agentcore/datasets/my_eval_dataset.jsonl — remove lines
   agentcore deploy
   ```

   部署会检测已删除的场景并将其从服务中删除。
**注意**  
在 AgentCore 项目目录（使用创建`agentcore create`）中运行它。

1. 

   ```
   from bedrock_agentcore.evaluation import DatasetClient
   
   client = DatasetClient(region_name="us-west-2")
   
   ds = client.delete_examples_and_wait(
       datasetId="my-dataset-id",
       exampleIds=["example-id-1", "example-id-2"],
   )
   ```

1. 

   ```
   import boto3
   import time
   
   client = boto3.client('bedrock-agentcore-control')
   
   client.delete_dataset_examples(
       datasetId='my-dataset-id',
       exampleIds=['example-id-1', 'example-id-2']
   )
   
   # Poll until ACTIVE
   while True:
       ds = client.get_dataset(datasetId='my-dataset-id')
       if ds['status'] == 'ACTIVE':
           break
       time.sleep(2)
   ```

1. 

   ```
   aws bedrock-agentcore-control delete-dataset-examples \
       --dataset-id my-dataset-id \
       --example-ids '["example-id-1", "example-id-2"]'
   ```

## ListDatasetExamples
<a name="datasets-list-examples"></a>

返回包含完整内容的分页示例列表。默认情况下，从草稿中读取。指定`datasetVersion`从已发布的版本中读取。

以下示例说明如何列出数据集示例：

**Example**  

1. 

   ```
   # Download examples to your local JSONL file (default: Draft)
   agentcore dataset download --name my_eval_dataset
   
   # Download examples from a published version
   agentcore dataset download --name my_eval_dataset --version 1
   ```

1. 

   ```
   from bedrock_agentcore.evaluation import DatasetClient
   
   client = DatasetClient(region_name="us-west-2")
   
   # List examples from Draft
   resp = client.list_dataset_examples(datasetId="my-dataset-id")
   for example in resp["examples"]:
       print(f"  {example['exampleId']}: {example['scenario_id']}")
   
   # List examples from a published version
   resp = client.list_dataset_examples(datasetId="my-dataset-id", datasetVersion="1")
   ```

1. 

   ```
   import boto3
   
   client = boto3.client('bedrock-agentcore-control')
   
   resp = client.list_dataset_examples(datasetId='my-dataset-id')
   for example in resp['examples']:
       print(f"  {example['exampleId']}: {example.get('scenario_id')}")
   
   # List examples from a published version
   resp = client.list_dataset_examples(datasetId='my-dataset-id', datasetVersion='1')
   ```

1. 

   ```
   # List examples from Draft
   aws bedrock-agentcore-control list-dataset-examples \
       --dataset-id my-dataset-id
   
   # List examples from a published version
   aws bedrock-agentcore-control list-dataset-examples \
       --dataset-id my-dataset-id \
       --dataset-version 1
   ```