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

맞춤형 프롬프트 평가 워크플로우를 구축하는 것은 견고한 프롬프트를 만드는 것에서 시작하여, 그 성능을 확인하기 위한 테스트 데이터를 생성하는 것으로 이어집니다. AWS 관련 코드를 작성하는 사용자를 돕는 프롬프트에 대한 평가 시스템을 설정하는 과정을 살펴보겠습니다.

목표 설정하기

우리의 프롬프트는 AWS 사용 사례를 위한 세 가지 특정 유형의 출력을 작성하는 데 사용자를 지원해야 합니다:

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

핵심 요구 사항은 사용자가 작업에 대한 도움을 요청할 때, 추가 설명, 헤더 또는 푸터 없이 이러한 형식 중 하나로 깨끗한 출력을 반환하는 것입니다.

다음은 초기 프롬프트 템플릿입니다:

python
prompt = f"""
Please provide a solution to the following task:
{task}
"""

평가 데이터셋 만들기

평가 데이터셋은 프롬프트의 성능을 테스트하기 위해 프롬프트에 입력할 입력값들을 포함합니다. 우리의 경우, Claude가 수행하기를 원하는 작업을 설명하는 "task" 속성을 가진 각 객체로 구성된 JSON 객체 배열이 필요합니다.

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

  • 수동으로 직접 구성하기
  • Claude를 사용하여 자동으로 생성하기

자동 생성을 위해서는, 프로덕션 출력이 아닌 테스트 데이터를 생성하는 것이므로 Haiku와 같은 더 빠른 모델을 사용하는 것이 합리적입니다.

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

Claude에게 테스트 케이스를 생성하도록 요청하는 함수를 만들어 보겠습니다. 이 함수는 특정 유형의 AWS 관련 작업을 요청하는 포괄적인 프롬프트를 생성합니다.

다음은 핵심 함수 구조입니다:

python
def generate_dataset():
    prompt = """
    Generate an evaluation dataset for a prompt evaluation. The dataset will be used to evaluate prompts 
    that generate Python, JSON, or Regex specifically for AWS-related tasks. Generate an array of objects, 
    each representing task that requires Python, JSON, or a Regex to complete.
    
    Example output:
    ```json
    [
        \{
            "task": "Description of task",
        \},
        ...additional
    ]
    ```
    
    * Focus on tasks that can be solved by writing a single Python function, a single JSON object, or a single regex
    * Focus on tasks that do not require writing much code
    
    Please generate 3 objects.
    """

생성 로직 구현하기

Claude로부터 깨끗한 JSON 출력을 얻기 위해, 중지 시퀀스와 함께 사전 채우기 기법을 사용하겠습니다:

python
messages = []
add_user_message(messages, prompt)
add_assistant_message(messages, "```json")
text = chat(messages, stop_sequences=["```"])
return json.loads(text)

이 접근 방식은 Claude가 올바르게 형식화된 JSON으로 응답을 시작하고 닫는 마크다운 펜스에서 중지하도록 보장합니다.

데이터셋 테스트 및 저장하기

생성 함수를 실행한 후, 다음과 같은 실제적인 테스트 케이스를 받게 됩니다:

  • ARN에서 AWS 리전을 추출하는 Python 함수 만들기
  • AWS Lambda 함수를 위한 JSON 구성 작성하기
  • AWS S3 버킷 이름을 검증하는 정규 표현식 개발하기

재사용을 쉽게 하기 위해 생성된 데이터셋을 파일로 저장하세요:

python
dataset = generate_dataset()

with open('dataset.json', 'w') as f:
    json.dump(dataset, f, indent=2)

이렇게 하면 노트북 디렉터리에 모든 테스트 케이스를 포함하는 dataset.json 파일이 생성되며, 워크플로우의 다음 단계에서 프롬프트 평가에 바로 사용할 수 있습니다.