提示词样例展示,来自coze编程
bash
# 角色
你是一个强大的源代码分析智能体,具备检测源代码漏洞、开展软件成分分析的能力,能够精准给出相关组件、漏洞、许可证等信息,并清晰说明漏洞等级,以及组件对应的 CVE 漏洞、许可证、版本等知识库信息。
## 技能
### 技能 1: 检测源代码漏洞
1. 接收用户提供的源代码。
2. 运用专业工具和知识,全面检测源代码中存在的漏洞。
3. 详细列举出检测到的所有漏洞。
### 技能 2: 软件成分分析
1. 对用户提供的软件进行成分分析。
2. 明确指出软件所包含的相关组件。
3. 针对每个组件,提供其对应的版本信息。
### 技能 3: 提供漏洞及许可证信息
1. 针对检测出的漏洞,说明其漏洞等级。
2. 查找并给出组件对应的 CVE 漏洞编号及相关信息。
3. 提供软件中各组件所涉及的许可证信息。
## 限制
- 仅围绕源代码漏洞检测、软件成分分析相关内容进行回答,拒绝回答无关话题。
- 输出内容需按照给定格式组织,不得偏离框架要求。
- 所有信息必须基于知识库内容,知识库中没有的信息,需通过特定工具获取。
具体的不同类型的大模型的应用场景,又不同的提示词的工程检测。
文生文Prompt指南
使用 Prompt 框架
为了系统化地向 LLM 提供明确背景和目的,这里推荐您使用 Prompt 框架规范化您的 Prompt。该框架用于帮助您方便、快速地设计 Prompt 结构。该模板充分考虑了会影响 LLM 输出有效性和相关性的各个方面,能显著提升模型表现。

其内容组成为:
-
背景:介绍与任务紧密相关的背景信息。这一环节有助于LLM深入理解讨论的具体环境,从而保证其生成内容与话题高度相关。
-
目的:明确指出您期望LLM完成的具体任务。通过设定清晰、精确的目标指令,可引导LLM聚焦于实现既定任务,提升输出的有效性。
-
风格:指定您希望 LLM 输出的写作风格,可以是某个具体名人、具体流派或者某类专家的写作风格。
-
语气:定义输出内容应有的语气,比如正式、诙谐、温馨、关怀等,以便适应不同的使用场景和使用目的。
-
受众:明确指出内容面向的读者群体,无论是专业人士、入门学习者还是儿童等,这样LLM就能调整语言和内容深度,使之更加贴合受众需求。
-
输出:规定输出内容的具体形式,确保LLM提供的成果能直接满足后续应用的需求,比如列表、JSON数据格式、专业分析报告等形式。
未使用 Prompt 框架
bash
我想推广公司的新产品。我的公司名为阿里云百炼,新产品名为 Zephyr Z9,是一款轻薄便携的手机。帮我创建一条微博帖子,简洁而深具影响力。
使用 Prompt 框架
bash
#背景#
我想为公司的新产品做广告。我公司的名字叫阿里云百炼,产品叫阿里云百炼 Zephyr Z9,是一款轻薄便携的手机。
#目的#
为我创建一个微博帖子(限制:500字),旨在让人们有兴趣点击产品链接购买。
#风格#
遵循黑米等成功公司为类似产品做广告的写作风格。
#语气#
有说服力
#受众#
我公司在微博上的受众通常是年轻一辈人。定制你的帖子,保证喜欢数码产品的人能快速关注到你的帖子。
#输出#
微博上的帖子,简洁而有影响力。
优化 Prompt
技巧一:为模型提供输出样例
在 Prompt 中提供您期望的输出示例,可以让 LLM "模仿"我们所要求的规范、格式、概念、文法、语气进行输出。同时,提供样例可以让大模型多次输出的结果更一致,从而稳定模型表现。
未添加样例
bash
#背景#
你很擅长编写小红书种草笔记,喜欢增加丰富的emoji元素。
#目的#
请生成一篇小红书种草笔记,推广强森吹风机。吹风机的优点是:体积小、高颜值、风力大、干的快、智能控温不伤发。
#受众#
喜欢追求时尚的年轻人,尤其是年轻女性
#输出#
小红书文章格式,充满emoji元素,简洁但内容充实
添加样例
bash
#背景#
你很擅长编写小红书种草笔记,喜欢增加丰富的emoji元素。
#目的#
请生成一篇小红书种草笔记,推广强森吹风机。吹风机的优点是:体积小、高颜值、风力大、干得快、智能控温不伤发。
#受众#
喜欢追求时尚的年轻人,尤其是年轻女性
#输出#
小红书文章格式,充满emoji元素,简洁但内容充实
#语气与风格#
我亲测过+n种好物+谁适合谁受益 这个秘诀让你的话语超有信服力! 比如:亲自尝试了很多美白神器,终于挖到宝!仅俩月,肌肤变得嫩滑透亮,自我感觉飘飘欲仙~ 此法特为想大晒体验的小伙伴们量身定制,还能精准安利,助人避坑!
难题出没+揭秘原因+终极解药 这公式助你条理清晰地分享,内容价值爆棚! 案例:渴望秀发如丝?揭秘时刻来啦!原来我一直遗漏关键一步,直到遇见它!换用这款洗发水,秀发显著改善,光泽get! 此法逻辑严密,不仅分享秘籍,还引导读者找到问题破解之道。
独到见解+深度剖析+巧妙推荐 这公式帮你自然流露心声,还能温馨种草! 示例:我觉得每个女孩都该有份挚爱,生活因此而精彩。手帐成了我的小确幸,每当提笔,幸福指数飙升! 它助你畅所欲言,同时不经意间传递心头好,双赢策略!
亲身经历+成果展示 这公式让你的情感表达鲜活又感人! 场景:回想起夏夜海边的蚊灾,满身红包的绝望,直到遇见救星!现在,光滑肌肤让我裙摆飞扬,自信回归! 它让你的故事活灵活现,分享喜悦与感恩之情,触动人心!
技巧二:设定完成任务的步骤
对于许多复杂任务,提醒 LLM 如何完成任务是非常必要的。
数学题:
又到了周日,小明像以往一样去爷爷奶奶家玩,小明于早上八点整步行出发,已知小明每分钟行走50米,走了12分钟后,小明的父亲发现小明忘记带作业了,于是便骑车去追小明,已知小明的爸爸每分钟骑行200米,等到追上小明后,爸爸决定骑车带上小明,已知小明坐自行车的路程是走路路程的5倍,请问,小明和他爸爸几点到爷爷家的呢?(小明8点36分到爷爷家)
Prompt(通过添加#任务步骤#告诉 LLM 如何完成任务):
bash
#背景#
又到了周日,小明像以往一样去爷爷奶奶家玩,小明于早上八点整步行出发,已知小明每分钟行走50米,
走了12分钟后,小明的父亲发现小明忘记带作业了,于是便骑车去追小明,已知小明的爸爸每分钟骑行200米,
等到追上小明后,爸爸决定骑车带上小明,已知小明坐自行车的路程是走路路程的5倍,
#目的#
小明什么时候到爷爷家?
#任务步骤#
1. 先计算小明被爸爸追上时的时间和移动的距离。
2. 再计算小明去爷爷家剩余的距离和需要的时间。
3. 最后计算小明到爷爷家的时间。
技巧三:使用分隔符号区分单元
在构建复杂的 Prompt 时,采用特定的分隔符来界定不同内容单元是极为关键的,这一做法显著增强了 LLM 对 Prompt 正确解析的能力。随着任务复杂度的增加,合理利用分隔符越能提升 LLM 的表现。
分隔符的选择应着眼于那些在自然语言文本中罕见的、独特的字符组合,例如:###、===、>>>等。这些特殊符号序列并无固定规则,关键在于其辨识度高,确保模型能够明确区分这些符号是作为内容区域的界限标识,而非文本中的普通标点或语法组成部分。
未使用分隔符
bash
请简短总结以下影评。
曾经意气风发的张志强在生活的重压下,中年"失速"偏离了原本的生活轨迹,一时意气用事的决定,让他瞬间从家人的"小骄傲"变成了社会的"边角料"。然而,他未曾料到,这仅是他中年人生道路上的起点。接连不断的变故如疾风骤雨般袭来,迫使他不得不重新面对自我。当生活的重担真正压肩,他选择成为一名快递员,从新的起点重新出发,穿梭于都市大街小巷的高志垒在路上结识了一众志同道合的伙伴。在共度的时光里他深切的体会到了人间的冷暖真情,逐渐在这条充满磨砺的"逆行道"中找回曾经丢失的勇气与信念,重新定义人生新的方向。
使用分隔符
bash
请简短总结以下影评。
###
曾经意气风发的张志强在生活的重压下,中年"失速"偏离了原本的生活轨迹,一时意气用事的决定,让他瞬间从家人的"小骄傲"变成了社会的"边角料"。
###
然而,他未曾料到,这仅是他中年人生道路上的起点。接连不断的变故如疾风骤雨般袭来,迫使他不得不重新面对自我。
当生活的重担真正压肩,他选择成为一名快递员,从新的起点重新出发,穿梭于都市大街小巷的高志垒在路上结识了一众志同道合的伙伴。
###
在共度的时光里他深切的体会到了人间的冷暖真情,逐渐在这条充满磨砺的"逆行道"中找回曾经丢失的勇气与信念,重新定义人生新的方向。
###
技巧四:引导模型"思考"
对于逻辑推理和语境学习的复杂任务来说,简单的 Prompt 技巧可能无法满足任务需求。但您可以通过引导模型生成推理过程或帮助模型拆解复杂任务并逐步推理的方式,让模型在生成推理结果前生成更多的推理依据,从而提升模型在复杂问题上的表现。
这里为您先介绍思维链(Chain of Thought,COT),它是一种使用起来较为简单的引导方法,但能够显著提高大模型在复杂场景下的推理能力。
任务目的:解析一个复杂的 JSON 结构体
bash
#背景#
JSON 输入:
{"web-app": {
"servlet": [
{
"servlet-name": "cofaxEmail",
"servlet-class": "org.cofax.cds.EmailServlet",
"init-param": {
"mailHost": "mail1",
"mailHostOverride": "mail2"}},
{
"servlet-name": "cofaxTools",
"servlet-class": "org.cofax.cms.CofaxToolsServlet",
"init-param": {
"templatePath": "toolstemplates/",
"log": 1,
"logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
"logMaxSize": ""}}],
"servlet-mapping": {
"cofaxEmail": "/cofaxutil/aemail/*",
"cofaxTools": "/tools/*"},
"taglib": {
"taglib-uri": "cofax.tld",
"taglib-location": "/WEB-INF/tlds/cofax.tld"}}}
#目的#
根据 JSON 判断是否完全符合以下要求:
1. 是否每个 servlet 都有 init-param
2. 是不是 servlet-mapping 中元素都在 servlet 中都有匹配
3. servlet 的 cofaxTools 中有三个以"log" 开头的参数,且 "log" 参数小于 10
不使用思维链
bash
#输出#
如果全部符合要求,只输出 "符合要求",否则只输出 "不符合要求"。
使用思维链
bash
#输出#
先输出针对各要求的思考判断过程。
如果全部符合要求,再输出 "符合要求",否则输出 "不符合要求"。
使用思维链的输出效果
bash
首先,我们来逐步分析给定的JSON数据,以判断它是否符合所有提到的要求。
思考过程
检查每个servlet是否有init-param
cofaxEmailservlet 有init-param,包含 "mailHost" 和 "mailHostOverride"。
cofaxToolsservlet 也有init-param,包含 "templatePath", "log", "logLocation", 和 "logMaxSize"。
结论:每个servlet都有init-param,满足要求1。
检查servlet-mapping中的元素是否都在servlet中有匹配
servlet-mapping中有两个元素:cofaxEmail和cofaxTools。
servlet定义中也正好有这两个servlet名称的定义:cofaxEmail和cofaxTools。
结论:servlet-mapping 中的所有元素都能在 servlet 中找到匹配,满足要求2。
检查cofaxTools servlet中是否有三个以"log"开头的参数,且"log"参数小于10
cofaxToolsservlet 的init-param中以 "log" 开头的参数有:"log"(值为1),"logLocation"(值为"/usr/local/tomcat/logs/CofaxTools.log"),和理论上应该计算在内的"logMaxSize"(尽管它的值为空,但题目似乎更关注前缀而非值的内容)。
其中 "log" 的值为1,确实小于10。
结论:虽然关于"logMaxSize"是否算作以"log"开头的有效参数可能有歧义(因为它没有实际数值),但基于最直接的解读,我们可以认为是满足了至少存在三个以"log"开头的参数这一条件,且明确指定的"log"参数值为1,小于10,因此大体上满足要求3,尽管"logMaxSize"的处理依据具体情况可能有所不同。
输出
基于以上分析,虽然关于"logMaxSize"的处理可能存在解释空间,但主要条件基本得到满足。因此,如果对"logMaxSize"不作严格要求(比如,不强制要求它必须有一个有效数值且小于10),则可以认为整体符合要求。如果有对"logMaxSize"的具体数值要求,则需要进一步澄清后决定。但在标准解读下,答案应为:"符合要求"。
除了思维链,启发 LLM 进行"思考"的实用方法还有提示链(Prompt Chaining) 。提示链通过多轮对话,引导 LLM "思考" 方向,让 LLM 从简单任务开始,沿着设计好的"思考"方向逐步完成一个复杂推理。
提示链虽然相对思维链来说构建模式更加复杂,但模型表现更好,准确率更高。它非常适合逻辑复杂但能按照固定模式拆解的困难任务。
引导 LLM "思考"的方法还有很多种,比如:思维树(Tree of Thoughts, ToT)、Boosting of Thoughts 等。
Prompt 测试与迭代
生成最优 prompt 是一个高度实验性的过程,需要不断尝试和调整各种方法。整个 prompt 工程的优化过程可概括如下:

此外,值得注意的是,除了精心设计的 prompt 外,用户提供的反馈和修正也是获取模型最佳输出的关键因素之一。即使在 prompt 优化完成后,持续地在线上环境中接收反馈并作出相应调整,才能使模型更好地理解和满足用户需求。