第 12 页 / 共 100 页 / 飞书修订版 8

6.system prompt

此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)

邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org

==================================================

系统提示词是自定义Claude响应用户输入的强大方式。您可以塑造Claude的语调、风格和方法来匹配您的特定用例,而不是获得通用的答案。

image1.png

为什么系统提示词很重要

考虑构建一个数学辅导聊天机器人。当学生问"如何求解5x + 2 = 3中的x?"时,您希望Claude表现得像一个真正的导师,而不是直接给出答案。一个好的数学导师应该:

  • 最初给出提示而不是完整的解答
  • 耐心地逐步引导学生解决问题
  • 展示类似问题的解答作为示例

您绝对不希望Claude:

  • 立即给出直接答案
  • 告诉学生直接使用计算器

系统提示词的工作原理

image2.png

系统提示为Claude提供如何响应的指导。你将它们定义为纯字符串并传递到create函数调用中。主要优势包括:

  • 系统提示为Claude提供如何响应的指导
  • Claude会尝试以指定角色的方式来响应
  • 有助于让Claude专注于任务

基本结构如下:

system_prompt = """

You are a patient math tutor.

Do not directly answer a student's questions.

Guide them to a solution step by step.

"""

client.messages.create(

model=model,

messages=messages,

max_tokens=1000,

system=system_prompt

)

看到差异

没有系统提示词时,Claude 会立即给出完整的分步解决方案。这可能很有帮助,但并不能鼓励学生自己思考问题。

使用数学导师系统提示词后,Claude 的回应发生了显著变化。Claude 不再提供完整的解决方案,而是提出引导性问题,比如"你认为隔离 x 的第一步应该是什么?考虑一下我们可能需要对等式两边执行什么操作来开始移动项。"

构建灵活的聊天函数

与其硬编码系统提示词,你可以通过接受系统提示词作为参数来让聊天函数更具可重用性:

def chat(messages, system=None):

params = {

"model": model,

"max_tokens": 1000,

"messages": messages,

}

if system:

params["system"] = system

message = client.messages.create(**params)

return message.content[0].text

这种方法处理了一个重要细节:Claude的API不接受system=None参数,因此你需要仅在提供系统提示时才有条件地包含system参数。

现在你可以在调用chat函数时选择是否使用系统提示:

# 不使用系统提示

answer = chat(messages)

# 使用系统提示

system = """

你是一位耐心的数学导师。

不要直接回答学生的问题。

引导他们一步步找到解决方案。

"""

answer = chat(messages, system=system)

系统提示对于创建行为一致且适合其预期用途的AI应用程序至关重要。它们将通用的AI响应转换为专业化的、符合角色的交互。

==================================================



此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org