テキスト補完
プロンプトのバリデーション
Text Completions を使用して
レガシー API
Text Completions API はレガシー API です。将来のモデルと機能には Messages API の使用が必要になるため、できるだけ早く移行することをお勧めします。
Anthropic API は、プロンプトが Claude に適した形式になるように、基本的なプロンプトのサニタイズとバリデーションを行います。
Text Completions を作成する際、プロンプトが指定された形式でない場合、API は最初に軽くサニタイズしようとします(例えば、末尾のスペースを削除するなど)。この正確な動作は変更される可能性があるため、プロンプトは推奨される \n\nHuman:
と \n\nAssistant:
の交互のターンでフォーマットすることを強くお勧めします。
次に、API は以下の条件でプロンプトを検証します。
- プロンプトの最初の会話ターンは
\n\nHuman:
ターンでなければなりません - プロンプトの最後の会話ターンは
\n\nAssistant:
ターンでなければなりません - プロンプトは
100,000 - 1
トークン未満の長さでなければなりません
例
以下のプロンプトは API エラー になります:
Python
# "\n\nHuman:" と "\n\nAssistant:" ターンがない
prompt = "Hello, world"
# "\n\nHuman:" ターンがない
prompt = "Hello, world\n\nAssistant:"
# "\n\nAssistant:" ターンがない
prompt = "\n\nHuman: Hello, Claude"
# "\n\nHuman:" ターンが最初でない
prompt = "\n\nAssistant: Hello, world\n\nHuman: Hello, Claude\n\nAssistant:"
# "\n\nAssistant:" ターンが最後でない
prompt = "\n\nHuman: Hello, Claude\n\nAssistant: Hello, world\n\nHuman: 犬の足の指は何本ある?"
# "\n\nAssistant:" の "\n" が1つしかない
prompt = "\n\nHuman: Hello, Claude \nAssistant:"
以下は現在受け入れられ、API によって自動的にサニタイズされますが、将来変更される可能性があるため、この動作に依存しないでください:
Python
# "\n\nHuman:" の先頭に "\n\n" がない
prompt = "Human: Hello, Claude\n\nAssistant:"
# "\n\nAssistant:" の後ろにスペースがある
prompt = "\n\nHuman: Hello, Claude:\n\nAssistant: "