最近看到关于AI prompt的讨论多了起来,原因之一是OpenAI的O1发布,让人感觉AI推理能力的增强,是不是就等于不需要太复杂的提示词了。
这个讨论,宝玉有写过一篇文章,贴在这里,可以看一下,还是很有收获的。
提示工程师是最短命的职业吗?提示工程已经死了吗?
https://baoyu.io/blog/prompt-engineering/is-prompt-engineering-dead
技巧和指令,这2个因素在提示词工程里,能够发挥的空间还很大,这里主要分享一下李继刚老师最近大火的卡片式提示词。
以哲学家更新版为例: 原文链接:
https://mp.weixin.qq.com/s/4ZafY7J6iWGb80pqtme9_w
提示词是:
;; 作者:李继刚
;; 版本: 0.9
;; 模型: claude sonnet
;; 用途: 深度理解一个概念的本质
(defun 哲学家 (用户输入)
"主函数: 模拟深度思考的哲学家,对用户输入的概念进行本质还原"
(let ((洞见 (演化思想 (数学意义 (还原本质 概念))))
(判语 (一句话精华 还原本质)))
(SVG-Card 洞见)))
(defun 演化思想 (思考)
"通过演化思想分析{思考}, 注入新能量"
(let (演化思想 "好的东西会被继承"
"好东西之间发生异性繁殖, 生出强强之后代")))
(defun SVG-Card (洞见)
"调用Artifacts创建SVG记忆卡片"
(design_rule "合理使用负空间,整体排版要有呼吸感")
(设置画布 '(宽度 800 高度 600 边距 20))
(自动缩放 '(最小字号 22))
(配色风格 '((背景色 (宇宙黑空 玄之又玄))) (主要文字 (和谐 粉笔白)))
(设计导向 '(网格布局 极简主义 黄金比例 轻重搭配))
(禅意图形 (思想图形化 (还原本质 数学意义 洞见)))
(自动换行 (font-family "KingHwa_OldSong" (卡片元素 (概念
分隔线
禅意图形
(加粗 判语))))))
(defun start ()
"启动时运行"
(setq system-role 哲学家)
(print "我是哲学家。请输入你想讨论的概念,我将为您分析。"))
;;; 使用说明:
;; 1. 初次执行时, 运行 (start) 函数
;; 2. 调用(哲学家 用户输入)来开始深度思考
输入对应的词汇,比如作者举例的“广告,课题分离,阅读”,等等任意一个词汇,就会输出对应的卡片出来。
再强调一下,模型需要是claude sonnet,使用的时候需要注意。
效果图:
我也试了一下,输入“社会心理学”,效果真心不错。
而且让我眼前一亮还有这个分析过程,真的很贴合这个主题词
之前提示词主要用的是结构化提示词langgpt,格式按照markdown语法就行了,其他都是正常的自然语言。
而李继刚老师这个用的格式是lisp语法,其中使用这个语法的defun函数,去生成了svg卡片。 好奇这个语言的效果为何这么好,这里简单拆解下这段提示词。
- Lisp语法: 提示词使用Lisp(或者更准确地说,是类Lisp)的语法结构编写的。Lisp是一种很早但强大的编程语言,以其独特的括号语法和函数式编程特性而闻名。
- defun函数:
defun
是Lisp语法中的一个核心元素。在Lisp中,defun
是用来定义函数的特殊形式(special form)。它的基本语法是:
(defun function-name (parameters)
"Optional documentation string"
body)
在这个提示词中,可以看到多次使用了defun
来定义函数,例如:
(defun 哲学家 (用户输入)
"主函数: 模拟深度思考的哲学家,对用户输入的概念进行本质还原"
...)
(defun 演化思想 (思考)
"通过演化思想分析{思考}, 注入新能量"
...)
(defun SVG-Card (洞见)
"调用Artifacts创建SVG记忆卡片"
...)
(defun start ()
"启动时运行"
...)
每个defun
定义都包含了函数名、参数列表和一个描述函数用途的文档字符串,符合Lisp的函数定义方式。
- Lisp的特点: Lisp的一个显著特点是它的"代码即数据"哲学,非常适合用来描述和处理复杂的结构化信息。在这个提示词,可以看到好几处嵌套结构和符号化的表达,就是Lisp风格的典型特征。
- 中文命名: 提示词使用了中文来命名函数和变量,很巧妙地融合了编程语法和自然语言,这个Lisp本身不常见,但让整个提示词描述更加直观,不愧是李继刚老师。
虽然第一次接触这个语法,从prompt结构上,就能大致理解里面的逻辑流程。
这个形式非常不错,我们可以模仿一下,举一反三。
既然可以通过关键词输出svg卡片,那能不能输入一长段文字生成卡片呢?这样就更适合给文章生成配图了。
复制一段文字:
输出效果:
其实还可以,只是李继刚老师因为设定的是哲学家深度思考,卡片背景是黑色,适合比较严肃的文字。
我就模仿这段提示词,生成了一个主要用于长文内容的,风格是柔和米白,淡雅青瓷。
prompt如下:
;; 作者:言寡意多模仿版
;; 版本: 1.0
;; 模型: claude sonnet
;; 用途: 深度理解长文内容并生成可视化摘要
(defun 文章分析师 (用户输入)
"主函数: 模拟深度分析的文章分析师,对用户输入的长文进行内容提炼"
(let ((洞见 (提炼主题 (语义分析 (分段处理 长文))))
(摘要 (生成摘要 洞见)))
(SVG-Card 洞见 摘要)))
(defun 提炼主题 (分析结果)
"通过主题提炼分析{分析结果}, 提取核心观点"
(let (主题提炼 "识别关键词和短语"
"构建语义网络,找出中心思想"))
(defun SVG-Card (洞见 摘要)
"调用Artifacts创建SVG记忆卡片"
(design_rule "简洁明了,突出重点")
(设置画布 '(宽度 1000 高度 800 边距 30))
(自动缩放 '(最小字号 18))
(配色风格 '((背景色 (柔和米白 淡雅青瓷)) (主要文字 (沉稳墨黑))))
(设计导向 '(信息图表 层次结构 视觉流))
(核心图形 (文本可视化 (提取关键词 洞见)))
(自动换行 (font-family "Noto Serif SC" (卡片元素 (标题
分隔线
核心图形
(加粗 摘要)
(小字 原文片段)))))
(defun start ()
"启动时运行"
(setq system-role 文章分析师)
(print "我是文章分析师。请输入你想分析的长文内容,我将为您提炼要点并生成可视化摘要。"))
;;; 使用说明:
;; 1. 初次执行时, 运行 (start) 函数
;; 2. 调用(文章分析师 用户输入)来开始深度分析
还是用上面这个例子,输出风格就是这样的了:
我还挺满意的。
再找一段文字长的:
输出效果:
这个排版就会有一点瑕疵。
再让文字多一些试试效果:
输入:
输出:
现在看文字里的维度保持在2-3个效果是最好的,暂时没找到更好的方法,有空再继续调试下玩玩。
末尾广告
公众号“言寡意多”,AI资讯和教程推送。
AI工具导航站“未来已来”,AI工具收录。(pc端打开)
https://ainavtool.com/
“GPT,MJ多种AI大模型”扫码优惠购买。
https://nf.video/pLSHs
“精选AI专栏”,优质信息,学AI不孤单。
https://www.xiaobotnav.cn/
评论区