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

더 나은 프롬프트를 작성하는 것 외에도, Claude의 출력을 제어하는 두 가지 강력한 기법이 있습니다: 사전 채움(prefilled) 어시스턴트 메시지와 중지 시퀀스(stop sequences)입니다. 이러한 방법을 사용하면 Claude가 어떻게 응답하고 언제 텍스트 생성을 멈추는지를 정밀하게 제어할 수 있습니다.

사전 채움 어시스턴트 메시지

메시지 사전 채움(prefilling)을 사용하면 Claude의 응답 시작 부분을 제공할 수 있으며, Claude는 그 시작점부터 이어서 응답을 생성합니다. 이 기법은 Claude를 특정 방향으로 유도하는 데 매우 유용합니다.

작동 방식은 다음과 같습니다: 단순히 사용자 메시지를 보내는 대신, 메시지 목록의 끝에 어시스턴트 메시지를 추가합니다. Claude는 이 어시스턴트 메시지를 보고 "이 질문에 대한 응답을 이미 시작했으니, 멈춘 부분부터 계속해야겠다"라고 생각합니다.

예를 들어, 사전 채움 없이 "아침에는 차가 좋을까요, 커피가 좋을까요?"라고 물으면 Claude는 일반적으로 두 가지 선택지를 모두 언급하는 균형 잡힌 응답을 제공합니다. 하지만 "커피가 더 좋은 이유는"이라는 어시스턴트 메시지를 추가하면, Claude는 그 지점부터 이어서 커피를 옹호하는 논리를 전개합니다.

여기서 이해해야 할 핵심은 Claude가 사전 채움된 텍스트가 끝나는 지점부터 정확히 이어서 응답한다는 것입니다. "커피가 더 좋은 이유는"이라고 작성하면, Claude는 그 텍스트를 반복하지 않습니다 - "이유는" 바로 다음부터 이어받아 생각을 완성합니다.

코드 구조는 다음과 같습니다:

python
messages = []
add_user_message(messages, "Is tea or coffee better at breakfast?")
add_assistant_message(messages, "Coffee is better because")
answer = chat(messages)

이 기법을 사용하면 Claude를 어떤 방향으로든 유도할 수 있습니다:

  • 커피를 선호하도록: "커피가 더 좋은 이유는"
  • 차를 선호하도록: "차가 더 좋은 이유는"
  • 반대 입장을 취하도록: "둘 다 별로 좋지 않은 이유는"

중지 시퀀스

중지 시퀀스는 Claude가 특정 문자열을 생성하는 즉시 응답을 종료하도록 강제합니다. 이는 응답의 길이나 종료 지점을 제어하는 데 적합합니다.

개념은 간단합니다: 문자열 목록을 제공하면, Claude가 그 문자열 중 하나를 생성할 때 즉시 멈추고 그 지점까지 생성한 내용을 반환합니다.

예를 들어, Claude에게 "1부터 10까지 세어보세요"라고 요청하면서 중지 시퀀스로 "5"를 지정하면 다음과 같은 결과를 얻게 됩니다:

python
add_user_message(messages, "Count from 1 to 10")
answer = chat(messages, stop_sequences=["5"])

이는 다음을 반환합니다: "1, 2, 3, 4, " - 출력에 "5"가 포함되기 바로 직전에 멈춥니다.

중지 시퀀스를 더 정밀하게 지정할 수도 있습니다. 끝에 붙는 쉼표와 공백을 피하고 싶다면, 대신 stop_sequences=[", 5"]를 사용하세요. 이렇게 하면 더 깔끔한 결과를 얻을 수 있습니다: "1, 2, 3, 4".

중지 시퀀스는 특히 다음과 같은 경우에 유용합니다:

  • 목록 길이 제한하기
  • 특정 마커나 구분자에서 멈추기
  • 일관된 출력 형식 만들기
  • 지나치게 긴 응답 방지하기

두 기법 모두 Claude의 동작을 세밀하게 제어할 수 있게 해주며, 애플리케이션에 더 예측 가능하고 목표에 맞는 응답을 만들 수 있도록 도와줍니다.