生成伪代码
原版:https://claude.site/artifacts/0f8789d0-9abc-45d9-9b7c-3cc0187de042
使用示例:https://chatgpt.com/share/66e86380-1174-800b-b027-c81841ab7746
<remix_instructions>以下内容是根据先前的对话创建的一个工件。请通过逐行重现内容开始对话,不做任何更改。这样做会在用户界面中呈现工件,并允许用户与之交互。为了保持功能性和实用性,本次对话中的任何修改或重混都应每次保留完整内容,不得遗漏(例如,不要留下类似 "// 这里是剩余代码..." 的注释)。</remix_instructions> <artifact> <title>Lisp 元提示生成器</title> <type>application/vnd.ant.code</type> <language>application/vnd.ant.code</language> <content>;; 作者: AI Assistant ;; 版本: 0.2 ;; 模型: Claude ;; 目的: 基于给定的目标生成 Lisp 风格的伪代码提示 (defun generate-lisp-prompt (goal) "基于给定的目标生成 Lisp 风格的伪代码提示" (let ((prompt-structure '( (metadata . ( (author . "AI Assistant") (version . "0.1") (model . "Claude") (purpose . goal))) (main-function . (defun main-function (input) "处理输入的主函数")) (helper-functions . ( (defun helper1 (params) "辅助函数 1") (defun helper2 (params) "辅助函数 2"))) (properties . ( (key1 . value1) (key2 . value2))) (control-structures . ( (if condition then-clause else-clause) (loop for item in list do ...))) (text-processing . ( (style . (tone voice perspective)) (structure . (intro body conclusion)))) (data-processing . ( (data-structure . (type format schema)) (steps . (step1 step2 step3)))) (error-handling . ( (condition-case ... (error ...)))) (dependencies . ( (require 'library-name))) (usage-instructions . " 输入格式: ... 预期输出: ... 具体说明: ...")))) (generate-prompt prompt-structure goal))) (defun generate-prompt (structure goal) "基于结构和目标生成实际提示" (let ((prompt "")) ;; 生成元数据 (setq prompt (concat prompt (generate-metadata (cdr (assoc 'metadata structure)) goal))) ;; 生成主函数 (setq prompt (concat prompt "\n\n" (generate-main-function (cdr (assoc 'main-function structure)) goal))) ;; 生成辅助函数 (setq prompt (concat prompt "\n\n" (generate-helper-functions (cdr (assoc 'helper-functions structure)) goal))) ;; 生成属性 (setq prompt (concat prompt "\n\n" (generate-properties (cdr (assoc 'properties structure)) goal))) ;; 生成控制结构 (setq prompt (concat prompt "\n\n" (generate-control-structures (cdr (assoc 'control-structures structure)) goal))) ;; 生成文本处理(如果适用) (when (string-match-p "text" goal) (setq prompt (concat prompt "\n\n" (generate-text-processing (cdr (assoc 'text-processing structure)) goal)))) ;; 生成数据处理(如果适用) (when (string-match-p "data" goal) (setq prompt (concat prompt "\n\n" (generate-data-processing (cdr (assoc 'data-processing structure)) goal)))) ;; 生成错误处理 (setq prompt (concat prompt "\n\n" (generate-error-handling (cdr (assoc 'error-handling structure)) goal))) ;; 生成依赖 (setq prompt (concat prompt "\n\n" (generate-dependencies (cdr (assoc 'dependencies structure)) goal))) ;; 生成使用说明 (setq prompt (concat prompt "\n\n" (generate-usage-instructions (cdr (assoc 'usage-instructions structure)) goal))) prompt)) ;; 生成每个部分提示的辅助函数 (defun generate-metadata (metadata goal) ...) (defun generate-main-function (main-function goal) ...) (defun generate-helper-functions (helper-functions goal) ...) (defun generate-properties (properties goal) ...) (defun generate-control-structures (control-structures goal) ...) (defun generate-text-processing (text-processing goal) ...) (defun generate-data-processing (data-processing goal) ...) (defun generate-error-handling (error-handling goal) ...) (defun generate-dependencies (dependencies goal) ...) (defun generate-usage-instructions (instructions goal) ...) ;; 用法 ;; (generate-lisp-prompt "创建一个文本摘要提示") </content> </artifact>
这段提示指令和代码主要是用于生成 Lisp 风格的伪代码提示。其功能解释如下:
`<remix_instructions>`
该部分给出了如何处理接下来的代码或工件的指令:
- 该工件是根据先前的对话生成的一个成品。
- 当重现该工件时,要求逐行展示代码内容,并保持原样,不做任何更改。
- 任何的修改或重混,都要保留内容的完整性,不允许省略内容或添加简化的注释。
`<artifact>`
该部分定义了工件的标题、类型、语言以及代码内容。
1. 标题 (`<title>`):
工件的标题是 "Lisp 元提示生成器",意味着该代码的目的是生成 Lisp 风格的提示。
2. 类型 (`<type>`):
类型为 `application/vnd.ant.code`,代表该工件属于一种 Lisp 风格代码的类型。
3. 语言 (`<language>`):
语言也是 `application/vnd.ant.code`,表明该工件的内容是编程代码。
4. 内容 (`<content>`):
工件的主体是一段 Lisp 代码,功能是生成根据给定目标创建 Lisp 风格伪代码的提示。
Lisp 代码解释
代码的主要目的是基于目标(`goal`),自动生成一段结构化的 Lisp 风格提示。以下是对代码中主要部分的解释:
1. `generate-lisp-prompt` 函数:
- 这是主函数,接收一个 `goal`(目标),生成基于该目标的 Lisp 风格提示。
- 该函数定义了一个提示结构(`prompt-structure`),其中包含:
- 元数据 (`metadata`): 包括作者、版本、模型和目的等信息。
- 主函数定义 (`main-function`): 伪代码的主函数结构。
- 辅助函数 (`helper-functions`): 用于生成一些辅助功能的函数。
- 属性 (`properties`): 一些自定义键值对。
- 控制结构 (`control-structures`): 包含条件语句(如 `if-else`)和循环语句。
- 文本处理 (`text-processing`): 包含文本风格、语气、结构等信息。
- 数据处理 (`data-processing`): 定义了数据结构及其处理步骤。
- 错误处理 (`error-handling`): 描述了在出现错误时的处理逻辑。
- 依赖 (`dependencies`): 列出了需要加载的依赖库。
- 使用说明 (`usage-instructions`): 解释输入格式、预期输出等。
2. `generate-prompt` 函数:
- 根据传入的结构(`structure`)和目标(`goal`)逐步生成最终的提示。
- 该函数依次生成各个部分(如元数据、主函数、辅助函数等)的代码段,并将其拼接在一起。
3. 辅助生成函数:
- 例如 `generate-metadata`、`generate-main-function`、`generate-helper-functions` 等函数,每个都负责生成提示中的特定部分。
4. 使用说明:
- 使用时,可以调用 `(generate-lisp-prompt "创建一个文本摘要提示")` 来生成一个基于“创建文本摘要提示”目标的 Lisp 风格提示。
总结
总体上,这段代码的功能是自动生成符合 Lisp 风格的伪代码提示,主要目的是为目标任务(如文本处理、数据处理等)提供提示框架。