作为一名全栈开发者我深刻体会到与AI模型的有效沟通正成为一项新的核心技能。提示词Prompt就是我们与Claude这类大语言模型对话的“编程语言”。一个精准的提示词能直接决定AI输出的质量、相关性和可用性。然而在实践中我们常常会遇到各种“沟通障碍”比如指令过于模糊导致AI答非所问或者输出内容冗长、结构混乱难以直接集成到应用中。更棘手的是在多轮对话中AI可能会“忘记”之前的上下文或者对复杂任务的理解出现偏差这些都需要我们通过精心的提示词设计来解决。与OpenAI的GPT系列相比Anthropic的Claude在提示词的响应和理解上有着一些微妙的差异。Claude在遵循复杂指令、进行结构化输出以及安全性方面表现出色其提示词设计更强调清晰的角色定义和任务边界。为了更直观地对比我们可以看看它们在常用语法特性上的区别特性Claude (Anthropic)GPT (OpenAI)说明与建议系统提示/角色定义强烈推荐在对话开始时明确设定对输出风格影响显著。同样有效但有时对风格的控制不如Claude严格。对于Claude花时间精确定义“角色”是高质量输出的关键。结构化输出指令对XML标签、Markdown、JSON等格式的遵循能力极强。能理解并生成但偶尔会有格式上的小错误。两者都适用Claude在复杂嵌套结构的准确性上可能略胜一筹。少样本学习在提示词中提供1-2个输入输出示例能非常有效地引导模型。同样有效是引导模型的经典方法。这是跨模型的通用最佳实践能显著提升任务准确性。思维链提示对“让我们一步步思考”这类指令响应良好能展示推理过程。非常擅长是GPT的强项之一。在需要复杂推理或解题时这是提升结果可靠性的重要技巧。安全与合规边界内置了较强的安全过滤器对某些请求的拒绝更直接。也有安全机制但拒绝的措辞和边界可能不同。编写提示词时需考虑模型的安全策略避免触发不必要的限制。理解这些差异能帮助我们在切换或选择模型时更快地调整提示策略达到事半功倍的效果。1. 核心结构拆解构建提示词的“骨架”一个高效的Claude提示词通常包含三个核心部分这就像为AI编写一份清晰的工作说明书。角色定义这是设定AI“人设”的关键。不要只说“你是一个助手”要具体化。例如“你是一位经验丰富的全栈开发专家擅长用Python和JavaScript解决问题并且解释技术概念时深入浅出。” 这个定义会贯穿整个对话影响其回答的语气、深度和角度。任务描述清晰、无歧义地说明你要AI做什么。使用动作性强的动词如“编写”、“总结”、“转换”、“分析”、“对比”。避免开放式问题尽量封闭化。例如将“告诉我关于API的东西”改为“为RESTful用户服务编写三个标准的API端点GET /users, POST /users, GET /users/{id}的Python Flask代码。”格式约束明确指定你期望的输出格式。Claude非常擅长遵循格式指令。你可以要求它以JSON、Markdown表格、带编号的列表、特定结构的文本块等形式输出。例如“请将分析结果以Markdown表格形式呈现包含‘问题’、‘根本原因’、‘建议修复’三列。”将这三者结合就是一个强大的提示词基础模板你是一位[具体的角色]。 你的任务是[清晰的任务描述]。 请确保你的输出是[具体的格式要求]。2. 上下文管理技巧让AI拥有“记忆”对于多轮对话或处理长文档有效的上下文管理是保证对话连贯性的生命线。Claude API允许我们注入完整的对话历史。假设我们在开发一个代码助手对话可能如下# 示例使用Claude Python SDK (版本 0.7.10) 管理多轮对话上下文 from anthropic import Anthropic client Anthropic(api_keyyour_api_key) # 初始化对话包含系统提示角色定义 conversation_history [ {role: user, content: 你是一个资深Python代码审查助手。请帮我审查下面这段Flask路由代码指出潜在的安全问题和性能隐患。}, {role: assistant, content: 好的我已准备好。请提供您的代码。}, ] # 用户发送代码 user_code app.route(/user/username) def show_user_profile(username): query SELECT * FROM users WHERE username username ; result db.engine.execute(query) return render_template(user.html, userresult.fetchone()) conversation_history.append({role: user, content: user_code}) # 获取AI的审查意见 response client.messages.create( modelclaude-3-sonnet-20240229, max_tokens1000, messagesconversation_history # 注入完整历史 ) assistant_reply response.content[0].text conversation_history.append({role: assistant, content: assistant_reply}) print(f审查结果{assistant_reply}) # 此时conversation_history包含了所有轮次可用于下一轮基于审查结果的深入讨论。通过这种方式Claude能记住之前讨论的代码、问题和建议从而实现真正连贯的、基于上下文的交互。3. 错误处理与鲁棒性模式即使提示词写得再好网络、API限制或模型自身也可能产生意外。健壮的代码必须包含错误处理。import time from anthropic import Anthropic, APIError, APIConnectionError, RateLimitError client Anthropic(api_keyyour_api_key) def safe_claude_call(prompt, max_retries3): 一个包含基本错误重试机制的Claude调用函数 for attempt in range(max_retries): try: response client.messages.create( modelclaude-3-haiku-20240307, # 使用一个更快的模型示例 max_tokens500, messages[{role: user, content: prompt}] ) return response.content[0].text except RateLimitError as e: wait_time 2 ** attempt # 指数退避 print(f速率限制触发第{attempt1}次重试等待{wait_time}秒...) time.sleep(wait_time) except APIConnectionError as e: print(f网络连接错误: {e}. 重试中...) time.sleep(1) except APIError as e: # 对于其他API错误如无效请求、模型过载等 print(fAPI错误 (尝试 {attempt1}/{max_retries}): {e}) if attempt max_retries - 1: return f请求失败最终错误: {e} time.sleep(1) return 请求失败已达最大重试次数。 # 使用示例 result safe_claude_call(用一句话解释什么是量子计算。) print(result)4. 可复用的提示词模板库以下是5个针对开发者常见场景的模板你可以直接复制修改参数使用。模板1代码生成与解释你是一位{编程语言}专家。请为以下任务编写清晰、高效且符合最佳实践的代码 任务描述{详细描述功能如“一个函数接收URL列表异步获取所有页面的标题并返回字典”} 要求 1. 包含必要的错误处理。 2. 代码中需添加简要注释。 3. 在代码块后用一句话总结该实现的核心思路。参数编程语言,详细描述功能预期输出一个带注释的代码块后跟一句总结。模板2数据分析与洞察你是一个数据分析助手。请分析以下数据集摘要并给出商业洞察 数据集描述{描述数据来源和字段如“包含过去一年每日用户活跃数(DAU)和新增用户数”} 关键问题 1. 整体趋势如何是否有明显的季节性或周期性 2. DAU与新增用户数之间存在什么关系 3. 提出一个可能的数据异常点或值得深入调查的现象。 请将核心发现用项目符号列表呈现并对每个发现提供一句话的数据支撑理由。参数数据集描述预期输出一个包含3-4个要点的项目符号列表每个要点附带简短理由。模板3代码审查与优化角色资深{语言/框架}开发工程师。 任务对以下代码片段进行严格的代码审查。 代码{粘贴代码}审查维度 - 安全性如SQL注入、XSS - 性能时间复杂度、内存使用 - 可读性与代码风格 - 潜在bug 请以表格形式输出列包括问题类型、位置行号、描述、严重程度高/中/低、改进建议。参数语言/框架,粘贴代码预期输出一个结构化的Markdown表格。模板4技术方案设计作为系统架构师请为“{系统目标}”设计一个高层次的技术方案。 约束条件{列出关键约束如“必须使用微服务、主要云提供商为AWS、需要处理每秒万级请求”} 请按以下结构输出 1. **架构图描述**用文字描述核心组件及其交互。 2. **技术选型**列出每个主要组件的候选技术如数据库、消息队列并简述理由。 3. **数据流**说明一个核心用户请求的数据处理路径。 4. **潜在挑战与缓解**指出2个主要技术风险及初步应对思路。参数系统目标,关键约束预期输出一个结构清晰、分点描述的技术方案文档。模板5日志错误诊断你是一个运维专家。请分析下面的错误日志并给出诊断步骤和解决建议。 错误日志{粘贴错误日志}请提供 - **最可能的原因**基于日志模式推断根本原因。 - **诊断步骤**列出接下来应该执行的3-4个排查命令或检查点。 - **临时缓解措施**如果问题影响线上服务可以立即做什么 - **长期解决方案**如何防止此类问题再次发生参数粘贴错误日志预期输出分点列出的诊断与解决指南。5. 性能优化平衡效果与成本使用大模型APItoken就是成本。优化token使用能直接节省开支并提升响应速度。Token使用效率测算Claude的定价通常基于输入和输出的token总数。你可以使用tiktoken库与GPT编码器不同需注意或API本身的计数功能来估算。优化核心在于精简输入提示删除不必要的描述、压缩示例、使用缩写在AI能理解的前提下。对于输出使用max_tokens参数进行严格限制并鼓励AI给出简洁答案。响应延迟与提示复杂度提示词越长、越复杂模型需要处理的计算量就越大响应时间Latency通常也会增加。虽然不完全是线性关系但大体趋势是简单的分类/生成任务几十token响应极快1秒而需要长篇分析、复杂推理的任务数千token可能需要数秒甚至更久。在设计交互式应用时对于前端请求应尽量避免在单次提示中塞入过多上下文可以考虑分步询问或总结历史信息后再传入。6. 关于AI生成内容的风险提示本节必须单独阅读并重视。尽管Claude内置了安全机制但作为开发者我们必须对AI生成的内容负责代码安全AI生成的代码可能存在安全漏洞如上述SQL注入示例。必须将其视为“未经审查的第三方代码”进行严格的人工审查和测试后才能上线。信息准确性AI可能“一本正经地胡说八道”产生幻觉生成看似合理但完全错误的事实、数据或引用。对于关键信息务必进行核实。版权与合规AI生成的内容可能无意中模仿受版权保护的文本风格或内容。避免直接用于商业出版等敏感场景并了解相关服务条款。偏见与公平性模型训练数据中的偏见可能在输出中体现。在涉及招聘、评审等敏感领域应用时需格外谨慎最好加入人工审核环节。 始终记住AI是强大的辅助工具而非完全可靠的自动化系统。人类开发者的判断和监督不可或缺。实战训练检验一下你的学习成果吧请尝试完成以下练习。练习题1基础重构你有一个模糊的提示词“写点关于缓存的代码。” 请根据本文的“核心结构拆解”部分将其重构成一个对Claude更清晰、更有效的提示词。练习题2上下文管理假设你正在用Claude API构建一个“学习伙伴”它需要记住用户在整个对话中提到的他们不熟悉的编程概念。请用简短的伪代码描述如何在连续的多轮对话中例如用户先问了“什么是RESTful API”几轮后又问“那它和GraphQL在缓存上有什么不同”设计消息列表 (messages) 的结构来维持这种上下文。练习题3错误处理编写一段Python代码片段调用Claude API模型任选来总结一篇长文章。要求包含基本的异常处理至少捕获RateLimitError和APIConnectionError并在发生RateLimitError时实现简单的延迟重试逻辑。参考答案练习1答案示例你是一位后端开发专家擅长性能优化。 你的任务是编写一个Python函数使用functools.lru_cache装饰器来记忆化一个计算斐波那契数列的递归函数。 请确保 1. 函数名为fibonacci。 2. 包含类型注解。 3. 在代码块后简要解释使用缓存后时间复杂度如何变化。练习2答案思路# 伪代码思路 messages [ {role: system, content: 你是一个编程学习伙伴会耐心解释概念并记住对话中用户提到过的知识盲点。}, {role: user, content: 什么是RESTful API}, {role: assistant, content: 解释RESTful API...}, # ... 中间可能穿插其他对话轮次 ... {role: user, content: 刚才你解释了RESTful API那它和GraphQL在缓存机制上有什么主要区别} ] # 关键是将整个对话历史按顺序放入messagesClaude会自动从中理解“刚才”的指代。练习3答案示例import time from anthropic import Anthropic, RateLimitError, APIConnectionError client Anthropic(api_keyYOUR_API_KEY) long_article 这里是你的长文章内容... def summarize_with_retry(text, max_retries2): prompt f请用不超过100字总结以下文章的核心内容\n{text} for i in range(max_retries 1): # 1 包含首次尝试 try: response client.messages.create( modelclaude-3-haiku-20240307, max_tokens150, messages[{role: user, content: prompt}] ) return response.content[0].text except RateLimitError: if i max_retries: wait 2 ** i print(f触发限流等待{wait}秒后重试...) time.sleep(wait) else: return 错误达到重试上限请稍后再试。 except APIConnectionError: print(网络连接错误请检查你的网络。) return 错误网络连接失败。 except Exception as e: return f发生未知错误{e} summary summarize_with_retry(long_article) print(summary)通过这篇指南我们从提示词的核心原理、对比差异到具体的最佳实践、模板代码和错误处理系统地梳理了与Claude高效协作的方法。记住编写提示词是一个迭代过程多实验、多分析不同提示带来的输出变化是提升技能最快的方式。现在就打开你的编辑器开始和Claude进行更精准的对话吧。
Claude官方提示词教程:从入门到精通的实战指南
作为一名全栈开发者我深刻体会到与AI模型的有效沟通正成为一项新的核心技能。提示词Prompt就是我们与Claude这类大语言模型对话的“编程语言”。一个精准的提示词能直接决定AI输出的质量、相关性和可用性。然而在实践中我们常常会遇到各种“沟通障碍”比如指令过于模糊导致AI答非所问或者输出内容冗长、结构混乱难以直接集成到应用中。更棘手的是在多轮对话中AI可能会“忘记”之前的上下文或者对复杂任务的理解出现偏差这些都需要我们通过精心的提示词设计来解决。与OpenAI的GPT系列相比Anthropic的Claude在提示词的响应和理解上有着一些微妙的差异。Claude在遵循复杂指令、进行结构化输出以及安全性方面表现出色其提示词设计更强调清晰的角色定义和任务边界。为了更直观地对比我们可以看看它们在常用语法特性上的区别特性Claude (Anthropic)GPT (OpenAI)说明与建议系统提示/角色定义强烈推荐在对话开始时明确设定对输出风格影响显著。同样有效但有时对风格的控制不如Claude严格。对于Claude花时间精确定义“角色”是高质量输出的关键。结构化输出指令对XML标签、Markdown、JSON等格式的遵循能力极强。能理解并生成但偶尔会有格式上的小错误。两者都适用Claude在复杂嵌套结构的准确性上可能略胜一筹。少样本学习在提示词中提供1-2个输入输出示例能非常有效地引导模型。同样有效是引导模型的经典方法。这是跨模型的通用最佳实践能显著提升任务准确性。思维链提示对“让我们一步步思考”这类指令响应良好能展示推理过程。非常擅长是GPT的强项之一。在需要复杂推理或解题时这是提升结果可靠性的重要技巧。安全与合规边界内置了较强的安全过滤器对某些请求的拒绝更直接。也有安全机制但拒绝的措辞和边界可能不同。编写提示词时需考虑模型的安全策略避免触发不必要的限制。理解这些差异能帮助我们在切换或选择模型时更快地调整提示策略达到事半功倍的效果。1. 核心结构拆解构建提示词的“骨架”一个高效的Claude提示词通常包含三个核心部分这就像为AI编写一份清晰的工作说明书。角色定义这是设定AI“人设”的关键。不要只说“你是一个助手”要具体化。例如“你是一位经验丰富的全栈开发专家擅长用Python和JavaScript解决问题并且解释技术概念时深入浅出。” 这个定义会贯穿整个对话影响其回答的语气、深度和角度。任务描述清晰、无歧义地说明你要AI做什么。使用动作性强的动词如“编写”、“总结”、“转换”、“分析”、“对比”。避免开放式问题尽量封闭化。例如将“告诉我关于API的东西”改为“为RESTful用户服务编写三个标准的API端点GET /users, POST /users, GET /users/{id}的Python Flask代码。”格式约束明确指定你期望的输出格式。Claude非常擅长遵循格式指令。你可以要求它以JSON、Markdown表格、带编号的列表、特定结构的文本块等形式输出。例如“请将分析结果以Markdown表格形式呈现包含‘问题’、‘根本原因’、‘建议修复’三列。”将这三者结合就是一个强大的提示词基础模板你是一位[具体的角色]。 你的任务是[清晰的任务描述]。 请确保你的输出是[具体的格式要求]。2. 上下文管理技巧让AI拥有“记忆”对于多轮对话或处理长文档有效的上下文管理是保证对话连贯性的生命线。Claude API允许我们注入完整的对话历史。假设我们在开发一个代码助手对话可能如下# 示例使用Claude Python SDK (版本 0.7.10) 管理多轮对话上下文 from anthropic import Anthropic client Anthropic(api_keyyour_api_key) # 初始化对话包含系统提示角色定义 conversation_history [ {role: user, content: 你是一个资深Python代码审查助手。请帮我审查下面这段Flask路由代码指出潜在的安全问题和性能隐患。}, {role: assistant, content: 好的我已准备好。请提供您的代码。}, ] # 用户发送代码 user_code app.route(/user/username) def show_user_profile(username): query SELECT * FROM users WHERE username username ; result db.engine.execute(query) return render_template(user.html, userresult.fetchone()) conversation_history.append({role: user, content: user_code}) # 获取AI的审查意见 response client.messages.create( modelclaude-3-sonnet-20240229, max_tokens1000, messagesconversation_history # 注入完整历史 ) assistant_reply response.content[0].text conversation_history.append({role: assistant, content: assistant_reply}) print(f审查结果{assistant_reply}) # 此时conversation_history包含了所有轮次可用于下一轮基于审查结果的深入讨论。通过这种方式Claude能记住之前讨论的代码、问题和建议从而实现真正连贯的、基于上下文的交互。3. 错误处理与鲁棒性模式即使提示词写得再好网络、API限制或模型自身也可能产生意外。健壮的代码必须包含错误处理。import time from anthropic import Anthropic, APIError, APIConnectionError, RateLimitError client Anthropic(api_keyyour_api_key) def safe_claude_call(prompt, max_retries3): 一个包含基本错误重试机制的Claude调用函数 for attempt in range(max_retries): try: response client.messages.create( modelclaude-3-haiku-20240307, # 使用一个更快的模型示例 max_tokens500, messages[{role: user, content: prompt}] ) return response.content[0].text except RateLimitError as e: wait_time 2 ** attempt # 指数退避 print(f速率限制触发第{attempt1}次重试等待{wait_time}秒...) time.sleep(wait_time) except APIConnectionError as e: print(f网络连接错误: {e}. 重试中...) time.sleep(1) except APIError as e: # 对于其他API错误如无效请求、模型过载等 print(fAPI错误 (尝试 {attempt1}/{max_retries}): {e}) if attempt max_retries - 1: return f请求失败最终错误: {e} time.sleep(1) return 请求失败已达最大重试次数。 # 使用示例 result safe_claude_call(用一句话解释什么是量子计算。) print(result)4. 可复用的提示词模板库以下是5个针对开发者常见场景的模板你可以直接复制修改参数使用。模板1代码生成与解释你是一位{编程语言}专家。请为以下任务编写清晰、高效且符合最佳实践的代码 任务描述{详细描述功能如“一个函数接收URL列表异步获取所有页面的标题并返回字典”} 要求 1. 包含必要的错误处理。 2. 代码中需添加简要注释。 3. 在代码块后用一句话总结该实现的核心思路。参数编程语言,详细描述功能预期输出一个带注释的代码块后跟一句总结。模板2数据分析与洞察你是一个数据分析助手。请分析以下数据集摘要并给出商业洞察 数据集描述{描述数据来源和字段如“包含过去一年每日用户活跃数(DAU)和新增用户数”} 关键问题 1. 整体趋势如何是否有明显的季节性或周期性 2. DAU与新增用户数之间存在什么关系 3. 提出一个可能的数据异常点或值得深入调查的现象。 请将核心发现用项目符号列表呈现并对每个发现提供一句话的数据支撑理由。参数数据集描述预期输出一个包含3-4个要点的项目符号列表每个要点附带简短理由。模板3代码审查与优化角色资深{语言/框架}开发工程师。 任务对以下代码片段进行严格的代码审查。 代码{粘贴代码}审查维度 - 安全性如SQL注入、XSS - 性能时间复杂度、内存使用 - 可读性与代码风格 - 潜在bug 请以表格形式输出列包括问题类型、位置行号、描述、严重程度高/中/低、改进建议。参数语言/框架,粘贴代码预期输出一个结构化的Markdown表格。模板4技术方案设计作为系统架构师请为“{系统目标}”设计一个高层次的技术方案。 约束条件{列出关键约束如“必须使用微服务、主要云提供商为AWS、需要处理每秒万级请求”} 请按以下结构输出 1. **架构图描述**用文字描述核心组件及其交互。 2. **技术选型**列出每个主要组件的候选技术如数据库、消息队列并简述理由。 3. **数据流**说明一个核心用户请求的数据处理路径。 4. **潜在挑战与缓解**指出2个主要技术风险及初步应对思路。参数系统目标,关键约束预期输出一个结构清晰、分点描述的技术方案文档。模板5日志错误诊断你是一个运维专家。请分析下面的错误日志并给出诊断步骤和解决建议。 错误日志{粘贴错误日志}请提供 - **最可能的原因**基于日志模式推断根本原因。 - **诊断步骤**列出接下来应该执行的3-4个排查命令或检查点。 - **临时缓解措施**如果问题影响线上服务可以立即做什么 - **长期解决方案**如何防止此类问题再次发生参数粘贴错误日志预期输出分点列出的诊断与解决指南。5. 性能优化平衡效果与成本使用大模型APItoken就是成本。优化token使用能直接节省开支并提升响应速度。Token使用效率测算Claude的定价通常基于输入和输出的token总数。你可以使用tiktoken库与GPT编码器不同需注意或API本身的计数功能来估算。优化核心在于精简输入提示删除不必要的描述、压缩示例、使用缩写在AI能理解的前提下。对于输出使用max_tokens参数进行严格限制并鼓励AI给出简洁答案。响应延迟与提示复杂度提示词越长、越复杂模型需要处理的计算量就越大响应时间Latency通常也会增加。虽然不完全是线性关系但大体趋势是简单的分类/生成任务几十token响应极快1秒而需要长篇分析、复杂推理的任务数千token可能需要数秒甚至更久。在设计交互式应用时对于前端请求应尽量避免在单次提示中塞入过多上下文可以考虑分步询问或总结历史信息后再传入。6. 关于AI生成内容的风险提示本节必须单独阅读并重视。尽管Claude内置了安全机制但作为开发者我们必须对AI生成的内容负责代码安全AI生成的代码可能存在安全漏洞如上述SQL注入示例。必须将其视为“未经审查的第三方代码”进行严格的人工审查和测试后才能上线。信息准确性AI可能“一本正经地胡说八道”产生幻觉生成看似合理但完全错误的事实、数据或引用。对于关键信息务必进行核实。版权与合规AI生成的内容可能无意中模仿受版权保护的文本风格或内容。避免直接用于商业出版等敏感场景并了解相关服务条款。偏见与公平性模型训练数据中的偏见可能在输出中体现。在涉及招聘、评审等敏感领域应用时需格外谨慎最好加入人工审核环节。 始终记住AI是强大的辅助工具而非完全可靠的自动化系统。人类开发者的判断和监督不可或缺。实战训练检验一下你的学习成果吧请尝试完成以下练习。练习题1基础重构你有一个模糊的提示词“写点关于缓存的代码。” 请根据本文的“核心结构拆解”部分将其重构成一个对Claude更清晰、更有效的提示词。练习题2上下文管理假设你正在用Claude API构建一个“学习伙伴”它需要记住用户在整个对话中提到的他们不熟悉的编程概念。请用简短的伪代码描述如何在连续的多轮对话中例如用户先问了“什么是RESTful API”几轮后又问“那它和GraphQL在缓存上有什么不同”设计消息列表 (messages) 的结构来维持这种上下文。练习题3错误处理编写一段Python代码片段调用Claude API模型任选来总结一篇长文章。要求包含基本的异常处理至少捕获RateLimitError和APIConnectionError并在发生RateLimitError时实现简单的延迟重试逻辑。参考答案练习1答案示例你是一位后端开发专家擅长性能优化。 你的任务是编写一个Python函数使用functools.lru_cache装饰器来记忆化一个计算斐波那契数列的递归函数。 请确保 1. 函数名为fibonacci。 2. 包含类型注解。 3. 在代码块后简要解释使用缓存后时间复杂度如何变化。练习2答案思路# 伪代码思路 messages [ {role: system, content: 你是一个编程学习伙伴会耐心解释概念并记住对话中用户提到过的知识盲点。}, {role: user, content: 什么是RESTful API}, {role: assistant, content: 解释RESTful API...}, # ... 中间可能穿插其他对话轮次 ... {role: user, content: 刚才你解释了RESTful API那它和GraphQL在缓存机制上有什么主要区别} ] # 关键是将整个对话历史按顺序放入messagesClaude会自动从中理解“刚才”的指代。练习3答案示例import time from anthropic import Anthropic, RateLimitError, APIConnectionError client Anthropic(api_keyYOUR_API_KEY) long_article 这里是你的长文章内容... def summarize_with_retry(text, max_retries2): prompt f请用不超过100字总结以下文章的核心内容\n{text} for i in range(max_retries 1): # 1 包含首次尝试 try: response client.messages.create( modelclaude-3-haiku-20240307, max_tokens150, messages[{role: user, content: prompt}] ) return response.content[0].text except RateLimitError: if i max_retries: wait 2 ** i print(f触发限流等待{wait}秒后重试...) time.sleep(wait) else: return 错误达到重试上限请稍后再试。 except APIConnectionError: print(网络连接错误请检查你的网络。) return 错误网络连接失败。 except Exception as e: return f发生未知错误{e} summary summarize_with_retry(long_article) print(summary)通过这篇指南我们从提示词的核心原理、对比差异到具体的最佳实践、模板代码和错误处理系统地梳理了与Claude高效协作的方法。记住编写提示词是一个迭代过程多实验、多分析不同提示带来的输出变化是提升技能最快的方式。现在就打开你的编辑器开始和Claude进行更精准的对话吧。