优化提示 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

优化提示

Amazon Bedrock 提供了一种用于优化提示的工具。优化过程会重写提示,来生成更适合您的使用案例的推理结果。您可以选择要为其优化提示的模型,然后生成修改后的提示。

在您提交提示进行优化后,Amazon Bedrock 会分析提示的组成部分。如果分析成功,它会重写提示。您随后可以复制并使用优化后的提示的文本。

注意

为了获得最佳效果,建议使用英语优化提示。

提示优化支持的区域和模型

下表显示了模型对提示优化的支持:

Provider 模型 模型 ID 支持单区域模型
Amazon Nova Lite 亚马逊。 nova-lite-v1:0

ap-southeast-2

eu-west-2

us-east-1

Amazon Nova Micro 亚马逊。 nova-micro-v1:0

ap-southeast-2

eu-west-2

us-east-1

Amazon Nova Premier 亚马逊。 nova-premier-v1:0
Amazon Nova Pro 亚马逊。 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-v 1:0

us-west-2

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-70 1:0 b-instruct-v

ap-south-1

ca-central-1

eu-west-2

us-east-1

us-west-2

Meta Llama 3.1 70B Instruct meta.llama3-1-70 1:0 b-instruct-v

us-west-2

Meta Llama 3.2 11B Instruct meta.llama3-2-11 1:0 b-instruct-v
Meta Llama 3.3 70B Instruct meta.llama3-3-70 1:0 b-instruct-v
Meta Llama 4 Maverick 17B Instruct meta.llama4-maverick b-instruct-v -17 1:0
Meta Llama 4 Scout 17B Instruct meta.llama4-scout b-instruct-v -17 1: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

提交提示进行优化

要了解如何优化提示,请选择与您的首选方法对应的选项卡,然后按照以下步骤操作:

Console

您可以在 AWS 管理控制台中使用演练场或提示管理器来优化提示。您必须先选择模型,然后才能优化提示。提示针对您选择的模型进行优化。

在演练场中优化提示
  1. 要了解如何在 Amazon Bedrock 演练场中编写提示,请按照使用操场在控制台中生成响应中的步骤操作。

  2. 在编写提示并选择模型后,请选择魔杖图标( Sparkle icon representing cleaning or refreshing functionality. )。此时会打开优化提示对话框,Amazon Bedrock 将开始优化提示。

  3. Amazon Bedrock 完成对提示的分析和优化后,您可以在对话框中将原始提示与优化后的提示并排比较。

  4. 要在演练场中将您的提示替换为经过优化的提示,请选择使用优化提示。要保留原始提示,请选择取消

  5. 要提交提示并生成响应,请选择运行

在提示管理器中优化提示
  1. 要了解如何使用提示管理器编写提示,请按照使用提示管理器创建提示中的步骤操作。

  2. 编写提示并选择模型后,选择提示框顶部的Sparkle icon representing cleaning or refreshing functionality. )优化

  3. Amazon Bedrock 完成对提示的分析和优化后,优化后的提示将作为变体与原始提示并排显示。

  4. 要使用优化后的提示而非原始提示,请选择替换原始提示。要保留原始提示,请选择退出比较,然后选择保存原始提示。

    注意

    如果您在比较视图中有 3 个提示,并且您尝试优化另一个提示,系统会要求您覆盖并替换原始提示或其中一个变体。

  5. 要提交提示并生成响应,请选择运行

API

要优化提示,请使用适用于 Amazon Bedrock 的代理运行时终端节点发送OptimizePrompt请求。在 input 对象中提供要优化的提示,并在 targetModelId 字段中指定要针对哪个模型进行优化。

响应流会返回以下事件:

  1. analyzePromptEvent— 在完成对提示的分析后出现。包含描述提示分析的消息。

  2. optimizedPromptEvent— 在提示符完成重写后出现。包含优化后的提示。

运行以下示例代码以优化提示:

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