從文本完成遷移
從文本完成遷移到訊息
輸入和輸出
文本完成和訊息之間最大的變更是您指定模型輸入和從模型接收輸出的方式。
使用文本完成時,輸入是原始字串:
使用訊息時,您指定輸入訊息列表而不是原始提示:
每個輸入訊息都有一個 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-sonnet-4-20250514
)。
我們之前支援僅指定主要版本號(例如 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
伺服器發送事件中的任何一個。詳情請參閱文本完成串流。
訊息可以包含多個不同類型的內容區塊,因此其串流格式稍微複雜一些。詳情請參閱訊息串流。