レガシー 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: "