消息
从文本补全迁移
从文本补全迁移到消息
输入和输出
文本补全和消息之间最大的变化是指定模型输入和接收模型输出的方式。
使用文本补全时,输入是原始字符串:
Python
使用消息时,您需要指定一个输入消息列表,而不是原始提示:
每个输入消息都有一个role
和content
。
角色名称
文本补全 API 需要交替的\n\nHuman:
和\n\nAssistant:
轮次,但消息 API 需要user
和assistant
角色。您可能会看到文档中提到”human”或”user”轮次。这些指的是同一个角色,今后将使用”user”。
使用文本补全时,模型生成的文本在响应的completion
值中返回:
Python
使用消息时,响应是content
值,它是一个内容块列表:
Python
预设 Claude 的回答
使用文本补全时,您可以预填充 Claude 的部分回答:
Python
使用消息时,您可以通过将最后一个输入消息的角色设置为assistant
来实现相同的结果:
Python
这样做时,响应content
将从最后一个输入消息的content
继续:
JSON
系统提示
使用文本补全时,系统提示是通过在第一个\n\nHuman:
轮次之前添加文本来指定的:
Python
使用消息时,您需要使用system
参数指定系统提示:
Python
模型名称
消息 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
服务器发送事件。详见文本补全流式处理。
消息可以包含多个不同类型的内容块,因此其流式格式稍微复杂一些。详见消息流式处理。