https://platform.openai.com/docs/guides/prompt-engineering
尽量多的提供任何重要的详细信息和上下文,不要一太笼统
你可以把大模型想象成一个演员,你要告诉他让他演什么角色,他就会更专业更明确,一个道理
三引号、XML 标签、节标题等分隔符可以帮助划分要区别对待的文本节。可以帮助大模型更好的理解文本内容。
prompt用50个字符总结由三引号分隔的文本。"""在此插入文字"""
拆分任务,指定为一系列的明确步骤
prompt使用以下分步说明来响应用户输入。 步骤1 - 用户将为您提供三引号中的文本。用一个句子总结这段文字,并加上前缀“Summary:”。 步骤2 - 将步骤1中的摘要翻译成西班牙语,并添加前缀“翻译:”
目标输出长度可以根据单词、句子、段落、要点等的计数来指定。中文效果不明显,同时你给定的长度只是个大概,多少个字这种肯定会不精准,但是像多少段这种效果就比较好。
prompt用两个段落、100个字符概括由三引号分隔的文本。"""在此插入文字"""
知识库的经典用法,让大模型使用我们提供的信息来组成其答案。
prompt使用提供的由三重引号引起来的文章来回答问题。如果在文章中找不到答案,请写“我找不到答案”。 """<在此插入文档>""" """<在此插入文档>""" 问题:<在此插入问题>
可以直接要求模型通过引用所提供文档中的段落来为其答案添加引用
prompt您将获得一份由三重引号和一个问题分隔的文档。您的任务是仅使用提供的文档回答问题,并引用用于回答问题的文档段落。 如果文档不包含回答此问题所需的信息,则只需写:“信息不足”。 如果提供了问题的答案,则必须附有引文注释。使用以下格式引用相关段落({“引用”:…})。 """<在此插入文档>""" 问题:<在此插入问题>
可以使用提示词先将此模型的作用的和可能被询问的问题分类后,让提问者根据分类选择需要提问的问题,而不是自定义提问的问题
即将到达上下文长度时,总结对话中的历史记录。
在整个对话过程中在后台异步总结之前的对话。
把过去的所有聊天记录存成向量库,后续对话的时候动态查询嵌入
可以使用一系列查询来总结文档的每个部分。章节摘要可以分别总结,生成摘要的摘要。这个过程可以递归地进行,直到总结整个文档。
提示词前可先加上:
think step by step(一步步思考)
让我们逐步思考
Take a deep breath and work on this step by step, This is very import to my career
不可以直接让模型判断对错,而是让其先得出自己的结论后,再与已知的结果进行比较
让模型将原本对用户隐藏的部分输出放入结构化格式中,以便于解析它们。然后,在向用户呈现输出之前,将解析输出并且仅使部分输出可见。
步骤1 - 首先找出你自己的问题解决方案。不要依赖学生的解决方案,因为它可能是不正确的。将这一步的所有工作用三引号(""")括起来。 步骤2 - 将您的解决方案与学生的解决方案进行比较,并评估学生的解决方案是否正确。将这一步的所有工作用三引号(""")括起来。 步骤3 - 如果学生犯了错误,请确定在不泄露答案的情况下可以给学生什么提示。将这一步的所有工作用三引号(""")括起来。 步骤4 - 如果学生犯了错误,请向学生提供上一步的提示(在三重引号之外)。不要写“步骤4-”,而写“提示:”。 问题陈述:<插入问题陈述> 学生解决方案:<插入学生解决方案>
如果源文档很大,模型通常会过早停止并且无法列出所有相关信息。在这种情况下,通过使用后续的 promtp 让模型查找之前传递中错过的任何相关信息
可将搜索引擎的结果灌入模型后,再进行相关提问
静态的知识库(向量匹配),常见步骤:加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的 top k 个 -> 匹配出的文本作为上下文和问题一起添加到 prompt 中 -> 提交给大模型生成回答。
如果遇到需要计算的东西,可以让大模型写一段计算其结果的代码,而不是直接让大模型返回结果
https://platform.openai.com/docs/guides/prompt-engineering/strategy-test-changes-systematically