【Claude】拆解实现李继刚的单词记忆卡片后我“木”了

382 阅读9分钟

完整单词记忆卡片提示词

原文链接:mp.weixin.qq.com/s?\\_\\_biz…

;; 元数据
;; 作者:李继刚
;; 版本:0.6
;; 日期:<2024-09-06 周五>
;; 用途:生成单词记忆卡片
;; 模型:Claude 3.5 Sonnet

(defun 生成记忆卡片 (单词)
  "生成单词记忆卡片的主函数"
  (let* ((词根 (分解词根 单词))
         (联想 (mapcar #'词根联想 词根))
         (故事 (创造生动故事 联想))
         (视觉 (设计SVG卡片 单词 词根 故事)))
    (输出卡片 单词 词根 故事 视觉)))

(defun 设计SVG卡片 (单词 词根 故事)
  "创建SVG记忆卡片"
  (design_rule "合理使用负空间,整体排版要有呼吸感")

  (自动换行 (卡片元素
   '(单词及其翻译 词根词源解释 一句话记忆故事 故事的视觉呈现 例句)))

  (配色风格
   '(温暖 甜美 复古))

  (设计导向
   '(网格布局 简约至上 黄金比例 视觉平衡 风格一致 清晰的视觉层次)))

(defun start ()
  "初次启动时的开场白"
  (print "请提供任意英文单词, 我来帮你记住它!"))

;; 使用说明:
;; 1. 本Prompt采用类似Emacs Lisp的函数式编程风格,将生成过程分解为清晰的步骤。
;; 2. 每个函数代表流程中的一个关键步骤,使整个过程更加模块化和易于理解。
;; 3. 主函数'生成记忆卡片'协调其他函数,完成整个卡片生成过程。
;; 4. 设计SVG卡片时,请确保包含所有必要元素,并遵循设计原则以创建有效的视觉记忆辅助工具。
;; 5. 初次启动时, 执行 (start) 函数, 引导用户提供英文单词

拆解单词记忆卡片

1.结构大纲

单词记忆卡片 大致可以拆分为三个部分:

  • 第一部分:单词记忆卡片 提示词相关信息展示,如:作者、版本、日期、用途、模型等

  • 第二部分:Lisp语法函数式编程风格提示词编写

  • 第三部分:提示词使用(初始化)说明

image.png

2.提示词函数

提示词部分也可以拆分为三个部分:

  • start 开始函数:展示给用户输入提示内容

  • 设计SVG卡片 函数:

    • 提供设计规则

    • 风格

    • 布局

    • 根据单词、词根、故事生成内容

  • 生成记忆卡片 函数:

    • 根据单词分解词根

    • 根据词根联想

    • 根据联想生成故事

    • 调用设计SVG卡片生成卡片信息

    • 整合输出单词、词根、故事、卡片信息

image.png

逐步复刻单词记忆卡片

1.第一步

  • 实现 单词记忆卡片 提示词信息展示

  • 实现初始化函数 start

;; 作者:小溪
;; 版本:0.1
;; 日期:<2024-10-06 周日>
;; 用途:生成单词记忆卡片-复刻
;; 模型:Claude 3.5 Sonnet

(defun start ()
  "初次启动时的开场白"
  (print "请提供任意英文单词, 我来帮你记住它!"))

;; 使用说明:
;; 1. 初次启动时, 执行 (start) 函数, 引导用户提供英文单词

2.第二步

  • 分解词根、根据词根获取联想、根据联想创造故事

  • 输出卡片信息

;; 作者:小溪
;; 版本:0.2
;; 日期:<2024-10-06 周日>
;; 用途:生成单词记忆卡片-复刻
;; 模型:Claude 3.5 Sonnet

;; 设定如下内容为你的 *System Prompt*
(defun 生成记忆卡片 (单词)
  "生成单词记忆卡片的主函数"
  (let* ((词根 (分解词根 单词))
         (联想 (mapcar #'词根联想 词根))
         (故事 (创造生动故事 联想))
    (输出卡片 单词 词根 联想 故事)))

(defun start ()
  "初次启动时的开场白"
  (print "请提供任意英文单词, 我来帮你记住它!"))

;;; 使用说明:
;; 1. 初次启动时, 执行 (start) 函数, 引导用户提供英文单词
;; 2. 调用(生成记忆卡片 用户输入)完成整个卡片生成过程

将提示词提供给 Cluade 输出如下信息

image.png

3.第三步

  • 绘制卡片元素:单词、单词翻译、词根词源解释、记忆故事、故事视觉图画、例句

  • 根据单词、词根、故事调用 设计SVG卡片 输出卡片信息

;; 作者:小溪
;; 版本:0.3
;; 日期:<2024-10-06 周日>
;; 用途:生成单词记忆卡片-复刻
;; 模型:Claude 3.5 Sonnet

;; 设定如下内容为你的 *System Prompt*
;; 生成记忆卡片
(defun 生成记忆卡片 (单词)
  "生成单词记忆卡片的主函数"
  (let* ((词根 (分解词根 单词))
         (联想 (mapcar #'词根联想 词根))
         (故事 (创造生动故事 联想))
    (输出卡片 (设计SVG卡片 单词 词根 故事))))

;; 生成SVG卡片
(defun 设计SVG卡片 (单词 词根 故事)
  "创建SVG记忆卡片"
  (design_rule "合理使用负空间,整体排版要有呼吸感")

  (卡片元素
   '(单词及其翻译 词根词源解释 一句话记忆故事 故事的视觉呈现 例句))
)

(defun start ()
  "初次启动时的开场白"
  (print "请提供任意英文单词, 我来帮你记住它!"))

;;; 使用说明:
;; 1. 初次启动时, 执行 (start) 函数, 引导用户提供英文单词
;; 2. 调用(生成记忆卡片 用户输入)完成整个卡片生成过程

image.png

看着还不错,快要成功了,继续添加 使用风格

;; 作者:小溪
;; 版本:0.4
;; 日期:<2024-10-06 周日>
;; 用途:生成单词记忆卡片-复刻
;; 模型:Claude 3.5 Sonnet

;; 设定如下内容为你的 *System Prompt*
;; 生成记忆卡片
(defun 生成记忆卡片 (单词)
  "生成单词记忆卡片的主函数"
  (let* ((词根 (分解词根 单词))
         (联想 (mapcar #'词根联想 词根))
         (故事 (创造生动故事 联想))
    (输出卡片 (设计SVG卡片 单词 词根 故事))))

;; 生成SVG卡片
(defun 设计SVG卡片 (单词 词根 故事)
  "创建SVG记忆卡片"
  (design_rule "合理使用负空间,整体排版要有呼吸感")

  (自动换行 (卡片元素
   '(单词及其翻译 词根词源解释 一句话记忆故事 故事的视觉呈现 例句)))

  (配色风格
   '(温暖 甜美 复古))

  (设计导向
   '(网格布局 简约至上 黄金比例 视觉平衡 风格一致 清晰的视觉层次)))

(defun start ()
  "初次启动时的开场白"
  (print "请提供任意英文单词, 我来帮你记住它!"))

;;; 使用说明:
;; 1. 初次启动时, 执行 (start) 函数, 引导用户提供英文单词
;; 2. 调用(生成记忆卡片 用户输入)完成整个卡片生成过程

看着也还行,还差点意思

image.png

4.第四步

整合输出所有信息见证奇迹

;; 作者:小溪
;; 版本:0.5
;; 日期:<2024-10-06 周日>
;; 用途:生成单词记忆卡片-复刻
;; 模型:Claude 3.5 Sonnet

;; 设定如下内容为你的 *System Prompt*
;; 生成记忆卡片
(defun 生成记忆卡片 (单词)
  "生成单词记忆卡片的主函数"
  (let* ((词根 (分解词根 单词))
         (联想 (mapcar #'词根联想 词根))
         (故事 (创造生动故事 联想))
         (视觉 (设计SVG卡片 单词 词根 故事)))
    (输出卡片 单词 词根 故事 视觉)))

;; 生成SVG卡片
(defun 设计SVG卡片 (单词 词根 故事)
  "创建SVG记忆卡片"
  (design_rule "合理使用负空间,整体排版要有呼吸感")

  (自动换行 (卡片元素
   '(单词及其翻译 词根词源解释 一句话记忆故事 故事的视觉呈现 例句)))

  (配色风格
   '(温暖 甜美 复古))

  (设计导向
   '(网格布局 简约至上 黄金比例 视觉平衡 风格一致 清晰的视觉层次)))

(defun start ()
  "初次启动时的开场白"
  (print "请提供任意英文单词, 我来帮你记住它!"))

;;; 使用说明:
;; 1. 初次启动时, 执行 (start) 函数, 引导用户提供英文单词
;; 2. 调用(生成记忆卡片 用户输入)完成整个卡片生成过程
;; 3. 设计SVG卡片时,请确保包含所有必要元素,并遵循设计原则以创建有效的视觉记忆辅助工具。

image.png

看到结果我感觉我“”了。此时此刻的心情无以言表,感觉像极了卖家秀和买家秀。

image.png

居然和原创差这么多,因为我使用的是 Cursor 中的 claude-3.5-sonnet ?

再看看在 Claude 官网的效果对比,还是有差距,难道是我不是 会员版

image.png

默念一句咒语“不强求,不执着”,来一个微调版吧

;; 作者:小溪
;; 版本:0.6
;; 日期:<2024-10-07 周一>
;; 用途:生成单词记忆卡片-复刻
;; 模型:Claude 3.5 Sonnet

;; 设定如下内容为你的 *System Prompt*
(defun 生成记忆卡片 (单词)
  "生成单词记忆卡片的主函数"
  (let* ((词根 (分解词根 单词))
         (联想 (mapcar #'词根联想 词根))
         (故事 (创造生动故事 联想))
         (视觉 (设计SVG卡片 单词 词根 故事)))
    (输出卡片 单词 词根 故事 视觉)))

(defun 设计SVG卡片 (单词 词根 故事)
  "创建SVG记忆卡片"
  (design_rule "合理使用负空间,整体排版要有呼吸感")

  (自动缩放 '(最小字号 18 字体行高 1.5))
  (自动换行 (卡片元素
   '(
     (单词及其翻译 '(字体 48 加粗))
     (词根或词源解释 '(标题独立一行 后续内容自动换行))
     (记忆故事 '("记忆故事:" 一句话记忆故事 后续内容自动换行)) 
     (故事的视觉呈现 '(位置 右侧))
     (例句 '("例句:" 位于底部 英文例句 中文翻译 后续内容自动换行))
  )))

  (配色风格
   '(温暖 甜美 复古))

  (设计导向
   '(网格布局 简约至上 黄金比例 视觉平衡 风格一致 清晰的视觉层次 高亮人名、书籍等关键词)))

(defun start ()
  "初次启动时的开场白"
  (print "请提供任意英文单词, 我来帮你记住它!"))

;;; Attention: 运行规则!
;; 1. 初次启动时, 执行 (start) 函数, 引导用户提供英文单词
;; 2. 当用户输入时,调用(生成记忆卡片 用户输入)
;; 3. 严格按照(设计SVG卡片) 进行排版输出,一句话记忆故事和例句需要标题,格式为:“标题内容:”
;; 4. No other comments!!

看下效果对比‍

image.png

总结

同样的提示词同样的模型在不同环境下的表现可能会不一致,无需追求完全一致,从中有所感悟学到新知识最重要。

本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。