Миграция с Text Completions
Миграция с Text Completions на Messages
При миграции с Text Completions на Messages, учитывайте следующие изменения.
Входные и выходные данные
Самое большое изменение между Text Completions и Messages заключается в способе указания входных данных модели и получения выходных данных от модели.
В Text Completions входные данные представляют собой необработанные строки:
В Messages вместо необработанного промпта вы указываете список входных сообщений:
Каждое входное сообщение имеет role
и content
.
Названия ролей
API Text Completions ожидает чередующиеся ходы \n\nHuman:
и \n\nAssistant:
, а API Messages ожидает роли user
и assistant
. Вы можете встретить документацию, ссылающуюся либо на ходы “human”, либо “user”. Они относятся к одной и той же роли, и в дальнейшем будут обозначаться как “user”.
В Text Completions сгенерированный моделью текст возвращается в значениях completion
ответа:
В Messages ответ представляет собой значение content
, которое является списком блоков контента:
Вкладывание слов в уста Claude
В Text Completions вы можете предварительно заполнить часть ответа Claude:
В Messages вы можете достичь того же результата, сделав последнее входное сообщение с ролью assistant
:
При этом content
ответа будет продолжением content
последнего входного сообщения:
Системный промпт
В Text Completions системный промпт указывается путем добавления текста перед первым ходом \n\nHuman:
:
В Messages вы указываете системный промпт с помощью параметра system
:
Названия моделей
API Messages требует указания полной версии модели (например, claude-3-opus-20240229
).
Ранее мы поддерживали указание только основного номера версии (например, claude-2
), что приводило к автоматическому обновлению до младших версий. Однако мы больше не рекомендуем такой шаблон интеграции, и Messages его не поддерживает.
Причина остановки
Text Completions всегда имеет stop_reason
одного из следующих значений:
"stop_sequence"
: Модель либо естественным образом завершила свой ход, либо была сгенерирована одна из ваших пользовательских последовательностей остановки."max_tokens"
: Либо модель сгенерировала указанное вами количествоmax_tokens
контента, либо она достигла своего абсолютного максимума.
Messages имеет stop_reason
одного из следующих значений:
"end_turn"
: Разговорный ход завершился естественным образом."stop_sequence"
: Была сгенерирована одна из указанных вами пользовательских последовательностей остановки."max_tokens"
: (без изменений)
Указание максимального количества токенов
- Text Completions: параметр
max_tokens_to_sample
. Без валидации, но с ограничением значений для каждой модели. - Messages: параметр
max_tokens
. При передаче значения выше поддерживаемого моделью возвращает ошибку валидации.
Формат потоковой передачи
При использовании "stream": true
в Text Completions ответ включал любые события server-sent-events: completion
, ping
и error
. Подробности см. в потоковой передаче Text Completions.
Messages может содержать несколько блоков контента различных типов, поэтому его формат потоковой передачи несколько сложнее. Подробности см. в потоковой передаче Messages.