レガシーAPI
テキスト補完APIはレガシーAPIです。今後のモデルと機能にはメッセージAPIの使用が必要となり、できるだけ早く移行することをお勧めします。
Anthropic APIは、プロンプトがClaudeに適切にフォーマットされていることを確認するために、基本的なプロンプトのサニタイズと検証を実行します。
テキスト補完を作成する際、プロンプトが指定された形式でない場合、APIはまず軽いサニタイズ(例:末尾の空白を削除するなど)を試みます。この正確な動作は変更される可能性があり、推奨される交互の\n\nHuman:
と\n\nAssistant:
のターンでプロンプトをフォーマットすることを強くお勧めします。
その後、APIは以下の条件でプロンプトを検証します:
- プロンプトの最初の会話ターンは
\n\nHuman:
ターンでなければなりません
- プロンプトの最後の会話ターンは
\n\nAssistant:
ターンでなければなりません
- プロンプトは
100,000 - 1
トークン未満の長さでなければなりません
以下のプロンプトはAPIエラーとなります:
# "\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: How many toes do dogs have?"
# "\n\nAssistant:"に"\n"が1つしかない
prompt = "\n\nHuman: Hello, Claude \nAssistant:"
以下は現在APIによって自動的にサニタイズされて受け入れられますが、この動作は将来変更される可能性があるため、これに依存すべきではありません:
# "\n\nHuman:"の前に"\n\n"がない
prompt = "Human: Hello, Claude\n\nAssistant:"
# "\n\nAssistant:"の後に空白がある
prompt = "\n\nHuman: Hello, Claude:\n\nAssistant: "