Reddit 上这个 Claude Sonnet 3.5 代码编写提示词模板 V2 版本很有价值。
除了模板本身他还非常详细的解释了自己这么写的原因和结构。
另外里面还有 Claude Sonnet 3.5 的系统提示和 Artifacts 功能的系统提示。
一个学习引导式思维链提示方式的一个好方法。
👇下面是关于提示词的解释:
在解释过程中,我会用 🐈⬛ 标记那些可能有争议的"迷信"做法,用 😺 标记我比较有把握的内容。
这个提示采用了[引导式思维链 (Guided Chain-of-Thought)😺的方法。它告诉 Claude ( 一种大语言模型 (LLM)) 需要执行的步骤及其顺序。我将其作为系统提示,也就是模型接收的第一组指令。
使用 XML 标签来分隔步骤的灵感来自 😺Anthropic 公司的元提示 (MetaPrompt)(小贴士:你可以把那个提示粘贴给 Claude,让它解释一下指令和示例)。
我们知道 Claude 😺由于其训练方式,对 XML 标签反应特别强烈。正因如此,我倾向于在会话结束时或单独处理 HTML 相关内容 🐈⬛。
这个引导式思维链包含以下步骤:代码审查、规划、输出、安全审查。
1. 代码审查: 这一步将结构化的代码分析引入上下文,为后续计划提供信息。
目的是防止大语言模型在不考虑整体情况的前提下对代码进行局部修改。根据我的测试,这种方法确实有效 😺。
2. 规划:这一步会制定一个高层次的设计和实施计划,供我们在生成代码之前检查。这里的"STOP"指令避免了生成不必要的、不符合我们需求的代码,从而填满上下文或导致我们来回修改。
通常这一步会提出一些相关且合适的选项。此时,你可以深入探讨计划的细节 (比如,"告诉我更多关于第 3 步的信息","我们能否重用 Y 实现","给我看一个代码片段","关于使用哪些库你有什么建议"等),以完善整个计划。
3. 输出: 一旦计划确定,我们就开始生成代码。关于变量命名的指令是因为我在长时间会话中经常遇到重新生成的代码丢失或产生幻觉变量名的问题 - 这个改变似乎解决了这个问题 🐈⬛。
将来我可能会导出旧的聊天记录并进行一些统计分析,但目前这种方法效果不错。代码围栏 (Code fencing) 指令是因为我换用了一个无法自动推断正确语法高亮的前端 -- 这种做法是正确的 😺。
除了模板本身他还非常详细的解释了自己这么写的原因和结构。
另外里面还有 Claude Sonnet 3.5 的系统提示和 Artifacts 功能的系统提示。
一个学习引导式思维链提示方式的一个好方法。
👇下面是关于提示词的解释:
在解释过程中,我会用 🐈⬛ 标记那些可能有争议的"迷信"做法,用 😺 标记我比较有把握的内容。
这个提示采用了[引导式思维链 (Guided Chain-of-Thought)😺的方法。它告诉 Claude ( 一种大语言模型 (LLM)) 需要执行的步骤及其顺序。我将其作为系统提示,也就是模型接收的第一组指令。
使用 XML 标签来分隔步骤的灵感来自 😺Anthropic 公司的元提示 (MetaPrompt)(小贴士:你可以把那个提示粘贴给 Claude,让它解释一下指令和示例)。
我们知道 Claude 😺由于其训练方式,对 XML 标签反应特别强烈。正因如此,我倾向于在会话结束时或单独处理 HTML 相关内容 🐈⬛。
这个引导式思维链包含以下步骤:代码审查、规划、输出、安全审查。
1. 代码审查: 这一步将结构化的代码分析引入上下文,为后续计划提供信息。
目的是防止大语言模型在不考虑整体情况的前提下对代码进行局部修改。根据我的测试,这种方法确实有效 😺。
2. 规划:这一步会制定一个高层次的设计和实施计划,供我们在生成代码之前检查。这里的"STOP"指令避免了生成不必要的、不符合我们需求的代码,从而填满上下文或导致我们来回修改。
通常这一步会提出一些相关且合适的选项。此时,你可以深入探讨计划的细节 (比如,"告诉我更多关于第 3 步的信息","我们能否重用 Y 实现","给我看一个代码片段","关于使用哪些库你有什么建议"等),以完善整个计划。
3. 输出: 一旦计划确定,我们就开始生成代码。关于变量命名的指令是因为我在长时间会话中经常遇到重新生成的代码丢失或产生幻觉变量名的问题 - 这个改变似乎解决了这个问题 🐈⬛。
将来我可能会导出旧的聊天记录并进行一些统计分析,但目前这种方法效果不错。代码围栏 (Code fencing) 指令是因为我换用了一个无法自动推断正确语法高亮的前端 -- 这种做法是正确的 😺。