강좌
67개 강의 중 5번째 · Building with the Claude API시스템 프롬프트
Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Not nowSign 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 응답을 전문화되고 역할에 적합한 상호작용으로 변화시킵니다.