업무 파일럿(업무 전문가)를 위한 프롬프트 엔지니어링: 실전 가이드 – 1. 프롬프트 엔지니어링 04 출력 형식

한 업무의 결과가 다른 업무의 입력으로 사용되는 경우, 데이터 형식이나 구조에 대한 요구가  있을 수 있습니다. 결과가 생성형 AI에 의해 생성되는 경우 출력 형식을 지정하거나 예시로 작성할 수 있습니다.

  • 이전 업무의 생성 결과를 다음 업무에서 소프트웨어 적으로 처리해야 할 필요가 있는 경우: JSON이나 XML과 같은 구조화된 데이터 형식이 적합합니다. 이러한 형식은 데이터의 구조를 명확하게 정의하고, 기계가 쉽게 파싱하고 처리할 수 있도록 설계되었습니다. 데이터의 일관성과 정확성을 유지하는 데 효과적입니다.

    • 형식에 대한 요구만 있는 경우
      • 다음 회사 직원 정보를 JSON과 XML 두 가지 형식으로 모두 출력해주세요:
        – 직원명
        – 부서
        – 입사일
        – 담당 프로젝트 목록
        – 보유 기술
    • 세부 요구사항이 있는 경우
      • 팀 프로젝트 정보를 다음 JSON 구조로 출력해주세요:
        {
        “projectName”: “프로젝트명”,
        “duration”: “기간”,
        “members”: [
        {
        “name”: “이름”,
        “role”: “역할”,
        “tasks”: [“작업1”, “작업2”]
        }
        ]
        }
      • 학교 정보를 다음 XML 구조로 작성해주세요:
        <school>
        <name>학교명</name>
        <departments>
        <department>
        <name>학과명</name>

        </school>
    • 예시로 작성
      • 부산의 인구, 면적, 설립 연도를 JSON 형식으로 출력해주세요.출력 형식 예시:
        json
        {
        "city": "Seoul",
        "population": 9700000,
        "area": 605.2,
        "founded": 1392
        }
  • 생성형 AI 모델 뿐만 아니라 사람도 읽고 이해하는 것이 중요한 경우 (보고서, 문서 등): 마크다운, HTML, 또는 일반 텍스트와 같은 사람이 읽기 쉬운 형식이 적합합니다. 가독성과 이해도를 높이는 데 중점을 두고, 필요한 경우 표나 그림과 같은 시각적 요소를 추가할 수 있습니다.
    • 마크다운 – 주요 정보를 섹션으로 구분하기 좋습니다. 생성형  AI 모델이 정보를 더 효율적으로 처리할 수 있게 해주기 때문에 응답 뿐만 아니라 프롬프트 핵심요소 구조화에도 효과적입니다.
      • # [제목]
        ## [부제목]
        ### [소제목]
      • – 항목1
        – 항목2
      • 1. 순서1
        2. 순서2
    • 구조와 데이터 형식
      • 제목: [제목]
        주요 내용: [내용]
        결론: [결론]
      • 제목: [입력]
        작성자: [입력]
        날짜: [YYYY-MM-DD]
        카테고리: [선택사항: A/B/C]
        내용: [입력]
    • 조건부
      • IF [조건] THEN
        [출력 형식 A]
        ELSE
        [출력 형식 B]

        • IF <numeric_value> > 0 AND <numeric_value> < 100 THEN
          “범위 내”
          ELSE
          “범위 밖”
      • | 열1 | 열2 | 열3 |
        |—–|—–|—–|
        | 데이터1 | 데이터2 | 데이터3 |
    • 포맷 지시어 사용
      • 리스트 형식
        • <numbered_list>: 번호 매긴 목록
        • <bullet_points>: 글머리 기호 목록
        • <comma_separated_list>: 쉼표로 구분된 목록
      • 데이터 유형 지정
        • <numeric_value>: 숫자 값
        • <percentage>: 퍼센트 형식
        • <currency_value>: 화폐 값
        • <date_format>: 날짜 형식 (YYYY-MM-DD)
      • 텍스트 스타일
        • <uppercase>: 대문자
        • <lowercase>: 소문자
        • <title_case>: 각 단어의 첫 글자 대문자
        • <camel_case>: 낙타 등 표기법
      • 구체적인 출력 구조
        • <key_value_pairs>: 키-값 쌍
        • <table_format>: 표 형식
        • <markdown_table>: 마크다운 표
        • <code_block>: 코드 블록
      • 길이 및 상세도 지정
        • <short_description>: 간단한 설명
        • <detailed_explanation>: 상세한 설명
        • <max_words:20>: 최대 단어 수
        • <min_words:50>: 최소 단어 수
      • 감정 및 톤
        • <professional_tone>
        • <casual_tone>
        • <empathetic_response>
      • 특정 도메인 형식
        • <scientific_notation>
        • <chemical_formula>
        • <programming_syntax>
      • 예시
        • “키는 <numeric_value> 형식을 사용하고, 시장 점유율은 <percentage> 형식을 사용하고, 월 매출은 <currency_value> 형식을 사용해서 표시해주세요.”
        • “서울에 대해 다음 형식으로 정보를 제공하세요:
          {
          “name”: <city_name>,
          “population”: <numeric_value>,
          “founded”: <year>,
          “key_attractions”: <comma_separated_list>,
          “description”: <short_description>
          }”
  • 플레이스 홀더
    • 여러 단계가 있고 이전 단계의 결과를 사용해야 할 경우, 이전 단계의 결과를 지정해야 합니다.
    • 플레이스홀더가 일반 텍스트와 명확히 구분되어야 하며, 어떤 값으로 대체될지 명확하게 나타내야 한다는 것입니다.
      • 구분자 사용
    • 플레이스 홀더가 무엇으로 대체되어야 하는 지를 설명합니다.
      • [프롬프트 2의 출력(영어 번역)]
        • 프롬프트 2의 출력을 영어 번역한 결과로 대체됩니다.
    • 지정 방식은 사용하는 시스템이나 프로그래밍 언어, 혹은 특정 애플리케이션에 따라 관습적인 표기법이 있을 수 있습니다.
      • 대괄호: [내용]
        • 가장 일반적입니다. 명확하게 구분되고 직관적입니다.
      •  중괄호
        • {내용}
          • 프로그래밍에서 변수를 나타낼 때 자주 사용됩니다. (예: Python의 f-string)
      • 이중 중괄호
        • {{내용}}
          • 템플릿 엔진이나 특정 마크업 언어에서 사용될 수 있습니다. 변수와 일반 텍스트를 명확히 구분하기 위해 사용합니다.
      • 특수 기호
        • %내용%, $내용, #내용#
          • 특정 프로그램이나 시스템에서 사용되는 특수 기호를 사용할 수 있습니다.
      • 함수 호출 형태
        • get_content(), content()
          • 프로그래밍적으로 값을 가져오는 경우 함수 호출 형태를 사용하기도 합니다.
    • 생성형 AI 모델이 플레이스홀더에 내용을 채워 넣을 수 없습니다.  플레이스홀더가 제대로 작동하려면 플레이스홀더를 해석하고 처리하는 기능이 생성형 AI 서비스로 제공되어야 합니다.
About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*