텍스트 완성에서 마이그레이션하기
텍스트 완성에서 메시지로 마이그레이션하기
텍스트 완성에서 메시지로 마이그레이션할 때 다음과 같은 변경 사항을 고려하세요.
입력과 출력
텍스트 완성과 메시지 간의 가장 큰 차이점은 모델 입력을 지정하고 모델로부터 출력을 받는 방식입니다.
텍스트 완성에서는 입력이 원시 문자열입니다:
메시지에서는 원시 프롬프트 대신 입력 메시지 목록을 지정합니다:
각 입력 메시지는 role
과 content
를 가집니다.
역할 이름
텍스트 완성 API는 \n\nHuman:
과 \n\nAssistant:
가 번갈아 나타나는 것을 기대하지만, 메시지 API는 user
와 assistant
역할을 기대합니다. “human” 또는 “user” 턴을 언급하는 문서를 보실 수 있습니다. 이들은 동일한 역할을 의미하며, 앞으로는 “user”로 통일됩니다.
텍스트 완성에서는 모델이 생성한 텍스트가 응답의 completion
값으로 반환됩니다:
메시지에서는 응답이 콘텐츠 블록 목록인 content
값입니다:
Claude의 말을 미리 채우기
텍스트 완성에서는 Claude의 응답 일부를 미리 채울 수 있습니다:
메시지에서는 마지막 입력 메시지에 assistant
역할을 부여하여 동일한 결과를 얻을 수 있습니다:
이렇게 하면 응답 content
가 마지막 입력 메시지 content
에서 이어집니다:
시스템 프롬프트
텍스트 완성에서는 첫 번째 \n\nHuman:
턴 이전에 텍스트를 추가하여 시스템 프롬프트를 지정합니다:
메시지에서는 system
매개변수로 시스템 프롬프트를 지정합니다:
모델 이름
메시지 API는 전체 모델 버전을 지정해야 합니다(예: claude-3-opus-20240229
).
이전에는 주 버전 번호만 지정하는 것을 지원했으며(예: claude-2
), 이는 부 버전으로 자동 업그레이드되었습니다. 하지만 이제는 이러한 통합 패턴을 더 이상 권장하지 않으며, 메시지는 이를 지원하지 않습니다.
중단 이유
텍스트 완성은 항상 다음 중 하나의 stop_reason
을 가집니다:
"stop_sequence"
: 모델이 자연스럽게 턴을 종료했거나, 사용자가 지정한 중단 시퀀스 중 하나가 생성되었습니다."max_tokens"
: 모델이 지정된max_tokens
만큼의 콘텐츠를 생성했거나, 절대 최대값에 도달했습니다.
메시지는 다음 값 중 하나의 stop_reason
을 가집니다:
"end_turn"
: 대화 턴이 자연스럽게 종료되었습니다."stop_sequence"
: 지정된 사용자 정의 중단 시퀀스 중 하나가 생성되었습니다."max_tokens"
: (변경 없음)
최대 토큰 지정
- 텍스트 완성:
max_tokens_to_sample
매개변수. 유효성 검사는 없지만 모델별로 상한값이 있습니다. - 메시지:
max_tokens
매개변수. 모델이 지원하는 것보다 높은 값을 전달하면 유효성 검사 오류가 반환됩니다.
스트리밍 형식
텍스트 완성에서 "stream": true
를 사용할 때, 응답에는 completion
, ping
, error
서버 전송 이벤트가 포함되었습니다. 자세한 내용은 텍스트 완성 스트리밍을 참조하세요.
메시지는 여러 유형의 콘텐츠 블록을 포함할 수 있으므로 스트리밍 형식이 다소 더 복잡합니다. 자세한 내용은 메시지 스트리밍을 참조하세요.