共计 2304 个字符,预计需要花费 6 分钟才能阅读完成。
1. 提示词工程为什么重要
在构建基于 Claude 的 AI 应用时,提示词就像程序员给模型编写的 ’ 需求文档 ’。好的提示词能带来三个显著优势:

- 输出质量提升:减少无关内容,提高回答准确率
- 开发效率飞跃:避免反复调试,一次性获得理想结果
- 成本控制:通过精准表达减少不必要的 token 消耗
2. 开发者三大痛点破解
2.1 输出不稳定问题
同一提示词在不同时段可能得到差异结果。通过固定 temperature 参数(建议 0.3-0.7)和添加 stop sequences 来稳定输出:
response = client.completions.create(
model="claude-2",
prompt="[系统指令] 作为 Python 专家回答...",
temperature=0.5, # 控制随机性
stop=["\n\n", "<|endoftext|>"] # 停止标记
)
2.2 API 调用成本过高
通过以下方法降低 token 消耗:
- 使用缩写(如用 ’NL’ 代替 ’Natural Language’)
- 限制输出长度(max_tokens=300)
- 复用上下文(后文会展示多轮对话管理)
2.3 任务理解偏差
采用结构化提示模板:
[角色]
你是有 10 年经验的系统架构师
[任务]
设计高可用电商系统
[要求]
1. 使用 AWS 服务
2. 包含容灾方案
3. 用 Markdown 输出
3. 结构化设计方法论
3.1 角色定义模板
为不同场景预置角色模板(保存在 prompt_templates.py 中):
def get_developer_prompt():
return """[系统指令]
你是有 8 年全栈开发经验的 tech lead,擅长用比喻解释技术概念
[沟通风格]
- 使用生活化类比
- 分步骤说明
- 给出可执行的代码示例 """
3.2 任务分解技巧
复杂任务拆解示例(电商推荐系统场景):
- 先让 Claude 列出关键组件
- 针对每个组件生成详细设计
- 最后整合并验证一致性
3.3 输出格式控制
强制 JSON 输出示例:
prompt = """以 JSON 格式返回:{"summary":" 三句话总结 ","steps": [" 步骤 1"," 步骤 2"],"complexity":" 低 / 中 / 高 "}"""
4. 实战代码示例
4.1 基础提示词构造
import anthropic
client = anthropic.Client("your_api_key")
response = client.completion(prompt=f"""{get_developer_prompt()}
请解释 REST API 设计原则,对比传统 RPC 方式 """,
max_tokens_to_sample=300
)
print(response["completion"])
4.2 多轮对话管理
dialog_history = []
def chat_round(user_input):
context = "\n".join(dialog_history[-3:])
prompt = f"上下文:{context}\n 新问题:{user_input}"
response = client.completion(prompt)
dialog_history.append(f"用户:{user_input}")
dialog_history.append(f"AI:{response['completion']}")
return response["completion"]
4.3 错误处理机制
try:
response = client.completion(
prompt=prompt,
timeout=10 # 秒
)
except anthropic.APIError as e:
print(f"API 错误: {e}")
# 重试逻辑或降级处理
5. 性能优化实战
5.1 Token 使用效率
- 中文比英文平均节省 30% tokens
- 用 ’ 图 1 ’ 代替 ’ 如图 1 所示 ’
- 避免重复描述
5.2 响应时间优化
# 异步调用示例
import asyncio
from anthropic import AsyncAnthropic
async def async_query():
client = AsyncAnthropic()
resp = await client.completion(prompt)
return resp
5.3 缓存策略
实现简单的本地缓存:
from diskcache import Cache
cache = Cache("./prompt_cache")
@cache.memoize()
def get_cached_response(prompt):
return client.completion(prompt)
6. 安全防护方案
6.1 敏感信息过滤
blacklist = ["身份证号", "银行卡", "密码"]
def safe_prompt(text):
for word in blacklist:
text = text.replace(word, "[REDACTED]")
return text
6.2 输出内容审核
接入第三方审核 API 示例:
import moderatethread
def check_content(text):
return moderatethread.check(text).flagged
7. 生产环境检查清单
- [] 每个提示词都有版本控制
- [] 设置合理的 rate limit
- [] 监控 API 错误率(<1% 为佳)
- [] 记录完整交互日志
- [] 定期更新敏感词库
动手实验
尝试改进以下提示词(原版):
“ 写一篇关于机器学习的文章 ”
改进方向建议:
1. 添加具体读者群体(如「面向初中级开发者」)
2. 明确长度要求(「约 500 字」)
3. 指定技术深度(「不涉及数学推导」)
4. 要求结构(「包含应用案例章节」)
期待看到你的优化版本!
正文完
发表至: 未分类
近两天内
