System Prompt最佳实践:system prompt(系统提示)指的是模型在生成文本或响应之前所接收的初始输入或指令,这个提示对于模型的运作至关重要
编写清晰的说明
- 为什么需要向模型输出清晰的说明?
模型无法读懂你的想法,如果输出内容太长,可要求模型简短回复。如果输出内容太简单,可要求模型进行专家级写作。如果你不喜欢输出的格式,请向模型展示你希望看到的格式。模型越少猜测你的需求,你越有可能得到满意的结果。
在请求中包含更多细节,可以获得更相关的回答
为了获得高度相关的输出,请保证在输入请求中提供所有重要细节和背景。
| 一般的请求 | 更好的请求 |
|---|---|
| 如何在Excel中增加数字? | 我如何在Excel表对一行数字求和?我想自动为整张表的每一行进行求和,并将所有总计放在名为”总数”的最右列中。 |
| 工作汇报总结 | 将2023年工作记录总结为500字以内的段落。以序列形式列出每个月的工作亮点,并做出2023年全年工作总结。 |
在请求中要求模型扮演一个角色,可以获得更准确的输出
在 API 请求的’messages’ 字段中增加指定模型在回复中使用的角色。
在请求中使用分隔符来明确指出输入的不同部分
例如使用三重引号/XML标签/章节标题等定界符可以帮助区分需要不同处理的文本部分。
明确完成任务所需的步骤
任务建议明确一系列步骤。明确写出这些步骤可以使模型更容易遵循并获得更好的输出。
向模型提供输出示例
向模型提供一般指导的示例描述,通常比展示任务的所有排列让模型的输出更加高效。例如,如果你打算让模型复制一种难以明确描述的风格,来回应用户查询。这被称为”few-shot”提示。
指定期望模型输出的长度
你可以要求模型生成特定目标长度的输出。目标输出长度可以用文数、句子数、段落数、项目符号等来指定。但请注意,指示模型生成特定数量的文字并不具有高精度。模型更擅长生成特定数量的段落或项目符号的输出。
提供参考文本
指导模型使用参考文本来回答问题
如果您可以提供一个包含与当前查询相关的可信信息的模型,那么就可以指导模型使用所提供的信息来回答问题
拆分复杂的任务
通过分类来识别用户查询相关的指令
对于需要大量独立指令集来处理不同情况的任务来说,对查询类型进行分类,并使用该分类来明确需要哪些指令可能会帮助输出。
对于轮次较长的对话应用程序,总结或过滤之前的对话
由于模型有固定的上下文长度显示,所以用户与模型助手之间的对话不能无限期地继续。针对这个问题,一种解决方案是总结对话中的前几个回合。一旦输入的大小达到预定的阈值,就会触发一个查询来总结先前的对话部分,先前对话的摘要同样可以作为系统消息的一部分包含在内。或者,整个对话过程中的先前对话可以被异步总结。
分块概括长文档,并递归构建完整摘要
要总结一本书的内容,我们可以使用一系列的查询来总结文档的每个章节。部分摘要可以汇总并总结,产生摘要的摘要。这个过程可以递归进行,直到整本书都被总结完毕。如果需要使用前面的章节来理解后面的部分,那么可以在总结书中给定点的内容时,包括对给定点之前的章节的摘要。