⚙️AI
🤖 시스템 프롬프트(System Prompt)란?
시스템 프롬프트는 AI 모델의 동작 방식을 제어하는 설정값으로, 대화의 스타일, 성격, 제약 조건 등을 결정하는 역할.
쉽게 말해, AI가 어떤 방식으로 답변해야 하는지를 미리 정해주는 지침.
🤖 시스템 프롬프트의 특징
- 보이지 않는 설정값
- 일반 사용자는 시스템 프롬프트를 직접 볼 수 없음.
- AI가 어떻게 반응해야 하는지를 미리 정의하는 역할.
- AI의 성격과 스타일 결정
- 친절한 어조, 엄격한 어조, 유머러스한 방식 등 AI의 말투와 스타일을 조정할 수 있음.
- 예: "이 AI는 친절하고 공손한 답변을 제공해야 한다."
- 제약 조건 설정
- AI가 답변하지 말아야 할 주제나, 특정 방향으로 유도해야 할 내용을 포함할 수 있음.
- 예: "정확한 정보만 제공하고, 추측은 하지 않는다."
- 사용자 경험 최적화
- 특정한 용도(예: 고객 지원, 코딩 도우미, 학습 보조 등)에 맞춰 최적화 가능.
- 예: "이 AI는 초보자를 위한 코딩 가이드를 제공하는 역할을 한다."
🔝
🤖 시스템 프롬프트 예제
1. 고객 서비스용 AI
이 AI는 고객 서비스 챗봇입니다. 친절하고 정중한 태도로 응대하며, 고객의 질문에 대해 정확한 정보를 제공합니다.
모호한 질문에는 추가 질문을 하여 명확히 한 후 답변합니다.
2. 교육용 AI (코딩 튜터)
이 AI는 초보자를 위한 프로그래밍 튜터입니다. 사용자의 수준을 고려하여 쉽게 설명하며, 단계별로 문제 해결을 도와줍니다.
질문을 받을 때는 개념을 먼저 설명한 후 예제 코드를 제공합니다.
3. 창작 도우미 AI
이 AI는 창작을 돕는 역할을 합니다. 사용자의 글쓰기 스타일을 존중하며, 창의적인 아이디어를 제공하고 수정 피드백을 제공합니다.
사용자의 의도를 해치지 않는 범위에서 개선점을 제안합니다.
🔝
🤖 시스템 프롬프트와 사용자 프롬프트의 차이
구분 | 시스템 프롬프트 | 사용자 프롬프트 |
설정 주체 | AI 시스템(운영자) | 사용자 |
역할 | AI의 성격, 스타일, 제한 사항 결정 | AI에게 요청할 작업 및 질문 |
예제 | "친절하고 정확한 답변을 제공하세요." | "파이썬으로 리스트 정렬하는 법 알려줘." |
🔝
🤖 시스템 프롬프트, 수정 가능할까?
- 일반적으로 사용자는 시스템 프롬프트를 직접 수정할 수 없음.
- 특정 플랫폼에서는 개발자가 이를 설정하거나 조정 가능.
- API를 활용할 경우 일부 조정 가능(OpenAI API에서는 system 메시지를 설정하여 컨트롤 가능).
🔝
🤖 시스템 프롬프트 예제 코드와 설명
1. 기본적인 시스템 프롬프트 설정
시스템 프롬프트를 사용하여 AI가 친절하고 공손한 어조로 답변하도록 설정하는 예제
import openai
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "너는 친절하고 공손한 AI 비서야. 모든 답변을 정중하게 해줘."},
{"role": "user", "content": "오늘 날씨 어때?"}
]
)
print(response["choices"][0]["message"]["content"])
설명
- "role": "system" → AI가 어떻게 동작해야 하는지 설정하는 메시지.
- "role": "user" → 사용자의 입력.
- "role": "assistant" → AI의 응답(자동 생성됨).
- 시스템 프롬프트에서 "친절하고 공손한 AI 비서"라고 설정했기 때문에, 답변이 정중한 말투로 나옴.
🔝
2. 기술 문서 작성 AI 만들기
AI가 기술 문서를 작성하는 역할을 수행하도록 시스템 프롬프트를 설정
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "너는 전문적인 기술 문서를 작성하는 AI야. 정확하고 간결한 설명을 제공해야 해."},
{"role": "user", "content": "파이썬의 리스트 컴프리헨션에 대해 설명해줘."}
]
)
print(response["choices"][0]["message"]["content"])
결과 예상
리스트 컴프리헨션(List Comprehension)은 파이썬에서 리스트를 간결하게 생성하는 문법입니다.
기본 형식: [표현식 for 요소 in 반복가능객체 if 조건]
예제: numbers = [x for x in range(10) if x % 2 == 0] # 짝수 리스트 생성
→ 시스템 프롬프트에서 "전문적인 기술 문서를 작성하는 AI"라고 설정했기 때문에 설명이 간결하고 체계적으로 나옴.
🔝
3. 유머러스한 챗봇 만들기
AI가 재밌고 유머러스한 스타일로 응답하도록 설정
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "너는 유머러스하고 장난기 많은 AI야. 모든 답변을 재미있게 해줘."},
{"role": "user", "content": "컴퓨터가 왜 느릴까?"}
]
)
print(response["choices"][0]["message"]["content"])
결과 예상
컴퓨터가 느린 이유? 아마 인터넷에서 고양이 동영상을 너무 많이 보고 있어서 그런 거 아닐까? 😂
아니면, CPU가 점심시간이라 쉬고 있는 걸지도! 😆
→ 시스템 프롬프트 덕분에 AI가 유머러스한 톤으로 응답함.
🔝
4. 엄격한 법률 조언 AI 만들기
법률과 관련된 질문에는 신중하고 신뢰할 만한 정보를 제공해야 하므로, AI가 주의 깊게 답변하도록 설정
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "너는 신뢰할 수 있는 법률 조언을 제공하는 AI야. 확실한 법적 근거가 없는 정보는 제공하지 마."},
{"role": "user", "content": "계약서를 작성할 때 주의할 점이 뭐야?"}
]
)
print(response["choices"][0]["message"]["content"])
결과 예상
계약서를 작성할 때 주의해야 할 주요 사항은 다음과 같습니다:
1. **계약 당사자 정보**: 계약을 체결하는 모든 당사자의 정확한 정보를 기입해야 합니다.
2. **계약의 목적**: 계약이 어떤 목적을 위한 것인지 명확히 설명해야 합니다.
3. **조항 명확화**: 분쟁을 방지하기 위해 모든 조항을 명확하고 구체적으로 작성해야 합니다.
4. **법적 검토**: 법률 전문가와 상의하여 계약서의 적법성을 확인하는 것이 중요합니다.
법률적인 조언이 필요할 경우 반드시 변호사와 상담하시길 권장합니다.
→ 법적 근거가 없는 내용을 추측하지 않고, 신뢰할 만한 조언만 제공하는 방식으로 설정됨.
🔝
5. 어린이를 위한 AI 만들기
어린이를 대상으로 하는 AI는 쉽게 설명하고, 안전한 언어를 사용
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "너는 어린이를 위한 AI야. 쉬운 말로 설명하고, 긍정적이고 친절한 태도를 유지해."},
{"role": "user", "content": "별은 왜 반짝여?"}
]
)
print(response["choices"][0]["message"]["content"])
→ 어린이에게 친근한 말투와 쉬운 설명을 사용하도록 설정됨.
🔝
'🔥 공부 > ⚙️ AI' 카테고리의 다른 글
[⚙️AI] 프롬프트 엔지니어링이란? (1) | 2025.03.21 |
---|---|
[⚙️AI] 효과적인 프롬프트 작성법 (0) | 2025.03.17 |
[⚙️AI] RAG 맛보기 (1) | 2025.02.20 |
[⚙️AI] 기존 GPT 기반 모델의 한계를 극복시켜주는, RAG (0) | 2025.02.19 |
[⚙️AI] LLM을 활용하는 프레임워크, LangChain (0) | 2025.02.14 |