프롬프트를 이해하기 쉽게 구조화하는 구분자(Delimiter) 활용법
구분자(Delimiters)
는 프롬프트 내 정보를 명확하게 분리 및 구조화하는 문자 및 문자열(여러개의 문자)을 뜻합니다.
아래는 ###
구분자를 활용해 프롬프트의 지시문, 맥락, 입력 데이터를 블록 단위로 구조화한 예시입니다.
### 지시문
아래 뉴스 기사를 한 문장으로 요약해 주세요.
### 맥락
요약된 문장은 검색 엔진 최적화(SEO)를 위한 메타 태그로 사용됩니다.
### 입력 데이터
생성형 인공지능(AI) 기술이 급속도로 발전하며
미디어, 엔터테인먼트, 교육 분야에서 혁신적인 변화를 이끌어내고 있다.
특히, 생성형 AI는 자연어 처리와 이미지 생성 분야에서..
(이하 생략)
깔끔하게 구조화된 글이 읽기 편한 것처럼, AI도 줄글로 나열된 프롬프트보다 문맥을 명확하게 구조화한 프롬프트를 선호합니다.
자주 활용되는 구분자
구분자는 프롬프트마다 다르게 사용될 수 있으며, 정해진 의미를 갖지는 않습니다.
하지만 프롬프트 엔지니어링에 일반적으로 사용되는 구분자와 그 역할은 다음과 같습니다.
1. [###]
프롬프트에서 제목을 나타낼 때 사용합니다. 프롬프트 정보 블록의 제목, 섹션의 시작을 표시할 때 주로 사용됩니다.
### 요청
매출 증대를 위한 마케팅 전략을 수립해 주세요.
### 참고 자료
- 2022년 1분기 매출
- 2022년 2분기 매출
...
#
기호는 반드시 3개를 연속해 사용할 필요 없으며, #
(대제목), ##
(소제목), ###
(하위 제목) 등 다양한 수준의 제목을 나타낼 수 있습니다.
# 프롬프트란?
## 프롬프트 구성 요소
### 지시문
### 맥락
2. ["""]
긴 인용문이나 여러 줄의 특별한 주의가 필요한 정보를 묶어서 표시할 때, 맥락을 구분할 때 사용합니다.
쌍따옴표는 "단어"
와 같이 특정 부분을 강조할 때도 활용됩니다.
아래 인용문은 어떤 철학자가 남긴 말인가요?
"""
나는 생각한다. 고로 존재한다.
"""
올여름 해외 여행 관광지 "3곳"을 추천해 주세요.
위 기사를 1문장으로 요약해 주세요.
"""여기에 요약 내용 제시"""
3. [---]
프롬프트에서 다른 부분을 시각적으로 구분하고자 할 때 사용됩니다.
이를 통해 각 섹션을 나누어 프롬프트를 더 명확하게 구조화할 수 있습니다.
아래 문장을 올바르게 교정해 주세요
---
I am glad to here that you are doing well.
구분자 혼합 활용
구분자는 아래와 같이 여러개를 혼합해 활용할 수 있습니다.
### 문단 1
"""
여기에는 문단 1의 내용이 들어갑니다.
"""
---
### 문단 2
"""
다음은 문단 2의 내용입니다. AI는 이 부분을 독립적인 단위로 인식합니다.
"""
위 프롬프트는 ###
로 문단의 제목을 구분하고, """
로 각 문단의 내용을 구분하며, ---
로 각 섹션을 시각적으로 구분합니다.
위 3가지 구분자 외에도 프롬프트의 목적에 따라 다양한 구분자를 사용할 수 있습니다.
아래 영어 문장을 교정하고, 어떤 점이 교정되었는지 2가지 이상 설명해 주세요.
* 교정할 문장: I am student who live in Korea. Who is you?
* 교정 결과: <교정된 문장>
1. <교정 내용 1>
2. <교정 내용 2>
3. [추가적인 교정 내용]
위 프롬프트는 ***
구분자를 활용해 교정할 문장을 구분하고, < >
구분자를 활용해 교정된 문장과 교정 내용을 구분합니다.
XML 구분자
이밖에 XML
(데이터의 계층 구조를 표현하는 언어) 형식을 활용해 프롬프트를 구조화할 수도 있습니다.
XML은 태그(Tag)라고 불리는 < >
로 묶인 데이터를 계층 구조로 표현하며, 프롬프트를 명확하게 구조화합니다. 시작 태그는 <태그명>
, 종료 태그는 </태그명>
으로 표현하며, 태그 내 데이터는 <태그명>데이터</태그명>
와 같이 표현합니다.
<article>
미국 소비자 물가지수(CPI)가 전월 대비 0.4% 상승했다고 발표되었습니다.
이는 예상치를 소폭 상회하는 수치로 인플레이션 압력 이 지속되고 있음을 나타내며,
연준의 금리 인상 가능성을 높일 것으로 보입니다.
</article>
<instructions>
1. 위 기사를 바탕으로 블로그 포스트 제목을 작성해 주세요.
2. 검색 엔진 최적화를 위한 키워드 2개를 추출해 주세요.
</instructions>
<context>
요약된 문장은 검색 엔진 최적화(SEO)를 위한 메타 태그로 사용됩니다.
</context>
<output>
- 블로그 포스트 제목: [블로그 포스트 제목]
- 키워드: [키워드1], [키워드2]
</output>
실습
구분자를 활용한 구조화된 프롬프트와, 구분자를 활용하지 않은 프롬프트의 응답을 비교해 보세요.
### 요청
방콕을 하루 동안 여행할 계획입니다.
제한된 시간을 고려해서 하루 만에 둘러볼 관광지를 3곳 추천해 주세요.
---
### 응답 형식
[1] <추천 관광지 1> : <선정 이유>
[2] <추천 관광지 2> : <선정 이유>
[3] <추천 관광지 3> : <선정 이유>
방콕에서 볼만한 관광지를 추천해 주세요.