GenAI Prompt Engineering

Dongwoo Kim·2025년 4월 29일
0

TIL / WIL

목록 보기
127/128

1. Claude

XML 태그를 사용하여 섹션 구분하기

User: 안녕. 내가 말한대로 오전 6시에 나와요. 이
이메일을 좀 더 공손하게 작성해줘.

Assistant: 죄송하지만 제가 받은 원본 이메일이 없어
서 공손하게 다시 작성하기가 어렵습니다...

[잘못된 응답 제공]
User: 안녕.
<email>내가 말한대로 오전 6시에 나와요.</email>
이 이메일을 좀 더 공손하게 만들어줘.

Assistant: 이해했습니다. 주어진 이메일을 더
공손하게 수정해보겠습니다 :
<email>
좋은 아침 팀원 여러분, 모두 편안한 주말을
보내셨기를 바랍니다…

[정확한 응답 제공]

“System: “ / User:” / “Assistant:” 형식

“System: “ + system_prompt
+ “\n\n User:” + prompt
+ “\n\n Assistant:”
System: 3살 어린이에게 설명하듯 답변해주세요.
\n\n
User: 하늘은 왜 파란색이야?
\n\n
Assistant: 안녕! 하늘이 바다처럼 파란색인 이유가
궁금했구나. 하늘이 항상 파란색인 이유는…

명확하고 직접적으로 표현하기

User: 내가 보내는 영어 문장이 문법적으로
틀렸다면 올바르게 고쳐줘.
“I am love you.”

Assistant: 보내주신 영어 문장에는 오류가
있습니다. “I love you”가 맞는 표현입니다.
User: 내가 보내는 영어 문장이 문법적으로
틀렸다면 올바르게 고쳐줘. 추가 설명은 하지
말고 교정한 문장만 보내줘.
“I am love you.”
Assistant: I love you.

예제 사용하기

User: '청바지’로 삼행시를 지어줘.
아래는 삼행시 예시야:
<example>
[오바마]
오직
바라고
마음 먹은대로
</example>
<example>
[마무리]
마음 먹은 것은
무엇이든
이루자
</example>

Assistant: 네, ‘청바지’로 삼행시를 지어보겠습니다.
[청바지]
청춘은
바로
지금

역할 지정하기

User: 이 수학 논리 퍼즐을 풀어봐. {{Puzzle}}

Assistant: [잘못된 응답 제공]
User: 너는 복잡한 논리 문제도 정확하게
풀어내는 세계 1위 수학 박사야. 이 수학 논리
퍼즐을 풀어봐. {{Puzzle}}

Assistant: [올바른 응답 제공]

출력 형식 지정하기

User: 고양이에 대한 귀여운 시를 써줘. JSON
형식을 사용하며 키는 "first_line", "second_line",
"third_line"으로 해줘. JSON으로만 응답해줘.
Assistant:
{
"first_line": ”포근한 털과 동그란 눈",
 "second_line": “작은 발로 살금살금",
 "third_line": “사랑스런 우리 고양이"
}

단계별로 생각하도록 유도하기

User:
Q : 로저는 5개의 테니스 공을 가지고 있다. 그는 테니스공
캔을 2개 더 샀다. 각 캔에는 3의 테니스공이 들어있다. 로
저는 총 몇개의 테니스공을 갖고 있을까? 단계적으로 생각
하여 계산하세요.

Assistant:
네, 단계별로 문제를 해결해 보겠습니다.
1 단계 : 초기 상태 파악
- 로저가 처음에 가지고 있던 테니스공: 5개
2 단계 : 새로 구입한 테니스공 계산
- 구입한 테니스공 캔: 2개
- 각 캔에 들어있는 테니스공: 3개
- 새로 구입한 총 테니스공 = 2(캔의 수) x 3(각 캔의
테니스공 수) = 6개
3 단계 : 총 테니스공 수 계산
- 원래 가지고 있던 테니스공 + 새로 구입한 테니스공
- 5 + 6 = 11개
따라서, 로저는 총 11개

2. OpenAI

프롬프트 시작 부분에 지침을 넣고 ### 또는 """를 사용하여 지침과 컨텍스트를 구분하기

아래 텍스트를 가장 중요한 요점 목록으로 요약하세요. 

{여기에 텍스트를 입력하세요}

[덜 효과적]
아래 텍스트를 가장 중요한 요점들을 요점별로 요약해 보세요. 

텍스트: """ 
{여기에 텍스트를 입력하세요} 
"""

[더 나은 응답 제공]

원하는 맥락, 결과, 길이, 형식, 스타일 등에 대해 가능한 한 구체적이고 설명적이며 자세하게 설명하기

OpenAI에 대한 시를 써보세요.

[덜 효과적]
{유명한 시인}의 스타일로 최근 DALL-E 제품 출시에 초점을 맞춰 OpenAI에 대한 짧은 영감을 주는 시를 쓰세요. (DALL-E는 텍스트를 이미지로 변환하는 ML 모델입니다.)

[더 나은 응답 제공]

예를 들어 원하는 출력 형식을 구체적으로 설명하기

아래 텍스트에 언급된 엔터티를 추출하세요. 다음 4가지 엔터티 유형을 추출하세요: 회사 이름, 사람 이름, 특정 주제 및 테마. 

텍스트: {text}

[덜 효과적]
아래 텍스트에 언급된 중요한 엔터티를 추출하세요. 먼저 모든 회사 이름을 추출한 다음, 모든 사람의 이름을 추출하고, 콘텐츠에 맞는 특정 주제를 추출한 후, 마지막으로 전반적인 주제를 추출하세요 

. 원하는 형식: 
회사 이름: <comma_separated_list_of_company_names> 
사람 이름: -||- 
특정 주제: -||- 
일반 주제: -||- 

텍스트: {text}

[더 나은 응답 제공]

불분명하고 부정확한 설명을 줄이기

이 제품에 대한 설명은 매우 짧아야 하며, 몇 문장으로 이루어져야 하며, 너무 길어서는 안 됩니다.

[덜 효과적]
이 제품을 설명하려면 3~5 문장으로 작성하세요.

[더 나은 응답 제공]

무엇을 하지 말아야 할지 말하는 대신 무엇을 해야 할지 말하기

다음은 상담원과 고객 간의 대화입니다. 사용자 이름이나 비밀번호를 묻지 마십시오. 반복하지 마십시오. 

고객: 계정에 로그인할 수 없습니다. 
상담원:

[덜 효과적]
다음은 상담원과 고객 간의 대화입니다. 상담원은 문제를 진단하고 해결책을 제시하지만, 개인 식별 정보(PII) 관련 질문은 하지 않습니다. 사용자 이름이나 비밀번호와 같은 개인 식별 정보를 묻는 대신, www.samplewebsite.com/help/faq 도움말을 참조하도록 안내합니다. 

고객: 계정에 로그인할 수 없습니다. 
상담원:

[더 나은 응답 제공]

코드 생성별 - 모델을 특정 패턴으로 유도하기 위해 "주도 단어"를 사용

# Write a simple python function that
# 1. Ask me for a number in mile
# 2. It converts miles to kilometers

[덜 효과적]
# Write a simple python function that
# 1. Ask me for a number in mile
# 2. It converts miles to kilometers
 
import

[더 나은 응답 제공]

아래 코드 예제에서는 모델에 " import " 힌트를 추가하여 Python으로 작성을 시작하도록 합니다. (마찬가지로 "SELECT"는 SQL 문의 시작을 알리는 좋은 힌트입니다.)

Reference

https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api
https://www.promptingguide.ai/kr/introduction/tips

profile
kimphysicsman

0개의 댓글