레거시 API

텍스트 완성 API는 레거시 API입니다. 향후 모델과 기능들은 메시지 API를 필요로 할 것이며, 가능한 한 빨리 마이그레이션하시기를 권장합니다.

Anthropic API는 프롬프트가 Claude에 맞게 잘 포맷되도록 기본적인 프롬프트 정리 및 검증을 수행합니다.

텍스트 완성을 생성할 때, 프롬프트가 지정된 형식이 아닌 경우 API는 먼저 가벼운 정리를 시도합니다(예: 후행 공백 제거). 이러한 정확한 동작은 변경될 수 있으며, 권장되는 교대로 나타나는 \n\nHuman:\n\nAssistant: 턴으로 프롬프트를 포맷하시기를 강력히 권장합니다.

그런 다음 API는 다음 조건에 따라 프롬프트를 검증합니다:

  • 프롬프트의 첫 번째 대화 턴은 반드시 \n\nHuman: 턴이어야 합니다
  • 프롬프트의 마지막 대화 턴은 반드시 \n\nAssistant: 턴이어야 합니다
  • 프롬프트는 반드시 100,000 - 1 토큰 미만의 길이여야 합니다.

예시

다음 프롬프트들은 API 오류를 발생시킵니다:

Python
# "\n\nHuman:" 및 "\n\nAssistant:" 턴 누락
prompt = "Hello, world"

# "\n\nHuman:" 턴 누락
prompt = "Hello, world\n\nAssistant:"

# "\n\nAssistant:" 턴 누락
prompt = "\n\nHuman: Hello, Claude"

# "\n\nHuman:" 턴이 첫 번째가 아님
prompt = "\n\nAssistant: Hello, world\n\nHuman: Hello, Claude\n\nAssistant:"

# "\n\nAssistant:" 턴이 마지막이 아님
prompt = "\n\nHuman: Hello, Claude\n\nAssistant: Hello, world\n\nHuman: How many toes do dogs have?"

# "\n\nAssistant:"에 "\n"이 하나만 있음
prompt = "\n\nHuman: Hello, Claude \nAssistant:"

다음은 현재 API에서 자동으로 정리되어 허용되지만, 이 동작은 향후 변경될 수 있으므로 의존해서는 안 됩니다:

Python
# "\n\nHuman:"에 선행 "\n\n" 없음
prompt = "Human: Hello, Claude\n\nAssistant:"

# "\n\nAssistant:" 뒤에 후행 공백
prompt = "\n\nHuman: Hello, Claude:\n\nAssistant: "