Claude를 사용하여 LLM 기반 애플리케이션을 배포할 때, API 호출은 일반적으로 두 가지 유형의 콘텐츠로 구성됩니다:
  • 고정 콘텐츠: 여러 상호작용에서 일정하게 유지되는 정적 지시사항이나 컨텍스트
  • 가변 콘텐츠: 각 요청이나 대화마다 변경되는 동적 요소들, 예를 들어:
    • 사용자 입력
    • 검색 증강 생성(RAG)을 위한 검색된 콘텐츠
    • 사용자 계정 기록과 같은 대화 컨텍스트
    • Claude에 대한 다른 독립적인 호출에서 제공되는 도구 사용 결과와 같은 시스템 생성 데이터
프롬프트 템플릿은 이러한 고정 부분과 가변 부분을 결합하여 동적 콘텐츠에 대한 자리 표시자를 사용합니다. Claude Console에서 이러한 자리 표시자는 **{{이중 괄호}}**로 표시되어 쉽게 식별할 수 있고 다양한 값을 빠르게 테스트할 수 있습니다.

프롬프트 템플릿과 변수를 언제 사용해야 하는가

프롬프트의 어떤 부분이든 Claude에 대한 다른 호출에서 반복될 것으로 예상되는 경우 항상 프롬프트 템플릿과 변수를 사용해야 합니다(API 또는 Claude Console을 통해서만 가능합니다. claude.ai는 현재 프롬프트 템플릿이나 변수를 지원하지 않습니다). 프롬프트 템플릿은 여러 가지 이점을 제공합니다:
  • 일관성: 여러 상호작용에서 프롬프트의 일관된 구조를 보장
  • 효율성: 전체 프롬프트를 다시 작성하지 않고도 가변 콘텐츠를 쉽게 교체
  • 테스트 가능성: 가변 부분만 변경하여 다양한 입력과 엣지 케이스를 빠르게 테스트
  • 확장성: 애플리케이션의 복잡성이 증가함에 따라 프롬프트 관리를 단순화
  • 버전 관리: 동적 입력과 분리된 프롬프트의 핵심 부분만 추적하여 시간이 지남에 따른 프롬프트 구조 변경사항을 쉽게 추적
Claude Console은 위의 모든 기능을 지원하는 기능과 도구를 제공하기 위해 프롬프트 템플릿과 변수를 광범위하게 사용합니다:
  • 프롬프트 생성기: 프롬프트에 필요한 변수를 결정하고 출력하는 템플릿에 포함시킵니다
  • 프롬프트 개선기: 모든 변수를 포함한 기존 템플릿을 가져와서 개선된 템플릿 출력에서 이를 유지합니다
  • 평가 도구: 프롬프트 템플릿의 가변 부분과 고정 부분을 분리하여 프롬프트를 쉽게 테스트, 확장 및 버전 추적할 수 있게 해줍니다

프롬프트 템플릿 예시

영어 텍스트를 스페인어로 번역하는 간단한 애플리케이션을 고려해 보겠습니다. 번역된 텍스트는 사용자나 Claude 호출 간에 이 텍스트가 변경될 것으로 예상되므로 가변적입니다. 이 번역된 텍스트는 데이터베이스나 사용자 입력에서 동적으로 검색될 수 있습니다. 따라서 번역 앱의 경우 다음과 같은 간단한 프롬프트 템플릿을 사용할 수 있습니다:
이 텍스트를 영어에서 스페인어로 번역하세요: {{text}}

다음 단계