大家好,我是大飞,一名17年的IT老兵,陪你一起畅游AI。
书接上回,我们继续分享一些关于提示词在实际应用中的建议。
提供参考文本,让AI有的放矢
向AI模型提供一段文本或参考文档,可以有效降低AI胡编乱造的概率。尤其是面对专业话题或需要引用资料时,这就好比给AI出了一道“阅读理解”题,让它基于已有的内容进行回答,而不是天马行空地瞎编。
举个栗子:
####反面示例####
请告诉我李白的女朋友是谁?
####正面示例####
使用提供的由三重引号引起来的文本内容来回答问题。如果在文本内容中找不到答案,请写"我找不到答案"。
李白(701年-762年)([1])(:2-3),字太白,号称“诗仙”([2])(:12),自号“青莲居士”,绵州彰明县人([1])(:58),唐代诗人兼官员。有关李白的家世存在争议,根据不同学者的考证和推论,有“蜀地汉人”、“西域汉人”及“西域外族”等说。李白在蜀中长大,二十四岁开始出蜀漫游各地,力图获得官员的举荐而入仕【此处省略内容......】李白是最知名的中国诗人,对后世有巨大影响,与杜甫一起自九世纪初就被认定是盛唐最伟大的诗人,深受历代评论家赞赏,驰誉中国域外,在文学史上地位崇高。
问题:请告诉我李白的女朋友是谁?
让AI引用参考文本回答,增强可信度
如果已经提供了相关文本,可以直接要求AI通过引用文本中的段落来回答问题。这不仅能提高回答的准确性,还能增加回答的可验证性。
比如,你问杜甫有多少首诗歌被保留下来了。如果直接提问,AI可能会给出一个大概的数字。但如果提供一段关于杜甫的介绍,AI就能引用具体的段落来回答,这样更有说服力。
####反面示例####
请告诉我杜甫有多少首诗歌被保留下来了?
####正面示例####
你将获得一份由三重引号和一个问题分隔的文档。你的任务是仅使用提供的文档回答问题,并引用用于回答问题的文档段落。如果文档不包含回答此问题所需的信息,则只需写:“信息不足”。如果提供了问题的答案,则必须附有引文注释。使用以下格式引用相关段落({“引用”:…})。
杜甫(712年2月12日-770年),字子美,自号少陵野老,谥号杜陵野客、杜陵布衣,唐朝现实主义诗人,【此处省略内容......】虽然杜甫是个现实主义诗人,但他也有狂放不羁的一面,从其名作《饮中八仙歌》不难看出杜甫的豪气干云。
问题:请告诉我杜甫有多少首诗歌被保留下来了?
化繁为简,拆分任务,让AI轻松应对
面对复杂的任务,人类往往会因为步骤繁琐而容易出错,甚至无从下手。我们通常的做法是将复杂任务拆分成多个子任务,逐一解决。使用AI模型也是如此。
比如,你让AI帮你制定一个健身计划,直接给出一个完整的计划可能很难。但如果把任务拆分成几个部分,比如先确定锻炼频率,再考虑健康问题,最后安排具体的训练动作,AI就能更容易地完成任务。
使用意图分类,精准定位问题
在处理不同类型的查询时,可以先对任务进行分类,然后为每种类型设计具体的处理步骤。比如在客户服务中,根据用户问题的类别提供更有针对性的解决方案。
比如,用户问“我的网络断开了怎么办”,你可以先判断这个问题属于技术支持类,然后按照技术支持的流程来解答,这样就能更精准地解决问题。
####反面示例####
我的网络断开了怎么办?
####正面示例####
我们会向您提供客户服务查询。将每个查询分类为主要类别和次要类别。以 markdown 格式提供你的输出,包含主要和次要两个关键字。
主要类别:计费,技术支持,账户管理,或一般咨询。
计费次要类别:
退订或升级
-添加付款方式
-收费解释
-争议收费
技术支持次要类别:
-故障排除
-设备兼容性软件更新
账户管理次要类别:
-密码重置
-更新个人信息
-关闭账户
-账户安全
一般咨询次要类别:
-产品信息
-价格
-反馈
-要求与人对话
用户问题:我的网络断开了怎么办?
基于客户查询的分类,可以向大模型提供一组更具体的指令来处理下一步。例如,假设客户需要帮助"故障排除"。
####反面示例####
那我接下来怎么办?(由于上一步不够分类清楚,这里问题也会模糊)
####正面示例####
你将得到需要在技术支持环境中进行故障排除的客户服务查询。通过以下方式帮助用户:
-让他们检查到/从路由器的所有电缆是否已连接。注意,电缆随着时间的推移会常常松动。
如果所有电缆都已连接并且问题仍然存在,询问他们正在使用哪种路由器模型
现在你将建议他们如何重新启动他们的设备:
--如果型号是MTD-327J,建议他们按下红色按钮并保持5秒钟,然后等待5分钟后再测试连接。
--如果型号是MTD-327S,建议他们拔掉并重新插入,然后等待5分钟后再测试连接。
-如果客户在重启设备并等待5分钟后的问题仍然存在,通过输出{"IT support requested"}将他们连接到IT支持。
-如果用户开始提问与此主题无关的问题,那么请确认他们是否希望结束当前关于故障排除的聊天,并根据以下方案对他们的请求进行分类:
<插入上述主/次分类方案>
用户问题:我需要"故障排除"的帮助指导
这样的话我们得到有效的回答了。
对于长对话应用,总结或过滤之前的对话
由于AI模型存在上下文长度限制,长对话可能会导致信息丢失。为了解决这个问题,可以在对话达到一定长度后,对之前的对话进行总结,并将总结内容作为后续对话的背景信息。
比如,你和AI进行了一段关于健身计划的长对话,AI可以在对话进行到一定程度时,总结之前的讨论内容,然后再继续讨论后续的问题,这样就能确保信息的连贯性。
###反面示例####
健忘的健身教练
小明:我想制定一个健身计划,我是初学者,想增肌。
A1:好的!让我们从基础开始。你每周能锻炼几天?
小明:大概3-4天吧。
AI:很好!你有任何健康问题需要考虑吗?
小明:我右膝有点旧伤。
A1:了解了,我会避开加重膝盖负担的动作。
[100条消息后..]
小明:我应该怎么安排周一的训练?
A1:让我们设计一个适合初学者的计划。等等,你是想增肌还是减脂呢?
小明:我放弃了...这AI比金鱼记性还差!
####正面示例####
超级记忆健身教练
小明:我想制定一个健身计划,我是初学者,想增肌。
A1:好的!让我们从基础开始。你每周能锻炼几天?
小明:大概3-4天吧。
A:很好!你有任何健康问题需要考虑吗?
小明:我右膝有点旧伤。
A1:了解了,我会避开加重膝盖负担的动作。
[100条消息后..]
A1:[总结模式]根据我们之前的讨论,你是一位初学者,目标是增肌,每周可锻炼3-4天,有右膝旧伤需要注意。我们已经制定了基础训练动作和强度,现在继续讨论饮食计划。[总结模式结束]
小明:我应该怎么安排周一的训练?
AI:根据我们之前讨论的增肌目标和你的膝盖情况,周一可以安排上肢训练:
1. 俯卧撑 3组x12次
2. 哑铃卧推 3组x10次
3. 引体向上(辅助式)3组x8次
这样既能达到增肌效果,又不会给你的膝盖带来负担。
分段总结长文档,构建完整总结
当需要总结超长文本时,可以采用分段总结的方法。先将文本分为多个部分,分别生成摘要,然后将这些摘要合并,再次生成总摘要。这种方法可以有效应对上下文长度限制,确保总结的准确性和连贯性。
比如,你有一本关于人工智能历史的书,想要一个简短的摘要。你可以先将书分为章节,为每一章生成一个摘要,然后再将这些摘要合并,生成整本书的总摘要。
给模型时间“思考”,逐步解决问题
一步一步思考”是一种非常有效的策略。比如,面对复杂的计算题,如果直接要求给出答案,可能会让人感到无从下手。但如果允许逐步思考,问题就会变得简单许多。
比如,你问AI一个复杂的数学问题,先让AI分步骤思考,再给出最终答案,这样不仅能提高答案的准确性,还能让你更容易理解解题过程。
学会找“帮手”,借助外部工具提升AI能力
比如你问大模型一个复杂的数学题,你让他判断对或者不对,你发现结果很随机,一会儿对、一会儿不对,但是如果你先让他自己做一遍,再去判断对与不对,结果就会准非常多了。
####反面示例####
问题描述:我正在建造一个太阳能发电装置,我需要帮助计算财务状况。
- 土地费用为每平方英尺100美元
- 我可以以每平方英尺250美元的价格购买太阳能板
- 我已经商定了一个每年固定费用为10万美元的维护合同,以及每平方英尺额外的10美元
第一年运营的总成本是多少,作为面积(平方英尺)的函数来表示。
学生的解答:设x为装置的面积(平方英尺)。
1.土地费用:100x
2.太阳能板费用:250x
3.维护费用:100,000+100x
总成本:100x+250x+100,000+100x=450x+100.000
请判断学生的解答是否正确。
####正面示例####
**首先自己解决这个问题,然后将你的解答与学生的解答进行比较,评估学生的解答是否正确。在你自己解决这个问题之前,不要判断学生的解答是否正确。**
问题描述:我正在建造一个太阳能发电装置,我需要帮助计算财务状况。
- 土地费用为每平方英尺100美元
- 我可以以每平方英尺250美元的价格购买太阳能板中
- 我已经商定了一个每年固定费用为10万美元的维护合同,以及每平方英尺额外的10美元
第一年运营的总成本是多少,作为面积(平方英尺)的函数来表示。
学生的解答:设x为装置的面积(平方英尺)
1.土地费用:100x
2.太阳能板费用:250x
3.维护费用:100,000+100x
总成本:100x+250x+100,000+100x=450x+100,000
请判断学生的解答是否正确,
这个技巧随着模型的进步,未来会越来越弱化,因为新的模型相当于这个这个技巧内嵌到了模型原生的能力,不再依赖用户显示地说明。
检查模型是否遗漏了关键信息
当我们用大模型提取特定问题的相关信息时,模型在输出后得判断是继续找还是停止。要是文档很长,模型很容易提前停下,错过不少关键内容。这种时候,让模型在后续查询里找找之前可能漏掉的信息,往往能找到更全面的结果。
比如,你想从一篇长文档里找出“人工智能历史上有哪些重大转变事件”,你得提醒模型,别只找零散的句子,得找那些有完整上下文、能独立成段的内容,这样读者才能看明白。
举个栗子:
####正面示例####
你将获得一个用三引号分隔的文档。你的任务是选择与以下问题相关的摘录:"人工智能历史上发生过哪些重大的经典转变事件。"
确保摘录包含所有相关的上下文,以便解释它们-换句话说,不要提取缺少重要上下文的小片段。尽可能详尽地列出所有相关摘录,不要过早停止。如果你认为可能还有更多相关内容,请明确指出"我可能遗漏了一些相关摘录"。
"""
人工智能的历史可以追溯到古代,人们一直梦想创造能思考的机器。20世纪50年代,艾伦·图灵提出了著名的图灵测试,这被认为是人工智能领域的开端。1956年的达特茅斯会议正式确立了"人工智能"这一术语,由约翰·麦卡锡提出。
在60年代到70年代初,人工智能经历了第一次黄金时期,研究人员对AI的未来充满乐观。然而,到了70年代中期,由于计算能力有限和复杂问题的挑战,AI研究陷入了第一次"AI寒冬"
80年代,专家系统的出现让AI再次受到关注,但到了未期,又一次陷入低谷。90年代,机器学习方法开始兴起,特别是贝叶斯网络和决策树算法。
21世纪初,随着互联网的发展和大数据时代的到来,深度学习技术取得了突破性进展。2012年,Geoffrey Hinton团队在lmageNet竞赛中使用深度卷积神经网络取得了显著成功,标志着深度学习时代的开始。
近年来,强化学习的进步让AI在游戏领域取得了惊人成就,如AlphaGo在2016年击败了围棋世界冠军李世石。大型语言型如GPT系列的出现,则代表了自然语言处理领域的重大突破。
"""
以如下的格式提供输出:
[
{"摘录":"…"},
...
{"摘录":"…"}
]
学会找“帮手”,用好外部工具
AI模型虽然厉害,但也不是什么都能搞定。比如数学计算,或者实时查信息,AI有时候就不够用了。这时候,就得找“帮手”了。
比如,让AI联网搜一搜,就能找到最新的资料。或者让AI写代码,解决复杂的数学问题,这样就能把AI的优势发挥得更好。
像开卷考试一样检索知识
知识库的工作原理,有点像“检索增强生成”(RAG)。简单说,就像学生考试,开卷和闭卷的区别。开卷考试的时候,学生要是想不起来答案,就可以翻书找。AI也一样,要是问它“今天北京的景区有哪些热点事件”,它自己肯定不知道,因为它的数据是固定的。但如果联网搜一搜,就能找到最新的信息,然后根据这些信息来回答。现在,很多AI都能联网搜索,这就是一个很好的例子。
让AI写代码,调用外部API
AI自己算数学题,有时候不太靠谱。那怎么办呢?可以让AI写代码,然后运行代码来算。比如,用Python解释器来运行代码,算完之后,把结果再反馈给AI。今年有个很火的概念叫“模型上下文协议”(MCP)。有了MCP,AI就像被关在房间里的人,突然有了电话和网络,可以找各种信息,用各种工具,甚至控制设备来解决问题。比如,问AI“现在北京的气温是多少”,有了MCP,AI就能去查天气预报,给你一个准确的答案,而不是瞎猜。
《荀子·劝学》里说:“君子性非异也,善假于物也”。意思是,君子和普通人没啥区别,就是更会利用外部资源。MCP就是AI的“外挂”,让AI的能力大增,就像插上了翅膀。
写在最后
说了这么多技巧,你是不是已经迫不及待想试试了?不过,还是要提醒你,这些技巧的核心,都是为了帮助我们更清晰地表达想法。而要表达得好,首先得想清楚。所以,最重要的还是我们自己的思考能力,这是值得一辈子去培养的。希望这些对你有帮助,有问题也可以在评论区一起讨论交流。