Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Sign in

맞춤형 프롬프트 평가 워크플로우를 구축하는 것은 명확한 목표를 설정하고 테스트 데이터를 생성하는 것에서 시작합니다. 이 경우, 사용자가 AWS 관련 코드—Python 함수, JSON 구성, 또는 정규 표현식—를 추가 설명이나 포맷팅 없이 작성하도록 돕는 프롬프트를 만들고 있습니다.

목표 설정하기

프롬프트는 사용자의 작업 설명을 받아 세 가지 출력 유형 중 하나를 반환해야 합니다:

  • Python 코드
  • JSON 구성
  • 정규 표현식

핵심 요구사항은 응답에 헤더, 푸터, 또는 설명 없이 요청된 코드만 포함되어야 한다는 것입니다.

간단한 첫 번째 버전으로 시작하면 관리하기 쉬워집니다. 초기 프롬프트 템플릿은 간단합니다: "다음 작업에 대한 해결책을 제공해 주세요: {task}"

평가 데이터셋 생성하기

평가 데이터셋에는 프롬프트에 입력할 예시들이 포함되어 있습니다. 각 테스트 케이스는 프롬프트와 결합되어 Claude로 전송되며, 이를 통해 다양한 시나리오에서 프롬프트가 얼마나 잘 작동하는지 확인할 수 있습니다.

데이터셋을 만드는 방법은 두 가지가 있습니다:

  • 수동으로 테스트 케이스 작성하기
  • Claude를 사용하여 자동으로 생성하기

자동 생성의 경우, 여러 테스트 케이스를 생성하는 것이므로 Haiku와 같은 더 빠른 모델을 사용하는 것이 합리적입니다.

코드로 테스트 데이터 생성하기

데이터셋 생성 함수는 Claude를 사용하여 현실적인 테스트 시나리오를 만듭니다. 기본 구조는 다음과 같습니다:

python
def generate_dataset():
    prompt = """
    Generate 3 AWS-related tasks that require Python, JSON, or Regex solutions.
    
    Focus on tasks that can be solved by writing a single Python function, 
    a single JSON object, or tasks that do not require writing much code.
    
    Example output:
    [
        {
            "task": "Description of task"
        },
        ...additional
    ]
    
    Please generate 3 objects.
    """
    
    messages = []
    add_user_message(messages, prompt)
    add_assistant_message(messages, "```json")
    text = chat(messages, stop_sequences=["```"])
    return json.loads(text)

이 접근 방식은 중지 시퀀스와 함께 사전 채워진 어시스턴트 메시지 기법을 사용하여 깨끗한 JSON 응답을 추출합니다. 어시스턴트 메시지는 "```json"으로 시작하여 닫는 "```"에서 중지되며, 이를 통해 올바르게 포맷된 데이터를 얻을 수 있습니다. ## 데이터셋 저장하기 생성이 완료되면, 계속 재생성하지 않도록 데이터셋을 저장하세요: ``` dataset = generate_dataset() with open("dataset.json", "w") as f: json.dump(dataset, f, indent=2) ``` ` 생성된 데이터셋은 ARN에서 계정 ID를 추출하거나, EC2 구성을 위한 JSON 스키마를 작성하거나, S3 버킷 이름에 대한 정규 표현식 패턴을 만드는 것과 같은 현실적인 AWS 작업을 생성합니다. 세 가지 테스트 케이스는 초기 개발에는 충분하지만, 프로덕션 평가에는 훨씬 더 많고 다양한 예시가 필요합니다. 이러한 기반은 특정 사용 사례에 맞는 평가 데이터셋을 생성하는 반복 가능한 프로세스를 제공하며, 평가를 실행하고 프롬프트 성능을 측정하는 다음 단계를 준비할 수 있게 해줍니다. `