レガシーAPI

テキスト補完APIはレガシーAPIです。今後のモデルと機能にはメッセージAPIの使用が必要となり、できるだけ早く移行することをお勧めします。

Anthropic APIは、プロンプトがClaudeに適切にフォーマットされていることを確認するために、基本的なプロンプトのサニタイズと検証を実行します。

テキスト補完を作成する際、プロンプトが指定された形式でない場合、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: How many toes do dogs have?"

# "\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: "