Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Sign in

시스템 프롬프트는 Claude가 사용자 입력에 응답하는 방식을 맞춤 설정할 수 있는 강력한 방법입니다. 일반적인 답변을 받는 대신, Claude의 어조, 스타일, 접근 방식을 특정 사용 사례에 맞게 조정할 수 있습니다.

시스템 프롬프트가 중요한 이유

수학 튜터 챗봇을 만든다고 가정해 보겠습니다. 학생이 "5x + 2 = 3에서 x를 어떻게 구하나요?"라고 물을 때, Claude가 단순히 답을 내놓는 것이 아니라 실제 튜터처럼 행동하기를 원할 것입니다. 좋은 수학 튜터는 다음과 같이 해야 합니다:

  • 처음에는 완전한 풀이 대신 힌트를 제공
  • 학생이 문제를 단계별로 차근차근 풀어나가도록 안내
  • 유사한 문제의 풀이를 예시로 보여줌

Claude가 다음과 같이 행동하는 것은 절대 원하지 않을 것입니다:

  • 즉시 직접적인 답을 제공
  • 학생에게 그냥 계산기를 사용하라고 말함

시스템 프롬프트의 작동 방식

시스템 프롬프트는 Claude에게 응답 방식에 대한 지침을 제공합니다. 이를 일반 문자열로 정의하여 create 함수 호출에 전달합니다. 주요 이점은 다음과 같습니다:

  • 시스템 프롬프트는 Claude에게 응답 방식에 대한 지침을 제공합니다
  • Claude는 지정된 역할을 맡은 사람이 응답할 법한 방식으로 응답하려고 시도합니다
  • Claude가 작업에 집중하도록 유지하는 데 도움이 됩니다

기본 구조는 다음과 같습니다:

python
system_prompt = """
You are a patient math tutor.
Do not directly answer a student's questions.
Guide them to a solution step by step.
"""

client.messages.create(
    model=model,
    messages=messages,
    max_tokens=1000,
    system=system_prompt
)

차이점 확인하기

시스템 프롬프트가 없으면 Claude는 즉시 완전한 단계별 풀이를 제공합니다. 이는 도움이 될 수 있지만, 학생이 스스로 문제를 생각해보도록 유도하지는 않습니다.

수학 튜터 시스템 프롬프트를 사용하면 Claude의 응답이 크게 달라집니다. 전체 풀이를 제공하는 대신, Claude는 "x를 분리하기 위한 좋은 첫 단계는 무엇일까요? 항을 이동시키기 시작하려면 양쪽에 어떤 연산을 수행해야 할지 생각해 보세요."와 같은 유도 질문을 합니다.

유연한 채팅 함수 만들기

시스템 프롬프트를 하드코딩하는 대신, 시스템 프롬프트를 매개변수로 받아들여 채팅 함수를 더 재사용 가능하게 만들 수 있습니다:

python
def chat(messages, system=None):
    params = {
        "model": model,
        "max_tokens": 1000,
        "messages": messages,
    }
    
    if system:
        params["system"] = system
    
    message = client.messages.create(**params)
    return message.content[0].text

이 접근 방식은 중요한 세부 사항을 처리합니다: Claude의 API는 system=None을 허용하지 않으므로, system 매개변수가 제공된 경우에만 조건적으로 포함해야 합니다.

이제 시스템 프롬프트가 있든 없든 채팅 함수를 호출할 수 있습니다:

python
# 시스템 프롬프트 없이
answer = chat(messages)

# 시스템 프롬프트 사용
system = """
You are a patient math tutor.
Do not directly answer a student's questions.
Guide them to a solution step by step.
"""
answer = chat(messages, system=system)

시스템 프롬프트는 의도된 목적에 맞게 일관되고 적절하게 작동하는 AI 애플리케이션을 만드는 데 필수적입니다. 이는 일반적인 AI 응답을 특화되고 역할에 적합한 상호작용으로 변화시킵니다.