- 신영선
- 기본 과정
- Chat GPT4o
- Chat GPTo1 pro mode
- Chat GPT 4.5
99%가 모르는 GPT 최강 명령어 프롬프트
샘알트먼의 오픈 AI에서 공식으로 발표한 GPT 사용 치트키
- 릴스 영상을 저장 또는 공유하기로 기록을 해놓습니다.
- DM으로 받은 링크를 카톡으로 옮겨 놓습니다.
- PC로 접속해서 AI 즐겨찾기 폴더를 만들어 저장해놓습니다.
- 바로 사용을 해봅니다. 절대 미루지 마세요. (⭐ 제일 중요)
- https://platform.openai.com/docs/guides/prompt-engineering 해당 사이트에 접속합니다.
- DEEPL 번역기 또는 구글 번역기를 사용하여 번역하여 학습합니다.
- 프롬프트 엔지니어링 부분은 제가 번역 해놨으니 보다 쉽게 확인하실 수 있습니다.
- 아래 있는 프롬프트를 GPT에 입력하고 ‘내가 만약 해당 공식을 어기거나, 공식에 있는 내용을 누락한 채로 프롬프트를 입력하면 어떤 부분이 부족했는지 피드백해줘’라고 추가하여 입력합니다.
- 급하신 분들은 아래 프롬프트 양식을 복사해서 사용합니다. 빨간 글씨만 수정해서 사용하면 됩니다.
1. OPEN AI에서 공식 발표한 GPT 프롬프트 양식
당신은 [어떤 상황에도 유연하게 대응하는 고급 AI 어시스턴트]입니다.
- 의도 파악: 사용자의 요청 혹은 질문을 명확히 이해합니다. 불충분한 정보가 있으면 먼저 짚어주거나 추가 정보를 요청하세요.
- 사고 과정: 내부적으로는 문제를 단계별로 검토해 최적의 해답을 도출합니다. 하지만 필요 이상으로 그 과정을 노출하지 마세요. (필요하면 간략하게 요약만)
- 사실성 & 정확도: 확실한 정보만 제시하며, 출처가 불명확하거나 모르면 "정확한 답변이 어렵다"고 솔직하게 말합니다. 근거 없이 추측하지 마세요.
- 명확하고 간결한 답변: 핵심을 중심으로 이해하기 쉽게 설명합니다. 전문용어가 필요하면 간단히 풀어서 부연하세요.
- 추가 가치 제공: 상황에 따라 예시, 참고 자료, 주의사항, 확장 아이디어 등을 능동적으로 제안할 수 있습니다.
- 톤 & 형식:
- 존중과 배려를 바탕으로 대화합니다.
- 요청에 따라 요약/예시/코드/표 등을 제시하되, 과하게 장황하지 않게 유지합니다.
- 글씨 크기, 이모지, 표,그래프 등 시각적 자료를 이용해 가독성을 높여주세요.
- 3000자 캔버스로 설명해주세요
위 지침을 바탕으로, 사용자가 묻거나 요청하는 모든 질문에 최선을 다해 답변하세요.
목차
- 프롬프트 엔지니어링(Prompt Engineering) 개요
- 메시지와 역할(Messages and Roles)
- Responses API 예시
- Chat Completions API 예시
- 추가 데이터 활용(RAG 기법)
- 더 나은 결과를 위한 6가지 전략
- 명확한 지시사항 작성
- 참고 텍스트 제공
- 복잡한 작업을 하위 작업으로 분할
- 모델에게 사고할 시간 주기
- 외부 도구 사용
- 변화 효과를 체계적으로 테스트하기
- 전략별 전술(Tactics)
- 모델 출력 최적화
- 기타 참고자료
- (부록) 반드시 알아야 할 핵심 요약 및 실전 프롬프트 공식
1. 프롬프트 엔지니어링(Prompt Engineering) 개요
- 프롬프트 엔지니어링이란 모델에게 올바른 출력을 유도하기 위해 입력(프롬프트)을 설계하는 과정이다.
- 모델이 잘 모를 수 있는 사적이거나 전문 지식을 추가로 제공하면 결과 품질을 높일 수 있다.
- 사용자는 모델에게 여러 가지 지시사항, 맥락, 예시 등을 포함시켜 원하는 반응을 얻도록 유도할 수 있다.
2. 메시지와 역할(Messages and Roles)
메시지를 모델에게 전달할 때는 messages 배열을 사용한다. 각 메시지는 특정 role을 갖는데, 다음과 같이 구분된다:
- user
- 일반적인 사용자 요청. ChatGPT 등에서 유저가 직접 입력하는 메시지와 유사하다.
- 예: "JavaScript에서 세미콜론은 선택사항인가요?"
- developer (과거 system prompt)
- 사용자 메시지보다 우선순위가 높은 개발자(혹은 시스템)의 지시사항.
- 모델이 전반적으로 어떤 톤이나 성격, 혹은 우선순위를 가져야 하는지 기술할 수 있다.
- 예: "당신은 미국 남동부 출신의 ‘서던벨(Southern Belle)’ 느낌으로 프로그래밍 질문에 답변하는 도움을 주는 어시스턴트입니다."
- assistant
- 이전 단계에서 모델이 생성한 응답을 다시 제공하거나, 예시를 보여줄 때 사용한다.
- 예: 특정 대화 맥락에서 모델이 답변한 내용을 재활용해 추가 힌트 제공.
이렇게 역할을 분리하면, 모델이 어떤 지시사항을 우선적으로 따라야 하는지 명확해진다.
3. Responses API 예시
javascript
복사
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: [
{
"role": "developer",
"content": [
{
"type": "text",
"text": `
당신은 남동부 출신의 서던벨 느낌으로
프로그래밍 관련 질문에 답해주는
매우 도움이 되는 어시스턴트입니다.
`
}
]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "JavaScript에서 세미콜론은 선택사항인가요?"
}
]
}
],
store: true,
});
위 예시는 모델로부터 다음과 같은 응답을 유도한다(예시):
복사
오메, 그 질문 참 반갑네요! 자바스크립트 세계에선 세미콜론이
진주 목걸이 같은 존재라 할 수 있답니다...
4. Chat Completions API 예시
javascript
복사
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: [
{
"role": "developer",
"content": [
{
"type": "text",
"text": `
당신은 남동부 출신의 서던벨 느낌으로
프로그래밍 관련 질문에 답해주는
매우 도움이 되는 어시스턴트입니다.
`
}
]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "JavaScript에서 세미콜론은 선택사항인가요?"
}
]
}
],
store: true,
});
출력 예시는 Responses API 예시와 동일하며, 결과적으로 비슷한 응답 형식을 얻을 수 있다.
5. 추가 데이터 활용(RAG 기법)
- RAG(Retrieval Augmented Generation): 모델에 외부 데이터(예: DB 조회 결과, 관련 문서 등)를 제공해 답변에 반영하도록 하는 기법.
- 모델이 사전에 학습하지 않은 최신 정보나 전문 지식을 활용해야 할 때 효과적.
6. 더 나은 결과를 위한 6가지 전략
- 명확한 지시사항 작성
- 원하는 응답의 분량, 톤, 포맷 등을 구체적으로 말해주면 모델이 더 정확히 응답한다.
- 참고 텍스트 제공
- 모델이 자신 있게 말하도록, 정확한 정보(예: 문서, DB 쿼리 결과 등)을 제공해 “환상(hallucination)”을 줄인다.
- 복잡한 작업을 하위 작업으로 분할
- 한 번에 큰 작업을 처리하기보다는 작은 단계로 나눠 처리하면 오류 확률이 낮아지고, 관리가 쉬워진다.
- 모델에게 사고할 시간 주기
- 모델이 즉시 답을 내놓기보다, 중간 과정을 거쳐 스스로 논리를 전개하도록 요청하면 더 정확한 결과가 나올 수 있다(‘chain of thought’).
- 외부 도구 사용
- 모델이 취약한 부분(예: 대규모 계산, API 호출 등)을 외부 시스템이나 코드로 처리하도록 결합하면 효율성과 정확도가 높아진다.
- 변화 효과를 체계적으로 테스트하기
- 프롬프트를 조금씩 바꿔가며 대규모 테스트를 해보아야, 평균적으로 어떤 프롬프트가 더 좋은 결과를 내는지 알 수 있다.
7. 전략별 전술(Tactics)
7.1.1 쿼리에 구체적인 세부사항 포함
- “이 문서를 요약해줘”보다 “이 문서를 한 문단으로 요약한 뒤, 발표용 슬라이드에 쓸 수 있도록 핵심 키워드를 bullet point로 나열해줘”가 더 정확한 결과를 얻는다.
7.1.2 모델에게 특정 인물/캐릭터/persona로 답하도록 지시
- 예:
- System Prompt: “당신은 유머를 잘 섞어서 답변하는 어시스턴트입니다.”
- User Prompt: “고객에게 감사 편지를 써주세요.” => 반드시 유머가 포함된 편지를 결과물로 기대할 수 있음.
7.1.3 구분자(Delimiter)로 입력 구역을 명확히 지정
- 예:
"""(트리플 쿼터)<article>...</article>등 => 복잡한 문서 구조를 모델에 전달할 때 유용.
7.1.4 작업 단계를 구체적으로 명시
- 예:
- 입력 텍스트 요약
- 그 요약을 다른 언어로 번역
- 번역본을 표 형식으로 정리 … => 모델이 단계별로 출력함으로써 오류 감소.
7.1.5 예시(샘플) 제공
- Few-Shot Prompting 기법: 원하는 답변 형식이나 톤을 실제 예시로 보여줌.
7.1.6 출력 길이 지정
- 예:
- “50단어 내외로 요약해줘”
- “3문장으로 요약해줘”
- “3개의 bullet point로 요약해줘”
7.2.1 레퍼런스 텍스트 기반 답변 유도
- “다음 문서를 참고하여 답변해. 문서에 없는 내용이면 ‘찾지 못했다’고 답해.”
7.2.2 인용/출처 표기
- “반드시 해당 문서의 인용 구간을 답변에 포함해. 문서에 없는 내용이면 ‘정보가 부족하다’고 말해.”
7.3.1 의도 분류를 먼저 수행하고, 필요한 지시사항만 적용
- 예: 고객 질문이 결제 관련인지 기술 지원 관련인지 분류하여, 각 카테고리에 맞는 맞춤형 가이드 제공.
7.3.2 매우 긴 대화가 필요할 경우, 이전 내용을 요약해서 전달
- 모델의 콘텍스트 윈도우 한계를 넘기지 않도록 이전 대화를 요약하거나 핵심만 정리해서 시스템에 주입.
7.3.3 긴 문서를 나눠 요약 후 최종적으로 합치기
- 긴 문서는 한 번에 요약하기 어렵다. 파트별 요약 → 요약들을 종합해 최종 요약.
7.4.1 결론 도출 전에 단계별 해결 과정을 지시
- 예: “문제를 먼저 본인이 풀어보고, 그 해답을 바탕으로 학생 해답의 옳고 그름을 평가해줘.”
7.4.2 내부 추론은 숨기고, 최종 요약만 공개
- 예: “내부 계산 내용은
"""안에 적고(출력은 숨김), 결과만 사용자에게 보여줘.” => 모델이 중간 사고 과정을 노출하지 않고 최종 결과만 제시.
7.4.3 여러 번 답변을 거쳐 누락된 부분을 확인
- “혹시 빠뜨린 관련 구절이 있는지 추가로 찾아봐달라”고 후속 질의를 하여 누락 보완.
7.5.1 Embeddings 기반 검색(벡터 검색)으로 대규모 지식 조회
- 문서를 잘게 쪼개 Embedding 후 벡터 검색으로 필요한 조각만 모델에 전달 → 효율성 및 정확도↑
7.5.2 코드 실행으로 계산 정확도 보완
- 모델 자체 연산이 부정확할 수 있으므로, Python 등 코드를 실행해 정확한 결과를 얻고 이를 다시 모델에 전달.
7.5.3 모델에 함수 호출 기능 부여
- Chat Completion API에서 함수 스키마를 제공하면, 모델이 그 형식에 맞춰 JSON 형태로 함수 호출 파라미터를 생성할 수 있음.
7.6 변화 효과를 체계적으로 테스트하기
- Evals(평가):
- 실제 사용 예시(또는 다양하고 대표성 있는 예시)로 프롬프트 변경 효과를 검증.
- 충분히 많은 테스트 케이스를 사용해 통계적 유의미성을 확보(10개, 100개, 1000개…).
7.6.1 정답 레퍼런스를 기준으로 모델 출력을 비교
- 모델 답변이 골든 스탠더드(정답)에 어느 정도 부합하는지 체크.
- OpenAI Evals와 같은 도구를 사용해 자동화할 수 있음.
8. 모델 출력 최적화
- 정확도(Accuracy), 비용(Cost), **지연시간(Latency)**를 균형 있게 고려해야 한다.
- 정확도를 높이려면 더 많은 정보를 모델에 제공하고, 세부 지시사항을 주어야 한다.
- 비용을 줄이려면 토큰 사용량을 감소시키고, 경우에 따라 더 작은(저렴한) 모델을 사용한다.
- 지연시간(응답속도)은 프롬프트 길이, 병렬 처리, 모델 종류 등에 영향을 받으므로 적절히 조정해야 한다.
I. 반드시 알아야 할 핵심 내용
- 프롬프트 엔지니어링의 개념
- 대형 언어 모델(LLM)에게 원하는 결과를 정확히 얻기 위해 입력(프롬프트)을 정교하게 작성하는 기법이다.
- 세부 지침, 맥락, 예시, 형식 등을 구체적으로 제시할수록 결과 품질이 향상된다.
- 메시지와 역할(Role)의 활용
system(또는developer) 메시지는 전체 대화의 톤과 규칙을 정한다.user메시지는 사용자의 질문 또는 요구 사항이다.assistant메시지는 모델이 이전에 생성했던 답변(또는 예시) 등을 전달할 때 사용한다.
- 6가지 핵심 전략
- 명확한 지시사항 작성
- 출력 형식, 분량, 전문성 수준, 어조 등을 구체적으로 제시
- 참고 텍스트 제공
- 원하는 자료(논문, DB 등)를 모델에 직접 입력해 환상을 줄이고 정확도를 높임
- 복잡한 작업을 하위 작업으로 분할
- 긴 대화나 복잡한 절차는 단계별 처리
- 모델에게 사고할 시간 주기
- Chain of Thought(단계별 추론)를 유도해 논리적 오류를 줄임
- 외부 도구 사용
- Embeddings 검색, 코드 실행(API 연동), 함수 호출 기능 등으로 모델의 한계를 보완
- 변화 효과를 체계적으로 테스트
- Evals(테스트 세트)를 통해 프롬프트 변경 전후 성능 비교
- RAG(Retrieval Augmented Generation) 기법
- 모델이 모르는 정보를 외부에서 찾아서 입력.
- 기존 지식 한계를 보완하고, 최신 정보나 구체적 자료를 활용 가능.
- 출력 최적화 고려사항
- 정확도: 충분한 정보와 지시사항 제공, 불확실 시 근거 제시
- 비용: 토큰 수 관리, 필요 없는 맥락 줄이기, 적절한 모델 크기 선택
- 지연시간: 프롬프트 간소화, 병렬 처리, 모델 선택 등으로 개선
II. 실전에서 활용할 수 있는 프롬프트 공식
공식 1: 기본 틀(역할 + 지시사항 + 입력)
less
복사
[System(또는 Developer) 메시지 예시]
당신은 [원하는 캐릭터/역할/어조]로 [특정 목표/문제]를 해결해주는 어시스턴트입니다.
아래 조건을 준수하세요:
1) ...
2) ...
[User 메시지]
(사용자가 묻고자 하는 질문 또는 요청)
- 목적: 전체 톤과 규칙, 어시스턴트의 역할 확립
공식 2: 단계별 응답 지시
csharp
복사
[System]
다음 단계로 답변해 주세요:
1) 문제를 자체적으로 분석 후 핵심 요점을 도출 (출력은 숨기거나 요약)
2) 최종 결과만 사용자에게 간단명료하게 알려주기
3) 가능하면 근거(출처) 제시
[User]
"구체적인 질문/요청 내용"
- 목적: Chain of Thought 유도 및 불필요한 노출 방지
공식 3: 참고 텍스트 활용
python
복사
[System]
당신은 아래에 주어진 텍스트를 바탕으로만 답변을 구성해야 합니다.
텍스트에 없는 내용은 "정보가 부족합니다"라고 답하세요.
[User]
"""
(참고용 텍스트)
"""
질문: (사용자 질문)
- 목적: 환상(hallucination)을 줄이고 정확도 향상
공식 4: 함수/코드 실행 결합
csharp
복사
[System]
당신은 외부 코드 실행 환경에 접근할 수 있습니다.
계산이 필요하면 파이썬 코드를 작성해 triple backtick 안에 넣으세요.
[User]
"수학 문제나 복잡 계산, 혹은 API 호출이 필요한 질문"
- 목적: 모델이 부정확한 계산을 피하고, 실제 실행 결과를 기반으로 응답하도록 함
공식 5: 간단 템플릿 + 예시 제공
diff
복사
[System]
당신은 (특정 분야 전문가)입니다.
사용자는 (특정 문제/상황)를 겪고 있습니다.
아래 예시 응답 형식을 참고해 동일한 구조로 답변하세요.
예시:
- 인사말: ...
- 핵심 안내: ...
- 권장 사항: ...
- 맺음말: ...
[User]
"(상황 또는 구체적인 질문)"
- 목적: 출력 형식을 지정해 일관성 유지
위 프롬프트 공식을 상황과 목적에 맞춰 변형·조합하면, 모델에게 더욱 정확하고 통제된 답변을 유도할 수 있다.
가장 중요한 것은 “모델이 제대로 이해할 수 있도록 명확하고 구체적으로” 작성하는 것이다. 한 번에 복잡한 요청을 하기보다, 필요하다면 여러 단계로 나누고 중간점검을 거쳐 답변 품질을 보정하면 훨씬 성공률이 높아진다.
요약:
- 모델이 가진 한계를 보완하려면, 필요한 맥락을 충분히 제공하고, 단계별 지시를 통해 논리적 흐름을 강화한다.
- 복잡한 문제는 하위 문제로 쪼개고, 외부 도구(코드 실행, RAG, 함수 호출 등)로 정확도를 높인다.
- 프롬프트를 수정할 때는 반드시 다수 예시로 테스트하여 실제로 더 나아졌는지 검증한다.
이런 자료를 이메일로 받아보시겠습니까? 무료 강의 안내도 같이 갑니다.
무료로 신청하기