Skip to content

Claude 交互进阶课程:从请求原理到系统评测

课程说明:本课程旨在深度解析与 Claude 交互的技术细节,涵盖请求全生命周期、核心参数调控、流式传输以及系统化的提示词评估体系,助您构建专业级 AI 应用。


第一课:请求生命周期全解析

1.1 五步请求流程

每次与 Claude 的交互均遵循清晰的五个阶段:

  1. 客户端请求:用户点击发送,请求到达您的服务器。
  2. 服务器转发:服务器验证并将请求转发至 Anthropic API。
  3. 模型处理:Claude 内部进行复杂的推理计算。
  4. API 响应:Anthropic 将结果返回至您的服务器。
  5. 客户端呈现:服务器将结果推送至用户界面。

1.2 核心架构原则:服务器中转

⚠️ 严禁从客户端代码直连 API

  • 安全性:客户端暴露 API 密钥(Key)会导致严重的封号或资产风险。
  • 正确操作:用户请求 → 您的服务器(安全存储密钥)→ Anthropic API → 服务器 → 用户。

1.3 模型处理的四个微阶段

  1. 词元化 (Tokenization):将文本拆解为词元(Tokens)。通常 1 个单词约等于 1 个词元。
  2. 嵌入 (Embedding):将词元转化为编码语义的高维向量。
  3. 语境化 (Contextualization):结合上下文修正语义,例如区分“苹果”是水果还是公司。
  4. 生成 (Generation):计算下一个词元的概率分布,持续生成直至触发终止条件(如达到词元上限或遇到停止序列)。

第二课:系统提示词 (System Prompts)

核心逻辑:系统提示词是定制 Claude 响应风格的“性格底色”,它比普通指令更能稳定地改变模型行为。

2.1 为什么需要它?

以数学导师为例,普通的回答可能直接给答案,而系统提示词可以强制它:

  • 仅提供线索而不直接给答案。
  • 拆解步骤引导学生思考。
  • 保持耐心和鼓励的语调。

2.2 实现方式

系统提示词应作为独立参数传递。在代码中,建议将其封装为可选参数以提升复用性:

python
def chat(messages, system=None):
    params = {
        "model": "claude-3-sonnet",
        "messages": messages,
        "system": system  # 仅在提供时包含
    }
    # 执行 API 调用...

第三课:温度参数 (Temperature)

核心逻辑:温度是控制响应“确定性”与“创造性”的调节旋钮。

3.1 调节原理

  • 低温度 (0.0 - 0.3):趋向于选择概率最高的词元。适用于 事实问答、代码编写、数据提取
  • 中温度 (0.4 - 0.7):兼顾逻辑与表达。适用于 内容总结、教育科普、带限制的创作
  • 高温度 (0.8 - 1.0):增加随机性,分布更均匀。适用于 头脑风暴、文学创作、营销文案

第四课:响应流式传输 (Streaming)

核心逻辑:消除用户的“等待焦虑”。流式传输让用户能实时看到 Claude 逐条生成的文字,而非盯着加载动画 20 秒。

4.1 工作机制

开启流式传输后,API 会发送一系列事件:

  • MessageStart:开始发送消息。
  • ContentBlockDelta:承载实际生成的文本碎片(Chunks)。
  • MessageStop:生成结束。

4.2 开发建议

使用 SDK 提供的简化接口处理流,并在完成后调用 get_final_message() 获取完整内容,以便于数据库持久化存储。


第五课:预填消息与停止序列

5.1 预填助手消息 (Prefilling)

您可以提前写好助手回答的开头。Claude 会认为自己已经开始了回答,并顺着您的语境继续。

  • 示例:用户问“咖啡好还是茶好?”,预填“咖啡更好是因为...”,Claude 将被迫为咖啡辩护。

5.2 停止序列 (Stop Sequences)

强制 Claude 在生成特定字符时立即停下。

  • 妙用:获取纯净 JSON
    1. 预填辅助消息:````json`
    2. 设置停止序列:```
    3. 结果:Claude 会直接输出 JSON 内容而不附带任何解释文本。

第六课:从提示工程到提示词评估

6.1 核心转变

  • 提示工程:侧重于“写什么”,如使用 XML 标签或少样本学习。
  • 提示词评估:侧重于“测得准”。通过自动化测试衡量提示词的真实表现,而非凭感觉。

6.2 为什么必须进行评估?

在生产环境中,用户输入的随机性极强。仅测试一两个案例(测试陷阱)会导致应用在面对复杂输入时崩溃。我们需要通过数据驱动的流程来迭代提示词。


第七课:五步评估工作流

  1. 草拟提示词:编写初始模板。
  2. 构建评估数据集 (Eval Dataset):收集涵盖各种边界情况的样本输入。
  3. 批量处理:将数据集喂给 Claude 生成结果。
  4. 自动化评分 (Grader):根据预设标准给结果打分(1-10 分)。
  5. 迭代改进:根据评分结果修改提示词并重新运行,直到平均分达标。

第八课:建立评分体系

8.1 三种评分器

  1. 代码评分器 (Code Grader):编程验证格式是否有错(如 JSON 语法校验)。
  2. 模型评分器 (Model Grader):使用更强的模型(如 Claude Opus)去评价较小模型的回答质量。
  3. 人工评分器 (Human Grader):对于主观性极强的任务进行最后的人工把关。

8.2 综合评分计算

建议将“技术正确性”(语法、格式)与“内容质量”(遵循指令的程度)按照一定权重加权平均,形成最终的 提示词性能指标 (Prompt Performance Score)



课程测验:与AI交流

1. 您想向 Claude 的 API 发送请求。您必须包含的最少信息是什么?

  • [ ] A. 仅 API 密钥和您的问题
  • [ ] B. 仅您的消息文本
  • [ ] C. API 密钥、模型名称、消息列表(Messages)和最大词元数(Max Tokens)
  • [ ] D. 您的姓名、电子邮件和消息内容

2. 您问 Claude “什么是披萨?”,它回答了。然后您问“什么配料最受欢迎?”,但 Claude 不明白您指的是什么。问题出在哪里?

  • [ ] A. 您的网络连接太慢
  • [ ] B. Claude 坏了
  • [ ] C. 您问得太快了
  • [ ] D. 您没有发送之前的消息,Claude 不记得上下文

3. 当 Claude 处理您的文本时,它做的第一件事是什么?

  • [ ] A. 立即生成回复
  • [ ] B. 检查内容是否合适
  • [ ] C. 将文本拆分为称为“词元”(Tokens)的更小单元
  • [ ] D. 将其翻译成另一种语言

4. 用户抱怨您的聊天应用感觉很慢,因为他们需要盯着加载动画等待 20 秒,然后所有文本才一次性出现。什么可以解决这个问题?

  • [ ] A. 提更短的问题
  • [ ] B. 使用更快的网络连接
  • [ ] C. 启用流式传输 (Streaming) 响应
  • [ ] D. 使用不同的浏览器

5. 您正在构建一个与 Claude 交互的 Web 应用。您应该在哪里存储您的 API 密钥?

  • [ ] A. 在用户安装的移动应用中
  • [ ] B. 在用户电脑上的文本文件中
  • [ ] C. 在用户无法访问的您的服务器上
  • [ ] D. 在用户下载的 JavaScript 代码中

6. 您正在构建一个数学辅导机器人。您希望 Claude 提供提示而不是直接给出答案。您应该使用什么方法?

  • [ ] A. 设置非常低的字数限制
  • [ ] B. 在消息中使用全大写字母
  • [ ] C. 使用解释导师角色的“系统提示词”(System Prompt)
  • [ ] D. 要求用户说得更具体

7. 您希望 Claude 为一个事实问答应用提供非常可预测、一致的答案。您应该使用什么温度(Temperature)设置?

  • [ ] A. 事实类问题温度不重要
  • [ ] B. 低温度(接近 0.0)
  • [ ] C. 中等温度(约 0.5)
  • [ ] D. 高温度(接近 1.0)

8. 您正在构建一个需要从 Claude 获取纯净 JSON(无额外文本或格式)的应用。您如何只获得原始 JSON?

  • [ ] A. 多次发送请求并选择最好的一个
  • [ ] B. 非常礼貌地要求 Claude 仅返回 JSON
  • [ ] C. 结合使用“预填消息”(Prefilling)和“停止序列”(Stop Sequences)
  • [ ] D. 使用非常高的温度设置

测验题参考答案

  1. C (API 密钥、模型名称、Messages 消息列表和 Max Tokens)
  2. D (您没有发送之前的消息,Claude 不记得当前对话的上下文)
  3. C (将文本拆分为词元 Tokens,这是处理文本的第一步)
  4. C (启用流式传输 Streaming,实时推送生成结果)
  5. C (在用户无法访问的服务器上,这是唯一的安全做法)
  6. C (使用系统提示词 System Prompt,从角色/性格层面界定回复规则)
  7. B (低温度,减少随机性,适合事实类应用)
  8. C (结合预填助手回复和设置停止序列,是提取纯净 JSON 的最稳健方法)

结语:持续进阶建议

  • 保持一致性:核心术语(如词元、停止序列)在文档中保持一致。
  • 数据说话:每一次提示词的改动都应有对应评分数据的支持。
  • 架构优先:确保 API 密钥安全和流式体验是应用成败的关键。

© 内容基于 Anthropic 官方技术文档整理 | 适用于开发者架构设计与故障排查参考

基于 VitePress 构建