⚙️AI

  1. 시스템 프롬프트란?
  2. 시스템 프롬프트의 특징
  3. 시스템 프롬프트 예제
  4. 시스템 프롬프트와 사용자 프롬프트 차이
  5. 시스템 프롬프트, 수정이 가능할까?
  6. 시스템 프롬프트 예제 코드와 설명

🤖 시스템 프롬프트(System Prompt)란?

시스템 프롬프트는 AI 모델의 동작 방식을 제어하는 설정값으로, 대화의 스타일, 성격, 제약 조건 등을 결정하는 역할.

쉽게 말해, AI가 어떤 방식으로 답변해야 하는지를 미리 정해주는 지침.


🤖 시스템 프롬프트의 특징

  1. 보이지 않는 설정값
    • 일반 사용자는 시스템 프롬프트를 직접 볼 수 없음.
    • AI가 어떻게 반응해야 하는지를 미리 정의하는 역할.
  2. AI의 성격과 스타일 결정
    • 친절한 어조, 엄격한 어조, 유머러스한 방식 등 AI의 말투와 스타일을 조정할 수 있음.
    • 예: "이 AI는 친절하고 공손한 답변을 제공해야 한다."
  3. 제약 조건 설정
    • AI가 답변하지 말아야 할 주제나, 특정 방향으로 유도해야 할 내용을 포함할 수 있음.
    • 예: "정확한 정보만 제공하고, 추측은 하지 않는다."
  4. 사용자 경험 최적화
    • 특정한 용도(예: 고객 지원, 코딩 도우미, 학습 보조 등)에 맞춰 최적화 가능.
    • 예: "이 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"])

 

→ 어린이에게 친근한 말투와 쉬운 설명을 사용하도록 설정됨.

🔝


 

🐾Recent posts