在使用Claude时,您可以通过预填充Assistant消息来引导其回复。这种强大的技术允许您指导Claude的行为,跳过前言,强制使用特定格式如JSON或XML,甚至帮助Claude在角色扮演场景中保持角色一致性。

在某些Claude表现不如预期的情况下,预填充几句话就能大大改善Claude的表现。一点预填充就能产生很大的影响!

如何预填充Claude的回复

要进行预填充,请在Assistant消息中包含所需的初始文本(Claude的回复将从Assistant消息结束的地方继续):

import anthropic

client = anthropic.Anthropic()
response = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "你最喜欢的颜色是什么?"},
        {"role": "assistant", "content": "作为一个AI助手,我没有最喜欢的颜色,但如果非要选择的话,我会选择绿色,因为"}  # 在此处预填充
    ]
)

示例

示例1:控制输出格式并跳过前言

高级用户提示:预填充{强制Claude跳过前言并直接输出JSON对象。这样更简洁、更清晰,也更容易被程序解析而无需额外处理。

示例2:在角色扮演场景中保持角色

角色扮演提示:预填充一个方括号中的[角色名称]可以提醒Claude保持角色,即使在更长和更复杂的对话中也是如此。当与system参数中的角色提示结合使用时,这种方法特别有效。