

# 데이터 세트 관리 예제
<a name="datasets-examples"></a>

데이터 세트가 `ACTIVE` 상태에 도달하면 초안에서 예제를 추가, 업데이트, 삭제 및 나열할 수 있습니다. 모든 예제 변형은 비동기식(HTTP 202)이며 all-or-nothing 의미 체계를 사용합니다. 예제 ID를 찾을 수 없는 경우 전체 배치가에서 실패합니다`ResourceNotFoundException`.

요청당 최대 1,000개의 예제. 인라인 콘텐츠 제한: 5MB.

## 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 파일에서 새 시나리오를 감지하여 서비스에 추가합니다. diff만 적용됩니다. 기존 예제는 다시 업로드되지 않습니다.
**참고**  
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
   ```