시스템 프롬프트란 무엇인가요?

시스템 프롬프트는 Claude에게 질문이나 작업을 제시하기 전에 맥락, 지침 및 가이드라인을 제공하는 방법입니다. 시스템 프롬프트를 사용하면 대화의 무대를 설정하고, Claude의 역할, 성격, 어조 또는 사용자의 입력을 더 잘 이해하고 응답하는 데 도움이 되는 기타 관련 정보를 지정할 수 있습니다.

시스템 프롬프트에는 다음이 포함될 수 있습니다:

  • 작업 지침 및 목표
  • 성격 특성, 역할 및 어조 지침
  • 사용자 입력에 대한 맥락 정보
  • 창의성 제약 조건 및 스타일 지침
  • 외부 지식, 데이터 또는 참조 자료
  • 규칙, 지침 및 가드레일
  • 출력 검증 표준 및 요구 사항

시스템 프롬프트 사용의 이점

잘 만들어진 시스템 프롬프트를 통합하면 Claude의 성능과 출력 품질을 크게 향상시킬 수 있습니다. 주요 이점은 다음과 같습니다:

  1. 역할 수행 및 캐릭터 일관성 향상: 시스템 프롬프트를 통해 Claude에게 특정 역할이나 성격을 부여할 때, 대화 전반에 걸쳐 해당 캐릭터를 더 효과적으로 유지할 수 있으며, 캐릭터를 유지하면서 더 자연스럽고 창의적인 반응을 보일 수 있습니다.
  2. 규칙 및 지침 준수 향상: 시스템 프롬프트는 Claude가 지침을 더 잘 이해하고 따르도록 도와주어, 금지된 작업을 수행하거나 제한된 콘텐츠를 출력하거나 주어진 지침에서 벗어날 가능성을 줄여줍니다.
  3. 맥락 이해력 향상: 시스템 프롬프트에 관련 배경 정보나 참조 자료를 제공함으로써 Claude가 사용자의 입력을 더 잘 이해하고 더 정확하고 맥락을 인식하는 응답을 생성할 수 있도록 할 수 있습니다.
  4. 맞춤형 출력 포맷: 시스템 프롬프트를 사용하여 헤더, 목록, 표 또는 코드 블록과 같은 원하는 출력 형식을 지정할 수 있어 Claude의 응답이 구조화되고 요구 사항에 가장 적합한 방식으로 제시될 수 있습니다.

시스템 프롬프트가 원치 않는 행동에 대한 Claude의 견고성과 회복력을 높일 수 있지만, jailbreaks 또는 leaks에 대한 완벽한 보호를 보장하지는 않습니다. 그러나 Claude의 출력에 대한 추가적인 지침과 제어 계층을 제공합니다.


시스템 프롬프트 사용 방법

Messages API에서 시스템 프롬프트를 사용하려면 system 매개변수를 원하는 시스템 프롬프트 텍스트로 설정하세요. 다음은 API 호출 예시입니다:

Python
import anthropic

client = anthropic.Client(api_key="YOUR_API_KEY")

response = client.messages.create(
    model="claude-2.1",
    system="스페인어로만 응답하세요.", # <-- 시스템 프롬프트
    messages=[
        {"role": "user", "content": "안녕하세요, Claude!"} # <-- 사용자 프롬프트
    ]
)

print(response.message)

자세한 내용은 Messages API 문서를 참조하세요.

참고: Console에서도 시스템 프롬프트를 사용할 수 있지만, claude.ai에서는 사용할 수 없습니다.


프롬프트 기법

사용자 프롬프트에 사용하는 것과 동일한 프롬프트 기법을 시스템 프롬프트에도 적용할 수 있습니다. 예를 들어 다음과 같이 할 수 있습니다:

  1. 출력 포맷 지정: 시스템 프롬프트 내에 예시 응답 또는 원하는 출력 패턴에 대한 지침을 제공하여 Claude의 행동을 안내합니다.
  2. 문서, 가이드 및 참조 자료 제공: 시스템 프롬프트에 관련 정보나 RAG 콘텐츠를 포함시켜 Claude가 더 정보에 입각하고 정확한 응답을 생성하도록 도와줍니다.
  3. XML 태그 사용, 특히 긴 문서 구조화: XML 태그를 사용하여 시스템 프롬프트를 섹션으로 구성하여 명확성을 높입니다. 시스템 프롬프트에 여러 개의 또는 긴 문서를 통합할 때는 다중 문서 XML 형식을 사용하여 Claude가 제공된 정보를 더 잘 이해하고 활용할 수 있도록 할 수 있습니다.

자주 묻는 질문

시스템 프롬프트와 사용자 프롬프트를 언제 사용해야 하는지 어떻게 알 수 있나요?

프롬프트는 모두 실험이므로 두 가지 방법 모두 시도해 보는 것이 좋습니다! 하지만 일반적으로 시스템 프롬프트는 Claude와의 전반적인 상호 작용에 대한 지침을 제공하는 공간으로 생각할 수 있고, user 턴은 상호 작용 자체의 일부이거나 한 번만 수행하려는 작업이 있을 때 사용할 수 있습니다.

기존의 사용자 전용 프롬프트를 시스템 프롬프트로 변환하려면 어떻게 해야 하나요?

user 전용 프롬프트를 시스템 프롬프트로 변환하려면 사용자 입력의 일부가 아닌 모든 콘텐츠를 Messages APIsystem 매개변수로 이동하기만 하면 됩니다. 여기에는 작업 지침, 성격 지침, 참조 자료 또는 대화의 무대를 설정하는 데 도움이 되는 기타 맥락 정보가 포함될 수 있습니다. 어떤 필드에서 가장 잘 작동하는지 실험해 보시기 바랍니다.

시스템 프롬프트는 어디에서 사용할 수 있나요?

시스템 프롬프트는 현재 API, Console, Amazon Bedrock의 API 및 Google Cloud Vertex AI의 API를 통해 Claude 3 모델 및 Claude 2.1에서 사용할 수 있습니다. 현재 claude.ai에서는 지원되지 않습니다.

시스템 프롬프트가 내 프롬프트를 jailbreak-proof 또는 leak-proof로 만드나요?

Claude는 이미 훈련 방법(예: RLHF 및 Constitutional AI) 덕분에 jailbreaks 및 원치 않는 행동에 대해 매우 탄력적이지만, 시스템 프롬프트는 Claude의 지침 및 가이드라인 준수 능력을 더욱 향상시킬 수 있습니다. 그러나 jailbreaks 또는 leaks에 대한 완벽한 보호를 보장하지는 않습니다.