Text Completions APIは、Messages APIを優先して非推奨となりました。
入力と出力
Text CompletionsとMessagesの間で最も大きな変更は、モデルの入力を指定し、モデルから出力を受け取る方法です。 Text Completionsでは、入力は生の文字列です:Python
roleとcontentがあります。
ロール名Text Completions APIは交互の
\n\nHuman:と\n\nAssistant:のターンを期待しますが、Messages APIはuserとassistantのロールを期待します。「human」または「user」のターンを参照するドキュメントを見ることがあるかもしれません。これらは同じロールを指し、今後は「user」になります。completion値で返されます:
Python
content値で、これはコンテンツブロックのリストです:
Python
Claudeの口に言葉を入れる
Text Completionsでは、Claudeのレスポンスの一部を事前に埋めることができます:Python
assistantロールにすることで同じ結果を達成できます:
Python
contentは最後の入力メッセージのcontentから続きます:
JSON
システムプロンプト
Text Completionsでは、システムプロンプトは最初の\n\nHuman:ターンの前にテキストを追加することで指定されます:
Python
systemパラメータでシステムプロンプトを指定します:
Python
モデル名
Messages APIでは、完全なモデルバージョン(例:claude-sonnet-4-5-20250929)を指定する必要があります。
以前は、メジャーバージョン番号のみ(例:claude-2)を指定することをサポートしており、これによりマイナーバージョンへの自動アップグレードが行われていました。しかし、この統合パターンはもはや推奨されておらず、Messagesではサポートされていません。
停止理由
Text Completionsは常に以下のいずれかのstop_reasonを持ちます:
"stop_sequence":モデルが自然にターンを終了したか、カスタム停止シーケンスの1つが生成されました。"max_tokens":モデルが指定されたmax_tokensのコンテンツを生成したか、絶対最大値に達しました。
stop_reasonを持ちます:
"end_turn":会話のターンが自然に終了しました。"stop_sequence":指定されたカスタム停止シーケンスの1つが生成されました。"max_tokens":(変更なし)
最大トークンの指定
- Text Completions:
max_tokens_to_sampleパラメータ。検証なしですが、モデルごとに上限値があります。 - Messages:
max_tokensパラメータ。モデルがサポートする値より高い値を渡すと、検証エラーを返します。
ストリーミング形式
Text Completionsで"stream": trueを使用する場合、レスポンスにはcompletion、ping、errorのサーバー送信イベントのいずれかが含まれていました。
Messagesは様々なタイプの複数のコンテンツブロックを含むことができるため、そのストリーミング形式はやや複雑です。詳細についてはMessagesストリーミングを参照してください。