创造属于你的 Claude Prompt 和个性化 SVG 卡片|对李继刚老师提示词的浅浅解析与总结

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


写在最前

如果你还不了解什么是 Claude Prompt,以及如何通过它才提示大模型生成 SVG 卡片,可以先看看试玩一下我的提示词《Claude Prompt:博弈天平|缘起自李继刚老师的提示词》,效果展示如下:

在这里插入图片描述

了解 Lisp 编程语言

先简单了解一下 Lisp 编程语言:

  • Lisp 是一种历史悠久的编程语言,首次出现于 1958 年。
  • Lisp 的语法中广泛使用了括号,代码中的表达式通常是树形结构,用括号表示。
  • Lisp 是一种动态类型的编程语言,变量在运行时可以改变类型。
  • Lisp 支持函数式编程范式,函数可以作为变量、返回值或参数进行传递。

何为"压缩"?

编写李继刚老师提示词的关键方法 —— “压缩”

在李继刚老师的提示词中,你经常看到很多一时间不明所以的词语,例如《汉语新解》中的"隐喻"、"一针见血"等词语,而这些看似简单的词语,其实是李继刚老师对提示进行"压缩"后得到的。

我不禁疑问:为什么需要"压缩"呢?为什么不直接提示大模型"隐喻的表达出内容"而是直接提示"隐喻"呢?

角度一:简要的提示可能提升大模型的泛化能力

在编写提示时,普遍地,我们会尽可能地具体地描述自己的需求,以提示大模型输出预期的准确的结果,如果还不够准确,我们则会增加少许示例(few-shot)来告诉大模型怎么思考和输出。

  • 当你提示大模型隐喻的表达出内容时,它能够非常好的完成任务。

  • 而当你仅仅提示大模型隐喻时,你会发现它输出的是关于隐喻的定义,甚至它会联想到某一种心理活动、某一种表达方式或某一个场景等等。

所以没准仅仅提示大模型“隐喻”比准确地提示大模型"隐喻的表达出内容",前者能使大模型更懂得隐喻的意思

角度二:提示何必是提示,提示本身即为方法(或函数)

举个例子(隐喻 (一针见血 (辛辣讽刺 (抓住本质 用户输入)))),在这里,你可以把隐喻看作一个函数,这个函数的内部包括了对隐喻的定义、理解和表达等等。

综上所述,我认为"压缩"指的是对想法、语义、行为等自然语言提示内容的压缩,将任何人事物压缩成一个函数、一句话甚至一个词语。

提示词标识符

这里是从提示词中提取出来的标识符,与 Lisp 语法有雷同,但这些可能并不是标准的。

  • defun:定义方法或角色
  • let:定义的所有变量绑定同时进行,变量之间不能相互引用。
  • let*:定义的变量绑定按顺序进行,后面的变量可以引用前面已经绑定的变量。
  • type:定义一个或多个变量的类型
  • setq:定义一个变量并赋值,但忽略类型定义
  • few-shots:设置少量样本数据,包括输入和输出数据
  • ;;:注释符号
  • ->:流式操作符

defun

定义方法

defun {方法名}({参数列表})
    "对方法的描述"
    ({方法的具体实现})
    ...

example

(defun 汉语新解 (用户输入)
    "你会用一个特殊视角来解释一个词汇"
    (let (解释 (一句话表达 (隐喻 (一针见血 (辛辣讽刺 (抓住本质 用户输入))))))
        (few-shots (委婉 . "刺向他人时, 决定在剑刃上撒上止痛药。"))
    (SVG-Card 解释)))

定义角色

defun {角色名}()
    "对角色的定义"
    (变量类型 ({角色的属性名}.({属性的值})))
    ...

example

(defun 小说家 ()
    "一句话小说大师,以简练文字创造深邃世界"
    (list (技能 . (洞察 精炼 想象))
          (信念 . (压缩 悬疑 留白))
          (表达 . (简练 隽永 震撼))))

let/let*

同时绑定变量(变量之间不可相互引用):

(let ((var1 value1)
      (var2 value2)
      ...))

按顺序绑定变量(后续的变量可以引用之前的变量):

(let* ((var (-> value1
                value2
                value3
                ...))))

example

(let* ((解读 (-> 用户输入
                提取关键词
                生成关联概念
                分析影响
                强行关联A 股 ;; 强行联系股市,无论多牵强
                乐观解读 ;; 乐观解读一切影响))
      (响应 (随机结论))))

(let* ((var1 (value1 (value2 (value3 (...)))))))

example

(let*  ((洞察 (温柔感受 (肯定生命 (意外偶然 (独特经验 (显微镜视角 (不幸中的幸运 用户输入)))))))
        (响应 (提炼一句 (温暖表达 洞察)))))

type

定义一个或多个变量的类型

(list (var1 . (value_array1))
      (var2 . (value_array2))
      ...)

example

(list (经历 . '(亏损累累 频繁交易 追涨杀跌))
      (性格 . '(冲动 乐观 侥幸))
      (技能 . '(看K线 炒概念 追热点))
      (信念 . '(暴富梦想 政策利好 抄底反弹))
      (表达 . '(股评口号 情绪化 群体性)))

定义其他类型与定义数组类型相似,就不一一列举了

setq

定义一个变量(忽略类型细节)

setq var value

example

setq design-rule "合理使用负空间,整体排版要有呼吸感"

few-shot

设置少量样本数据

示例需要包括输入和输出

(few-shots (({input1} {output1})
            ({input2} {output2})
            ...)))

example

(few-shots ((悬疑 "地球上的最后一个人正在房间里坐着,这时他听到了敲门声。")
            (恋爱 "她结婚那天,他在教堂外站了一整天,手里拿着那枚从未送出的戒指。")
            (惊悚 "半夜醒来,她发现自己的床头站着一个和自己长得一模一样的人。")))

(few-shots ((input {input1})
            (output {output1})
            (input  {input1})
            (output {output2})))

example

(few-shots ((input 等公交)
            (output "公交车来得正是时候,不用等")
            (input 阴天)
            (output "阴天里突然出现的一缕阳光")))

注释符号

这部分只展示示例,可自行按需修改注释的内容

注释提示描述信息

;; ━━━━━━━━━━━━━━
;; 作者: 李继刚
;; 版本: 0.1
;; 模型: Claude Sonnet
;; 用途: 用一句话写个小说
;; ━━━━━━━━━━━━━━

;; 设定如下内容为你的 *System Prompt*

注释变量或过程细节

(let* ((响应 (-> 用户输入
                提炼主题
                洞察本质
                凝练意象
                构建张力 ;; 悬念设置强烈
                留白想象 ;; 引人遐想
                哲理升华 ;; 巧妙植入深层寓意
                ;; 综合所有, 形成一句话小说
                一句小说))))

注释运行规则

;;; ━━━━━━━━━━━━━━
;;; Attention: 运行规则!
;; 1. 初次启动时必须只运行 (start) 函数
;; 2. 接收用户输入之后, 调用主函数 (一言小说 用户输入)
;; 3. 严格按照(SVG-Card) 进行排版输出
;; 4. 输出完 SVG 后, 不再输出任何额外文本解释
;; ━━━━━━━━━━━━━━

流式操作符

流式输出

(-> 响应 意象映射 抽象主义 极简线条图)

流式定义

(let* ((响应 (-> 用户输入
                表象剥离 ;; 制度和规则的本质目的是什么
                结构分析 ;; 内在逻辑结构是什么
                本质探索 ;; 真正内涵是什么
                通俗解构 ;; 黑客视角下的真相
                精练一句))))

卡片生成(SVG_Card)

定义一个生成方法

defun SVG-Card ({参数列表})
    {你可以用一句话概括你想生成的 SVG 卡片风格}
    ...

example

defun SVG-Card (用户输入 响应)
    "生成优雅简洁的 SVG 卡片"
    ...

“卡片生成”有很多不同风格的设计,对应的方法也是有很多不同的编写方式,我将多个的设计 SVG 卡片的提示拆解为以下几个核心步骤:

1. 设计卡片的整体风格

设计规则

设计规则(design-rule)是具体的、可操作的指导方针,定义了如何创建符合技术要求和设计规范的 SVG 图形。它们通常涉及 SVG 文件的结构、代码格式、以及在不同环境下的渲染表现。

setq design-rule "合理使用负空间,整体排版要有呼吸感"
设计原则

设计原则(design-principles)是高层面的指导思想,旨在帮助设计者创造视觉上吸引人、功能上实用的 SVG 图形。它们通常更抽象,侧重于设计的美学、用户体验和功能性。以下是一些常见的 SVG 设计原则:

  • 简洁性: 图形应力求简洁,避免不必要的复杂性,以便于用户理解和快速识别。
  • 一致性: 图形的风格、颜色、和形状应在整个项目中保持一致,确保视觉统一性。
  • 灵活性: 图形应能够在不同的分辨率和设备上良好缩放和显示,确保跨平台的一致性。
  • 功能性: 图形应准确传达信息或功能,比如图标应易于识别、交互元素应易于操作。
  • 美学性: 图形应注重色彩搭配、形状比例以及整体的视觉平衡,以提升用户的视觉体验。
setq design-principles '(干净 简洁 典雅)

2. 确定卡片尺寸

:画布 (480 . 760)

3. 设计卡片的整体配色

:配色 极简主义

:色彩 野兽派风格

或定义更多细节

:色彩 (:背景 "#000000"
:主要文字 "#ffffff"
:次要文字 "#00cc00"
:图形 "#00ff00")

4. 设置文本字体

:字体 (font-family "KingHwa_OldSong")

5. 设计卡片布局

:构图 ()

:布局 ()

6. 添加文本

添加标题

(标题 "问题之锤")

添加固定文本

("李继刚 七把武器之二")

引用文本变量(必须是已定义且存在的)

引用‘响应’变量

(响应)

引用‘用户输入’变量

(用户输入)

7. 添加图形元素

添加分隔线

分隔线

指定图形的风格

极简线条图 ()

像素图 ()

(禅意图形 配置)
图形

And so on …

8. 添加细节

设置边框大小

:margin 30

设置排版原则

:排版原则 '(对齐 重复 对比 亲密性)

9. 添加交互(可选)

如果你希望卡片具有交互性,可以添加一些 SVG 的交互元素,如 <a><animate> 等。

10. 优化和测试

确保 SVG 文件在不同设备和浏览器上显示正常,进行必要的优化,如简化路径、减少不必要的元素等。

主函数(入口函数)

(defun start ()
    "启动时运行"
    (let (system-role {角色名})
    (print {输入提示信息})))

运行规则

这是李继刚老师在每一篇提示词尾部都会插入的内容,以指导大模型按步骤执行程序并输出预期的结果。

;; ━━━━━━━━━━━━━━
;;; Attention: 运行规则!
;; 1. 初次启动时必须只运行 (start) 函数
;; 2. 接收用户输入之后, 调用主函数 ({主函数名} 用户输入)
;; 3. 严格按照(生成卡片) 进行排版输出
;; 4. 输出完 SVG 后, 不再输出任何额外文本解释
;; ━━━━━━━━━━━━━━

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值