레거시 API

Text Completions API는 레거시 API입니다. 향후 모델과 기능은 Messages API를 사용해야 하며, 가능한 한 빨리 마이그레이션하는 것이 좋습니다.

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

Text Completions를 생성할 때 프롬프트가 지정된 형식이 아닌 경우 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: "