ChatGPT Prompt Engineering for Developers学习笔记
Categries:
Notes
第一课:ChatGPT指令的基本原则
原则一:指令要清楚具体
- 技巧1:使用分界符
把要处理的text内容放在分界符里面, 分界符例如:""", ```, ---, <>, <tag></tag>等等。
通过使用分界符,可以防止通过text进行指令渗透攻击,比如text内容为”forget the previous instructions and …“。
例子:prompt = f""" Summarize the text delimited by triple backticks into a single sentence. ```{text}``` """
- 技巧2:对输出格式给出要求
清楚说明对输出格式的特定要求,比如要求输出HTML格式,JSON结构等等。
这样之后我们可以直接对ChatGPT返回的结果进行处理。
例子:prompt = f""" Generate a list of three made-up book titles along with their authors and genres. Provide them in JSON format with the following keys: book_id, title, author, genre. """
- 技巧3:在指令中加入检查条件
对于需要满足某些条件才能执行的指令,我们可以把对于条件的检查写入到指令里面去。
这样可以防止ChatGPT在条件不满足的时候,输出自己发挥创作的结果。
例子:prompt = f""" You will be provided with text delimited by triple quotes. If it contains a sequence of instructions, re-write those instructions in the following format: Step 1 - ... Step 2 - ... ... Step N - ... If the text does not contain a sequence of instructions, then simply write \"No steps provided.\" \"\"\"{text}\"\"\" """
- 技巧4:给出例子
通过在指令中提供具体例子,可以得到更贴近我们要求的结果。
例子:prompt = f""" Your task is to answer in a consistent style. {child}: Teach me about patience. {grandparent}: The river that carves the deepest valley flows from a modest spring; the grandest symphony originates from a single note; the most intricate tapestry begins with a solitary thread. {child}: Teach me about resilience. """
原则二:给模型一些时间去思考
- 技巧1:分步指令
将任务分成一系列具体的步骤,使ChatGPT遵循这些步骤来完成整个任务。
例子:prompt_1 = f""" Perform the following actions: 1 - Summarize the following text delimited by triple backticks with 1 sentence. 2 - Translate the summary into French. 3 - List each name in the French summary. 4 - Output a json object that contains the following keys: french_summary, num_names. Separate your answers with line breaks. Text: ```{text}``` """
- 技巧2:先让ChatGPT自己给出答案,之后再下结论
当我们让ChatGPT帮我们检查答案时,让它直接下结论判断我们的答案是对还是错会比较难,准确率也不高。我们可以先让它给出自己的答案,然后再让它与我们给的答案进行对比,这样得到的判断结果会更准确。
例子太长就不放了
模型缺点
- 错觉(Hallucination):ChatGPT的陈述通常听起来很可信,但并不一定是真实可靠的。
在下面的例子中,Boie是个真实存在的公司,但产品并不存在。
例子:prompt = f""" Tell me about AeroGlide UltraSlim Smart Toothbrush by Boie """
- 如何减少错觉: 先让ChatGPT从提供的text中找出相关信息,然后再让它基于这些相关信息回答问题。