Claude 2.1の高度に効果的な事前入力の例については、ブログ記事Long context prompting for Claude 2.1をご覧ください。


なぜClaudeの応答を事前入力するのか?

Claudeの応答を事前入力することには、いくつかの重要な利点があります。

  1. 操作性の向上: Claudeが続けるための初期テキストを提供することで、Claudeの応答を望ましい方向に導くことができます。これは、Claudeに特定のトピックに集中させたり、特定のタイプのコンテンツを生成させたり、特定の方法で行動させたりしたい場合に特に便利です。
  2. 出力フォーマットの制御: 事前入力により、Claudeに使用してほしい出力の正確なフォーマットを指定できます。これは、JSONやXMLなどの構造化データフォーマットを扱う際に特に便利です。詳細については、出力フォーマットの制御に関するガイドをご覧ください。
  3. キャラクターの一貫性維持: ロールプレイシナリオでは、Claudeの応答を事前入力することで、長い会話を通してClaudeのキャラクターを維持するのに役立ちます。AssistantメッセージでClaudeの役割を一貫して思い出させることで、Claudeが望ましいペルソナを維持することをより確実にできます。詳細は、Claudeのキャラクターを維持するをご覧ください。

Claudeの応答を事前入力する方法

Claudeの応答を事前入力するには、APIリクエストを行う際に、Assistantメッセージに希望する初期テキストを含めるだけです。以下は、プロンプトの例です。

RoleGood Prompt
User次の製品説明から、名前、サイズ、価格、色を抽出し、JSONオブジェクト内に出力してください。

<description>SmartHome Miniは、ブラックまたはホワイトで49.99ドルという手頃な価格のコンパクトなスマートホームアシスタントです。幅わずか5インチで、家のどこに置いても、音声やアプリを介して照明、サーモスタット、その他の接続されたデバイスを制御できます。この手頃な価格の小さなハブにより、スマートデバイスを便利にハンズフリーで制御できます。</description>
Assistant (prefill){

この例では、Assistantメッセージを{で始めることで、Claudeの出力を要求されたJSONスキーマの残りの部分に制約しています。

RoleResponse
Assistant (Claude’s response)“name”: “SmartHome Mini”,
“size”: “幅5インチ”,
“price”: “$49.99”,
“colors”: [
“ブラック”,
“ホワイト”
]
}

上記のプロンプトをMessages APIフォーマットでコードで書くと以下のようになります。

Python
import anthropic

client = anthropic.Anthropic(
    # デフォルトはos.environ.get("ANTHROPIC_API_KEY")
    api_key="my_api_key",
)
message = client.messages.create(
    model="claude-2.1",
    max_tokens=1000,
    temperature=0,
    messages=[
        {
            "role": "user",
            "content": "次の製品説明から、名前、サイズ、価格、色を抽出し、JSONオブジェクト内に出力してください。\n\n<description>SmartHome Miniは、ブラックまたはホワイトで49.99ドルという手頃な価格のコンパクトなスマートホームアシスタントです。幅わずか5インチで、家のどこに置いても、音声やアプリを介して照明、サーモスタット、その他の接続されたデバイスを制御できます。この手頃な価格の小さなハブにより、スマートデバイスを便利にハンズフリーで制御できます。\n</description>"
        }
        {
            "role": "assistant",
            "content": "{"
        }
    ]
)
print(message.content)

追加リソース

  • プロンプトエンジニアリングのテクニック: プロンプトを最適化し、Claudeのパフォーマンスを向上させるための他の戦略を探ります。
  • Anthropic cookbook: Claudeを使用した高度に効果的で高度なテクニック、統合、実装を示すコピー可能なコードスニペットを含むJupyterノートブックのコレクションを閲覧します。
  • プロンプトライブラリ: さまざまなタスクとユースケースのために厳選されたプロンプトからインスピレーションを得てください。