從文本補全遷移
從文本補全遷移到訊息
輸入和輸出
文本補全和訊息之間最大的變化在於指定模型輸入和接收模型輸出的方式。
使用文本補全時,輸入是原始字串:
使用訊息時,您需要指定一個輸入訊息列表,而不是原始提示:
每個輸入訊息都有一個 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
伺服器發送事件。詳見文本補全串流。
訊息可以包含多個不同類型的內容區塊,因此其串流格式稍微更複雜。詳見訊息串流。