포스트

[AI] OpenAi Cookbook 프롬프트 설계 가이드

[AI] OpenAi Cookbook 프롬프트 설계 가이드

OpenAI Cookbook 프롬프트 설계 가이드

📚 개요

이 문서는 OpenAI Cookbook에서 소개하는 주요 프롬프트 설계 기법들과 실제 사용 시 자주 발생하는 실수 및 그 해결책을 정리한 문서입니다. GPT 모델을 더 정확하고 효과적으로 활용하기 위한 실전 가이드로 활용할 수 있습니다.

  • 역할(Role): GPT에게 소프트웨어 엔지니어, 알고리즘 멘토, 코드 리뷰어 등의 역할을 부여했는가?
  • 지시 명확성: 입력 목적, 출력 형식, 글자 수, 결과 스타일을 구체적으로 명시했는가?
  • 예시 제공: 원하는 입력/출력 예제를 2~3개 이상 포함시켰는가?
  • 출력 형식 고정: 결과를 JSON, 코드 블록, 표 등으로 제한했는가?
  • 작업 분리: 복잡한 요청을 단계별로 나눠 명확히 처리하도록 구성했는가?
  • 코드 사용 여부 명시: 코드를 출력할 때 언어 및 라이브러리 사용 여부를 명확히 했는가?
  • 테스트 케이스 포함 여부: 알고리즘 문제 또는 코드 요청 시 테스트 케이스를 제공했는가?
  • 컨텍스트 유지: 이전 대화 내용이나 데이터가 반영되어야 하는 경우, 필요한 내용을 함께 포함했는가?–

🧠 OpenAI Cookbook의 주요 프롬프트 설계법

1. 역할(Role) 설정하기

  • 설명: system 메시지를 사용하여 모델에게 전문가나 특정 인물의 역할을 부여합니다. 이를 통해 답변의 말투, 지식 깊이, 표현 방식 등을 설정할 수 있습니다.
  • 사용 예시:
    1
    
    {"role": "system", "content": "당신은 10년 경력의 내과 전문의입니다. 환자의 증상에 대해 친절하고 명확하게 설명하세요."}
    
  • 활용 포인트:
    • 직업, 성격, 말투까지 구체적으로 설정 가능
    • 다양한 톤(친절한, 엄격한, 유머러스한 등) 설정 가능
  • : 역할 설정만으로도 GPT의 응답 품질이 크게 향상됩니다. 가능한 한 구체적으로 설정하세요.

2. 명확하고 구체적인 지시(Explicit Instruction)

  • 설명: 모호한 지시 대신, 구체적인 목표, 형식, 스타일을 명시해야 원하는 결과를 얻을 수 있습니다.
  • 예시:
    1
    
    이 문장을 100자 이내의 정중한 마케팅 문구로 바꿔주세요.
    
  • 활용 포인트:
    • 결과물 길이, 문체(공식, 비공식), 구조 등을 미리 지시
    • 수행해야 할 작업의 목적을 반드시 포함
  • : “잘 정리해줘”보다는 “표 형식으로 요약해줘” 같이 구체화된 요청이 효과적입니다.

3. Few-shot Prompting (예시 포함)

  • 설명: GPT에게 여러 개의 예시를 보여주고, 새로운 입력에 대해 같은 패턴으로 출력하도록 유도하는 방식입니다.
  • 예시:
    1
    2
    3
    
    문장: "나는 배고파" → 감정을 표현한 문장입니다.
    문장: "비가 온다" → 날씨를 묘사한 문장입니다.
    문장: "기분 최고야!" →
    
  • 활용 포인트:
    • 같은 형식으로 된 3~5개의 예시가 이상적
    • 예시에서 원하는 패턴, 표현, 형식을 명확히 보여줘야 함
  • : 다양한 예시를 제공할수록 일반화된 정확한 결과를 유도할 수 있습니다.

4. Chain-of-Thought Prompting (사고의 흐름 유도)

  • 설명: 답을 바로 요구하지 않고, 문제 해결의 과정을 먼저 기술하게 하여 논리적인 사고 과정을 유도합니다.
  • 예시:
    1
    
    이 문제를 단계적으로 풀어보세요. 각 단계의 설명 후, 마지막에 정답만 따로 적어주세요.
    
  • 활용 포인트:
    • 수학, 논리 문제, 분류 작업에 매우 효과적
    • GPT가 reasoning을 하도록 유도
  • : “왜 그렇게 생각했는지 설명해줘”라는 요청도 Chain-of-Thought의 한 예입니다.

5. 출력 포맷 고정하기

  • 설명: GPT가 반환할 출력의 형식을 명시하면, 후속 처리나 자동화가 쉬워집니다.
  • 예시:
    1
    
    다음 형식의 JSON으로 결과를 반환해 주세요: {"카테고리": "", "키워드": "", "설명": ""}
    
  • 활용 포인트:
    • 마크다운 테이블, HTML, 리스트 등도 가능
    • 프로그래밍용 응답, 데이터 입력용 응답 등에 활용
  • : 원하는 형식을 예시로 보여주면 모델이 이를 그대로 따릅니다.

6. 컨텍스트 유지하기 (Prompt Chaining)

  • 설명: GPT는 기본적으로 대화를 기억하지 않기 때문에, 이전에 생성한 응답 또는 문맥을 계속해서 함께 제공해야 합니다.
  • 예시:
    1
    
    앞서 요약한 내용을 기반으로, 각 문단에 소제목을 추가해 주세요.
    
  • 활용 포인트:
    • 긴 대화나 문서 요약 시 효과적
    • 연속된 작업에서는 매번 맥락을 다시 제공해야 함
  • : 대화형 시나리오에서는 사용자의 입력과 모델의 응답을 계속 저장하고 다음 프롬프트에 포함시키세요.

❗ 프롬프트 설계 시 자주 발생하는 실수 TOP 5

1. 프롬프트가 모호하거나 불명확함

  • 잘못된 예: “이 문장을 자연스럽게 바꿔줘”
  • 해결 예: “이 문장을 정중한 이메일 어투로 바꿔주세요. 100자 이내로.”
  • 해결 팁: 작업 대상, 목적, 형식, 분량을 반드시 구체화하세요.

2. 작업을 분리하지 않고 복잡한 요청을 한 줄에 처리하려 함

  • 잘못된 예: “문서를 요약하고 문법 교정해줘”
  • 해결 예:
    1
    2
    
    1단계: 문법 교정
    2단계: 교정된 문서 요약
    
  • 해결 팁: 복잡한 작업은 Chain-of-Thought 방식으로 분할하여 지시합니다.

3. 역할(role)을 명시하지 않음

  • 잘못된 예: “설명해줘”
  • 해결 예: “당신은 초등학교 교사입니다. 초등학생 눈높이로 설명해 주세요.”
  • 해결 팁: 역할 미설정 시 일반적 중립 스타일로 응답하므로 원하는 결과와 다를 수 있습니다.

4. 예시가 없어 기대 결과를 모델이 추론하기 어려움

  • 잘못된 예: “감정 분석해줘”
  • 해결 예:
    1
    2
    3
    
    '오늘 날씨가 좋다' → 긍정
    '그냥 그런 하루였다' → 중립
    '짜증나는 하루였어' → 부정
    
  • 해결 팁: 입력-출력 예시는 정확도 향상에 매우 효과적입니다.

5. 출력 형식을 지정하지 않음

  • 잘못된 예: “표로 정리해줘”
  • 해결 예:
    1
    2
    
    | 이름 | 직업 | 나이 |
    |------|------|------|
    
  • 해결 팁: 표, JSON 등 원하는 형식은 반드시 명시하고 예시를 함께 제공합니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.