使用 top_p 與 max_tokens 控制輸出
行銷團隊現在想要兩個版本的 ChefBot(旗艦料理機器人)故事:一份給投資人的精簡簡報版,以及一篇更有創意的「幕後花絮」部落格文章。
在本練習中,boto3 與 json 函式庫,以及 bedrock 用戶端都已預先匯入。
本練習屬於課程
Amazon Bedrock 入門
練習說明
- 使用較低的
top_p與較低的max_tokens產生一則精簡的故事,再使用較高的top_p與較高的max_tokens產生一則更有創意的故事,並將max_tokens的上限維持在 200。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
def generate_story_with_params(bedrock, top_p, max_tokens):
messages = [{"role": "user",
"content": "Write a story about ChefBot writing a bestselling AI-powered cookbook memoir."}]
request_body=json.dumps({"anthropic_version": "bedrock-2023-05-31", "max_tokens": max_tokens,
"top_p": top_p, "messages": messages})
response = bedrock.invoke_model(body=request_body, modelId='us.anthropic.claude-sonnet-4-5-20250929-v1:0')
response_body = json.loads(response.get('body').read().decode())
return response_body["content"][0]["text"]
# Modify the parameters to create the two stories
short_focused = generate_story_with_params(bedrock, ____, ____)
long_diverse = generate_story_with_params(bedrock, ____, ____)
print("More focused: ", short_focused, "More creative: ", long_diverse)