写在前面
跟大模型打交道,提示词就是你的指挥棒。一模一样的问题,换种问法,输出可能天差地别。这篇文章整理了我日常用得最多的几个技巧,以及一些辅助工具,更多是个人实践,不是严谨的学术总结。
两个核心原则
说到底,提示工程就两条:把要求讲得足够清楚,给模型留出思考的时间。下面具体展开。
把要求讲清楚
模型不会读心术,你让它猜,它就瞎猜。想要什么,直接说,越具体越好。觉得太长就让它简化,太短就让它展开。
几个我常用的方法:
用分隔符把不同部分划开
在提示里用 """、``` 或 < > 把文本块圈出来,模型就知道哪部分是待处理内容。
import openai
import os
openai.api_key = os.environ.get("OPENAI_API_KEY", "your-api-key")
def get_completion(prompt, model="gpt-3.5-turbo"):
messages = [{"role": "user", "content": prompt}]
response = openai.chat.completions.create(
model=model,
messages=messages,
temperature=0,
)
return response.choices[0].message.content
text = f"""
端午节,又称端阳节、龙舟节,是中国传统节日之一,每年农历五月初五举行。端午节源于中国古代,起源于楚国,最初是为了纪念爱国诗人屈原而设立的。端午节有着悠久的历史和丰富的文化内涵,在中国民间流传着许多丰富多彩的习俗和传统活动。
端午节的主要习俗之一是赛龙舟。人们会组织龙舟竞赛,以纪念屈原投江自尽、渔民划船救他的故事。龙舟竞赛是端午节最具特色和魅力的活动之一,吸引着无数人观看和参与。此外,端午节还有吃粽子、挂艾草、饮雄黄酒、穿香囊等传统习俗,每个习俗都有其独特的寓意和象征意义。
粽子是端午节必不可少的传统食品,其形状象征着包裹屈原的荷叶,内含糯米和各种馅料,味道鲜美。挂艾草则是为了驱邪避疫,保佑家人健康平安。饮雄黄酒和穿香囊也都是为了驱邪求吉,祈福平安。
端午节是中华民族传统文化的重要组成部分,也是中华民族的节日之一。随着时代的变迁,端午节的庆祝方式和形式也在不断发展和变化,但人们对于这个节日的热爱和传统习俗的传承始终如一。
"""
prompt = f"""
把用三个反引号括起来的文本总结成一句话。
```{text}```
"""
response = get_completion(prompt)
print(response)
输出:
端午节是中国传统节日之一,源于古代楚国,纪念爱国诗人屈原,有赛龙舟、吃粽子、挂艾草等丰富多彩的习俗和传统活动,体现着中华民族的传统文化和节日热爱。
要求结构化输出
比如 JSON 或 HTML,不仅格式稳,后续解析也省事。
prompt = f"""请生成包括书名、作者和类别的三本虚构的、非真实存在的中文书籍清单。
要求以 JSON 格式输出,其中包含以下键:book_id、title、author、genre。
"""
response = get_completion(prompt)
print(response)


