

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# プロンプトを最適化する
<a name="prompt-management-optimize"></a>

Amazon Bedrock には、プロンプトを最適化するためのツールが用意されています。最適化を行うと、プロンプトが書き換えられて、ユースケースにより適した推論結果が得られます。プロンプトを最適化するモデルを選択し、改訂されたプロンプトを生成できます。

最適化するプロンプトを送信すると、Amazon Bedrock によってプロンプトのコンポーネントが分析されます。分析に成功した場合、プロンプトが書き換えられます。その後、最適化されたプロンプトのテキストをコピーして使用できます。

**注記**  
最良の結果を得るには、英語でプロンプトを最適化することをお勧めします。

**Topics**
+ [プロンプトの最適化でサポートされているリージョンおよびモデル](#prompt-management-optimize-supported)
+ [最適化するプロンプトを送信する](#prompt-management-optimize-submit)

## プロンプトの最適化でサポートされているリージョンおよびモデル
<a name="prompt-management-optimize-supported"></a>

次の表は、プロンプト最適化のモデルサポートを示しています。


| プロバイダー | モデル | モデル ID | 単一リージョンモデルのサポート | 
| --- | --- | --- | --- | 
| Amazon | Nova Lite | amazon.nova-lite-v1:0 |  ap-southeast-2 eu-west-2 us–east–1  | 
| Amazon | Nova Micro | amazon.nova-micro-v1:0 |  ap-southeast-2 eu-west-2 us–east–1  | 
| Amazon | Nova Premier | amazon.nova-premier-v1:0 |  | 
| Amazon | Nova Pro | amazon.nova-pro-v1:0 |  ap-southeast-2 eu-west-2 us–east–1  | 
| Anthropic | Claude 3 Haiku | anthropic.claude-3-haiku-20240307-v1:0 |  ap-south-1 ap-southeast-2 ca-central-1 eu-central-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us–east–1 us-west-2  | 
| Anthropic | Claude 3 Opus | anthropic.claude-3-opus-20240229-v1:0 |  | 
| Anthropic | Claude 3 Sonnet | anthropic.claude-3-sonnet-20240229-v1:0 |  ap-south-1 ap-southeast-2 ca-central-1 eu-central-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us–east–1 us-west-2  | 
| Anthropic | Claude 3.5 Haiku | anthropic.claude-3-5-haiku-20241022-v1:0 |  us-west-2  | 
| Anthropic | Claude 3.5 Sonnet | anthropic.claude-3-5-sonnet-20240620-v1:0 |  eu-central-1 us–east–1 us-west-2  | 
| Anthropic | Claude 3.5 Sonnet v2 | anthropic.claude-3-5-sonnet-20241022-v2:0 |  ap-southeast-2 us-west-2  | 
| Anthropic | Claude 3.7 Sonnet | anthropic.claude-3-7-sonnet-20250219-v1:0 |  eu-west-2  | 
| Anthropic | Claude Opus 4 | anthropic.claude-opus-4-20250514-v1:0 |  | 
| Anthropic | Claude Sonnet 4 | anthropic.claude-sonnet-4-20250514-v1:0 |  | 
| DeepSeek | DeepSeek-R1 | deepseek.r1-v1:0 |  | 
| Meta | Llama 3 70B Instruct | meta.llama3-70b-instruct-v1:0 |  ap-south-1 ca-central-1 eu-west-2 us–east–1 us-west-2  | 
| Meta | Llama 3.1 70B Instruct | meta.llama3-1-70b-instruct-v1:0 |  us-west-2  | 
| Meta | Llama 3.2 11B インストラクション | meta.llama3-2-11b-instruct-v1:0 |  | 
| Meta | Llama 3.3 70B インストラクション | meta.llama3-3-70b-instruct-v1:0 |  | 
| Meta | Llama 4 Maverick 17B Instruct | meta.llama4-maverick-17b-instruct-v1:0 |  | 
| Meta | Llama 4 Scout 17B Instruct | meta.llama4-scout-17b-instruct-v1:0 |  | 
| Mistral AI | Mistral Large (24.02) | mistral.mistral-large-2402-v1:0 |  ap-south-1 ap-southeast-2 ca-central-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us–east–1 us-west-2  | 
| Mistral AI | Mistral Large (24.07) | mistral.mistral-large-2407-v1:0 |  us-west-2  | 

## 最適化するプロンプトを送信する
<a name="prompt-management-optimize-submit"></a>

プロンプトを最適化する方法については、任意の方法のタブを選択し、そのステップに従ってください。

------
#### [ Console ]

 AWS マネジメントコンソールでプレイグラウンドまたはプロンプト管理を使用して、プロンプトを最適化できます。プロンプトを最適化する前に、モデルを選択する必要があります。プロンプトは、選択したモデルに合わせて最適化されます。

**プレイグラウンドでプロンプトを最適化するには**

1. Amazon Bedrock プレイグラウンドでプロンプトを記述する方法については、「[Generate responses in the console using playgrounds](playgrounds.md)」の手順に従ってください。

1. プロンプトを記述してモデルを選択したら、ワンドアイコン (![\[Sparkle icon representing cleaning or refreshing functionality.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/wand.png)) を選択します。**[プロンプトを最適化]** ダイアログボックスが開き、Amazon Bedrock がプロンプトの最適化を開始します。

1. Amazon Bedrock がプロンプトの分析と最適化を完了したら、ダイアログボックス内で元のプロンプトを最適化されたプロンプトと並べて比較できます。

1. プロンプトをプレイグラウンド内の最適化されたプロンプトに置き換えるには、**[最適化されたプロンプトを使用]** を選択します。元のプロンプトを保持するには、**[キャンセル]** を選択します。

1. プロンプトを送信してレスポンスを生成するには、**[実行]** を選択します。

**プロンプト管理でプロンプトを最適化するには**

1. プロンプト管理を使用してプロンプトを記述する方法については、「[プロンプト管理を使用してプロンプトを作成する](prompt-management-create.md)」の手順に従ってください。

1. プロンプトを記述してモデルを選択したら、**[プロンプト]** ボックスの上部にある **(![\[Sparkle icon representing cleaning or refreshing functionality.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/wand.png)) [最適化]** を選択します。

1. Amazon Bedrock がプロンプトの分析と最適化を完了すると、最適化されたプロンプトが元のプロンプトの隣にバリアントとして表示されます。

1. 最適化されたプロンプトを元のプロンプトの代わりに使用するには、**[元のプロンプトを置き換える]** を選択します。元のプロンプトを保持するには、**[比較を終了]** を選択し、元のプロンプトを保存することを選択します。
**注記**  
比較ビューに 3 つのプロンプトがある場合に、別のプロンプトを最適化しようとすると、元のプロンプトまたはいずれかのバリアントを上書きして置き換えるように求められます。

1. プロンプトを送信してレスポンスを生成するには、**[実行]** を選択します。

------
#### [ API ]

プロンプトを最適化するには、[Amazon Bedrock エージェントのランタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)を使用して [OptimizePrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_OptimizePrompt.html) リクエストを送信します。`input` オブジェクトで最適化するプロンプトを指定し、`targetModelId` フィールドで最適化の対象となるモデルを指定します。

レスポンスストリームは以下のイベントを返します。

1. [analyzePromptEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_AnalyzePromptEvent.html) – プロンプトの分析が完了すると表示されます。プロンプトの分析結果を説明するメッセージが含まれます。

1. [optimizedPromptEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_OptimizedPromptEvent.html) – プロンプトの書き換えが完了すると表示されます。最適化されたプロンプトが含まれます。

次のコードサンプルを実行して、プロンプトを最適化します。

```
import boto3

# Set values here
TARGET_MODEL_ID = "anthropic.claude-3-sonnet-20240229-v1:0" # Model to optimize for. For model IDs, see https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html
PROMPT = "Please summarize this text: " # Prompt to optimize

def get_input(prompt):
    return {
        "textPrompt": {
            "text": prompt
        }
    }
 
def handle_response_stream(response):
    try:
        event_stream = response['optimizedPrompt']
        for event in event_stream:
            if 'optimizedPromptEvent' in event:
                print("========================== OPTIMIZED PROMPT ======================\n")
                optimized_prompt = event['optimizedPromptEvent']
                print(optimized_prompt)
            else:
                print("========================= ANALYZE PROMPT =======================\n")
                analyze_prompt = event['analyzePromptEvent']
                print(analyze_prompt)
    except Exception as e:
        raise e
 
 
if __name__ == '__main__':
    client = boto3.client('bedrock-agent-runtime')
    try:
        response = client.optimize_prompt(
            input=get_input(PROMPT),
            targetModelId=TARGET_MODEL_ID
        )
        print("Request ID:", response.get("ResponseMetadata").get("RequestId"))
        print("========================== INPUT PROMPT ======================\n")
        print(PROMPT)
        handle_response_stream(response)
    except Exception as e:
        raise e
```

------