正在学习

澄清表:每项任务的现实成本基准

概念发展

令牌效率并不在于写出简短的提示语——而在于写出聪明的提示语。其核心原则是信息密度:即用最少的词语清晰地向 Claude 传达你的意图。

Claude 的上下文窗口很大(取决于模型,通常有数千甚至数十万个令牌),但不必要的冗余仍会增加成本并降低处理速度。高效的提示应在清晰度、具体性和上下文控制之间取得平衡。

令牌高效提示的核心原则包括:

  1. 表达明确,而非冗长。 清晰地定义任务,但避免不必要的文字。
  2. 使用结构化的输入格式。 列表、JSON 或带标签的文本片段有助于 Claude 快速解析上下文。
  3. 总结之前的上下文。 与其重新发送完整的代码库,不如提供简短的摘要或关键摘录。
  4. 复用固定的系统提示。 一次性设置全局行为(如语气或风格),而不是在每次查询中重复。
  5. 要求简洁的输出。 告诉 Claude 响应的详细程度(例如,"请在 200 行以内回复")。

通过掌握这些习惯,开发人员可以显著减少令牌使用量,同时提高交互的一致性。

动手示例:比较提示效率

让我们针对同一任务——生成一个 FastAPI 端点——比较两个提示。第一个效率低下;第二个针对 Claude 进行了优化。

低效提示

你好 Claude,我想请你使用 FastAPI 生成一个 Python API 端点,该端点可以接收包含用户注册信息(如姓名、电子邮件和密码)的 POST 请求。请确保包含适当的验证、错误处理和成功消息。还要添加注释以便我以后能理解代码,并确保密码被安全地哈希处理。使用 SQLite 作为数据库,并确保所有内容都包含在一个独立的示例中。

这个提示虽然自然,但过于冗长。它重复了上下文("请"、"确保"、"包含"等),并使用了对话式的填充语,这些都不利于模型的理解。

优化后的提示

任务:创建一个用于用户注册的 FastAPI POST 端点。

要求:

- 字段:姓名、电子邮件、密码

- 验证输入;安全地哈希密码

- 存储到 SQLite

- 返回成功/失败消息

- 包含内联注释

两个提示生成的输出几乎相同,但优化版本使用的令牌减少了约 40%,同时提高了可读性和清晰度。它使用了结构化格式,避免了冗余的措辞。

动手示例:令牌估算比较

下面是一个简单的 Python 脚本,用于估算冗长提示与简洁提示之间的令牌差异,以说明结构为何重要。

import math
def estimate_tokens(text: str) -> int:
    """基于每 4 个字符一个标记的近似标记计数。"""
    return math.ceil(len(text) / 4)

inefficient_prompt = """你好,Claude,我想请你使用 FastAPI 生成一个 Python API 端点,该端点可以接收包含用户注册信息(如姓名、电子邮件和密码)的 POST 请求。请确保包含适当的验证、错误处理和成功消息。还需要添加注释以便我以后理解代码,并确保密码被安全地哈希处理。使用 SQLite 作为数据库,并确保所有内容都包含在一个自包含的示例中。"""

efficient_prompt = """任务:创建一个用于用户注册的 FastAPI POST 端点。

要求:

- 字段:姓名、电子邮件、密码

- 验证输入;安全地哈希密码

- 存储到 SQLite

- 返回成功/失败消息

- 包含内联注释"""

inefficient_tokens = estimate_tokens(inefficient_prompt)

efficient_tokens = estimate_tokens(efficient_prompt)

savings = inefficient_tokens - efficient_tokens

percent_saved = (savings / inefficient_tokens) * 100

print(f"低效提示标记数:{inefficient_tokens}")

print(f"高效提示标记数:{efficient_tokens}")

print(f"节省的标记数:{savings}(减少 {percent_saved:.1f}%)")



这表明,仅仅将冗长的提示重新格式化为结构化部分,就可以在不损失任何任务保真度的情况下将标记使用量减少近一半。

说明表:标记高效的提示模式

| 模式 | 低效示例 | 高效替代方案 | 有效原因 |
| --- | --- | --- | --- |
| 对话式措辞 | "请编写一个可以……的函数" | "任务:编写一个用于……的函数" | 减少填充词,澄清意图 |
| 重复指令 | "确保验证输入并处理错误" | "要求:验证输入,处理错误" | 将条件合并到一个列表中 |
| 冗余上下文 | "之前,我曾要求你构建类似的功能……" | "使用先前的函数设计以保持一致性" | 总结先前的交互 |
| 过度的输出请求 | "提供详细的解释和带注释的代码示例" | "仅提供带注释的代码" | 防止不必要的详细阐述 |
| 缺乏结构 | 自由流动的文本 | 项目符号或键值格式 | 更容易让 Claude 解析和理解 |

高级技巧:模块化提示

在较大的项目中,为每个操作重复完整提示会浪费标记。相反,你可以创建模块化提示模板,以高效地重用共享上下文。

示例结构:

SYSTEM_PROMPT = """

你是 Claude,一个 AI 编程助手。

遵循 PEP8 并提供干净、有文档说明的代码。

"""

def build_prompt(task_description, requirements):

    return f"""

{SYSTEM_PROMPT}

任务:{task_description}

要求:

{requirements}

"""

# 使用示例
task = "实现一个使用 JWT 身份验证的 Flask 登录端点。"

reqs = "- 验证凭据\n- 成功时返回令牌\n- 使用 SQLite 存储用户"

prompt = build_prompt(task, reqs)

print(prompt)

通过一次性定义固定的系统级指令,你可以避免在每个请求中重新发送它们。这种模块化方法可以在长会话中将重复上下文大小减少 30–50%。

设计标记高效的提示是 Claude 开发人员可以掌握的最有影响力的习惯之一。通过编写结构化、直接和模块化的提示,你可以减少不必要的标记、降低成本并加快响应速度——所有这些都不会影响输出质量。

高效的提示不仅仅是省钱;它是与 Claude 进行交流的一种方式,反映了良好的工程实践:简洁、清晰和一致。

在下一节中,我们将在此基础上探索上下文重用和缓存策略,展示如何通过提示记忆和智能会话设计进一步优化性能。

## 12.4 减少 API 开销和延迟
虽然 Claude Code 的 API 旨在提供响应能力和可扩展性,但频繁或低效的请求可能会引入不必要的开销和延迟,尤其是在迭代或多智能体工作流程中。每次你的系统调用 Claude API 时,都会产生网络延迟、标记解析时间和模型处理延迟。

减少 API 开销不仅仅是加快响应速度——它还关乎成本效率、系统可靠性和用户体验。在本节中,你将学习如何最小化冗余调用、智能地重用上下文,以及实现缓存、批处理和并发管理,以在 Claude 集成的系统中实现高性能。

概念发展

Claude 的延迟配置文件取决于四个主要因素:

1. 网络延迟 – 请求在客户端和 Anthropic API 服务器之间传输所需的时间。
2. 标记处理时间 – 每个标记都会增加处理负载;更长的提示和输出按比例需要更长的时间。
3. 并发和速率限制 – 过多的同时请求可能会导致限流或队列延迟。
4. 冗余往返 – 多次发送相同的数据而不是缓存结果会增加总开销。

减少延迟和 API 开销意味着优化你与 Claude 通信的频率和效率。你不必重复发送完整提示,而是可以重用先前的结果、批处理请求,并通过智能请求管理最小化网络调用。

动手示例:上下文重用和缓存

最简单和最有效的延迟减少技术之一是缓存先前的 Claude 响应。如果你的工作流重复请求类似的补全(例如生成测试用例或样板代码),请在本地存储结果并在需要时检索它们。

以下是演示响应缓存的实用 Python 示例:

import hashlib

import json

import time

练习题

根据文本,token效率的关键原则是什么?

A. 编写尽可能短的提示
B. 编写信息密度高的智能提示
C. 使用尽可能多的词汇以保持清晰
D. 避免使用结构化输入格式

不必要的冗长会对 Claude 的处理产生什么影响?

A. 它提高了响应的质量
B. 它对处理没有影响
C. 它提高了成本并减慢处理速度
D. 它减小了上下文窗口的大小

以下哪些是 token 高效提示的核心原则?(选择所有适用的)

A. 表达明确,而非冗长
B. 使用非结构化的输入格式
C. 总结之前的上下文
D. 复用固定的系统提示
E. 请求冗长的输出

低效的提示词常常重复上下文,并使用对话式的填充内容,这些并不能帮助模型理解。

优化后的提示通常比低效提示使用更多标记,但能提高可读性。

用于生成 FastAPI 端点的优化提示比低效提示少用了约 ___ 个 tokens。

解释为什么推荐使用结构化输入格式来实现高效令牌的提示。

以下哪一项不是减少 token 使用量的推荐方法?

A. 总结之前的上下文
B. 重复使用固定的系统提示
C. 重复发送完整的代码库
D. 请求简洁的输出

关于减少 token 使用量的问题考查了哪些知识点?(可多选)

A. Token 效率定义
B. Token 高效提示的核心原则
C. Claude 的上下文窗口及冗余的影响
D. 最佳实践 - 缓存之前的响应

请求简洁的输出如何有助于高效令牌的提示?

以下哪项最能解释为什么尽管 Claude 拥有大上下文窗口,词元效率仍然很重要?

A. 词元效率并不重要;只有上下文窗口的大小才重要。
B. 大上下文窗口意味着冗长对成本没有影响。
C. 尽管上下文窗口很大,不必要的冗长仍会增加成本并降低处理速度。
D. Claude 无法高效地处理大上下文窗口。

选择所有在使用 Claude 时既有助于 token 高效提示又有助于成本控制的核心原则。

A. 明确表达,不要冗长。
B. 使用结构化输入格式。
C. 复用固定的系统提示。
D. 要求简洁的输出。
E. 对每项任务都始终使用最先进的模型。

使用 Claude 时不需要进行 token 估算,因为上下文窗口足够大,可以处理任何提示。

为了减少 token 使用量,开发者应该___固定系统提示,而不是在每次查询中重复它们。

解释结构化输入格式如何在使用 Claude 时提高 token 效率和控制成本。

登录后解锁笔记、知识点解析、AI 问答

立即登录