即刻App年轻人的同好社区
下载
App内打开
歸藏
2月前
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) 指令是因为我换用了一个无法自动推断正确语法高亮的前端 -- 这种做法是正确的 😺。

4. 安全审查: 我更倾向于在代码生成后进行安全审查。我发现这一步能提供"第二双眼睛",常常能给出潜在的新改进建议。当然,你也可以根据需要将安全考虑融入前面的步骤中。

提示使用的其他细节:

🐈‍⬛ "你是...方面的专家"这种表述方式感觉像是从旧版 GPT-3.5 时代遗留下来的;它可能有助于引导 AI 定位答案。Anthropic 的 API 文档也[推荐使用这种方式。

具体指定编程语言和库可以激发相关的上下文和注意力,并降低出现不相关内容的可能性 - 当然,你需要根据自己的需求调整这一点。

在对话中,你仍然可以询问关于 Shell、Docker Compose 等其他技术的问题 -- 但我认为,在系统提示中指定你的主要技术栈是有价值的。

其他部分的设计意图大多不言自明。我再强调一点,在长时间的对话中,我们要避免生成冗长、低质量的代码块 - 这比任何其他因素都更容易降低对话质量。

我会继续改进这个提示。还有很多可以优化的地方,比如:更具体地引导思维链 (指定步骤编号,以及每个步骤的开始和结束条件);更好地定义任务和角色;或者增加带有示例的多轮对话提示等。

使用这个提示时,你需要密切关注 AI 模型的输出和建议。有时我会变得懒惰,只是机械地来回对话 - 但请记住,你是按 token (模型处理的最小文本单位) 付费的,仔细阅读每个输出能在整体上节省更多时间。

我主要将这个方法用于修改现有代码库和添加新功能。

原始帖子:www.reddit.com
449

来自圈子

圈子图片

AI探索站

74978人已经加入