最佳化提示
Amazon Bedrock 提供工具可最佳化提示。最佳化會重寫提示,以產生更適合您使用案例的推論結果。您可以選擇要最佳化其提示的模型,然後產生修訂後的提示。
在您提交要最佳化的提示後,Amazon Bedrock 會分析提示的元件。如果分析成功,則會重寫提示。然後,您可以複製和使用最佳化提示的文字。
用於最佳化提示的支援區域和模型
下列區域支援提示最佳化 (如需 Amazon Bedrock 中支援區域的詳細資訊,請參閱 Amazon Bedrock 端點和配額):
-
美國東部 (維吉尼亞北部)
-
美國西部 (奧勒岡)
-
亞太地區 (孟買)
-
亞太地區 (雪梨)
-
加拿大 (中部)
-
歐洲 (法蘭克福)
-
歐洲 (愛爾蘭)
-
歐洲 (倫敦)
-
歐洲 (巴黎)
-
南美洲 (聖保羅)
下列基礎模型支援提示最佳化 (若要查看哪些區域支援每個模型,請參閱 Amazon Bedrock 中支援的基礎模型):
-
Amazon Nova Lite
-
Amazon Nova Micro
-
Amazon Nova Premier
-
Amazon Nova Pro
-
Anthropic Claude 3 Haiku
-
Anthropic Claude 3 Opus
-
Anthropic Claude 3 Sonnet
-
Anthropic Claude 3.5 Haiku
-
Anthropic Claude 3.5 Sonnet v2
-
Anthropic Claude 3.5 Sonnet
-
Anthropic Claude 3.7 Sonnet
-
Anthropic Claude Opus 4
-
Anthropic Claude Sonnet 4
-
DeepSeek DeepSeek-R1
-
Meta Llama 3 70B Instruct
-
Meta Llama 3.1 70B Instruct
-
Meta Llama 3.2 11B Instruct
-
Meta Llama 3.3 70B Instruct
-
Meta Llama 4 Maverick 17B Instruct
-
Meta Llama 4 Scout 17B Instruct
-
Mistral AI Mistral Large (24.02)
-
Mistral AI Mistral Large (24.07)
提交提示以進行最佳化
若要了解如何最佳化提示,請選擇您偏好方法的索引標籤,然後遵循下列步驟:
- Console
-
您可以透過使用遊樂場或 AWS 管理主控台 中的提示管理來最佳化提示。您必須先選取一個模型,才能最佳化提示。系統會針對您選擇的模型將提示最佳化。
最佳化遊樂場中的提示
-
若要了解如何在 Amazon Bedrock 遊樂場中撰寫提示,請遵循 使用遊樂場在主控台中產生回應 中的步驟。
-
在您撰寫提示並選取模型後,請選擇魔術棒圖示 (
)。最佳化提示對話方塊隨即開啟,Amazon Bedrock 會開始最佳化您的提示。
-
當 Amazon Bedrock 完成分析和最佳化提示時,您可以在對話方塊中將原始提示與最佳化提示並排比較。
-
若要在遊樂場中以最佳化提示取代提示,請選擇使用最佳化提示。若要保留原始提示,請選擇取消。
-
若要提交提示並產生回應,請選擇執行。
在提示管理中最佳化提示
-
若要了解如何使用提示管理撰寫提示,請遵循 使用提示管理建立提示 中的步驟。
-
在您撰寫提示並選取模型後,選擇提示方塊頂端的 (
) 最佳化。
-
當 Amazon Bedrock 完成分析和最佳化提示時,最佳化提示會顯示成變體與原始影像並排顯示。
-
若要使用最佳化提示而非原始提示,請選取取代原始提示。若要保留原始提示,請選擇結束比較,然後選擇儲存原始提示。
如果您在比較檢視中有 3 個提示,並嘗試最佳化另一個提示,系統會要求您覆寫並取代原始提示或其中一個變體。
-
若要提交提示並產生回應,請選擇執行。
- API
-
若要最佳化提示,請使用 Amazon Bedrock 代理程式執行時期端點程式傳送 OptimizePrompt 請求。在 input 物件中提供要最佳化的提示,並在 targetModelId 欄位中指定要最佳化的模型。
回應串流會傳回下列事件:
執行下列程式碼範例以最佳化提示:
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