텍스트 완성
프롬프트 유효성 검사
Text Completions 사용
레거시 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: "