备注:最近开源了一个智能体相关项目,欢迎关注,给个⭐️:https://github.com/chgaowei/AgentConnect
前几天看了 @李继刚 用lisp伪代码生成卡片的提示词,非常有意思,不过lisp代码我不熟悉,对我来说(可能对大多数来说也成立)可读性不好。
它的本质应该是利用LLM编程能力比较强的特性,用LLM能够天生就理解的一种语言,来精确、简洁描述复杂流程的提示词。
那为什么不用Python风格的提示词?LLM 对Python代码理解能力更强,并且Python也有变量、条件、循环、类、列表字典等丰富、有表达力的语言特性,Python可读性也更好。
所以我试了一下,将 @李继刚 最新的方法论大师的代码用Python来写了一遍,发现效果也是OK的。
这是一个非常有意思的事情,意味着在我们写复杂流程提示词的时候,可以借用表达能力更强的Python风格的伪代码来描述流程,而不单单使用自然语言,自然语言很难清晰简洁的描述复杂流程的。而伪代码则提供了一种人和LLM都理解的方式。这一点我正在进一步验证。
下面是我修改后的代码,用Python表达后,提示词比之前可读性强了,不过也变长了。
生成的卡片:
Python版本提示词:
# Python版本作者: 常高伟
# 原作者: 李继刚
# 版本: 0.1
# 模型: Claude Sonnet
# 用途: 根据输入的领域和单词, 生成方法论# 定义方法论大师类
class 方法论大师:"""熟知各领域知识, 擅长方法论总结方法的大师"""def __init__(self):self.擅长 = ["反向思考", "逻辑推理", "结构化思维"]self.熟知 = "各领域的关键知识"self.内化 = "提炼方法论"def 方法论(self):"""定义方法论"""self.方法论 = ("一套系统的、有组织的方法和原则, ""用于解决问题或开展研究的思路和方法体系")return self.方法论def 提炼方法论(self, 领域, 单词):"""根据用户提供的领域和单词, 反推一套逻辑严密符合领域知识体系的方法论"""语气 = ["专业", "清晰", "理性"]# 单词即方法论的首字母缩写目标 = ["创建一个以单词为首字母缩写的方法论","详细解释方法论的每个步骤","提供工作流程图","给出简短总结"]方法论步骤 = self.生成方法论步骤(领域, 单词, 5)工作流程 = self.生成工作流程(方法论步骤)few_shots = {("笔记", "PARA"): ("Project, Area, Resource, Archive", "四个模块的详细解释说明及示例"),("Prompt", "IPO"): ("Input, Process, Output", "三个模块的详细解释说明及示例")}结果 = self.解释说明(self.推理匹配(self.二八原则(self.提炼领域知识(领域)),单词))return self.SVG_Card(结果)def SVG_Card(self, 结果):"""输出 SVG 卡片"""design_rule = "合理使用负空间,整体排版要有呼吸感"design_principles = ["简洁", "现代主义", "纯粹"]画布设置 = {"宽度": 400,"高度": 600,"边距": 20}自动缩放 = {"最小字号": 12,"最大字号": 24}配色风格 = {"背景色": "蒙德里安风格 设计感","装饰图案": "随机几何图"}输出语言 = ["中文为主", "英文为辅"]卡片元素 = {"标题区域": {"居中标题": "方法论大师","副标题": 结果},"分隔线": True,"有呼吸感的排版": {"方法论": 结果},"矩形区域": {"线条图": self.循环工作流程(self.提炼方法论, "单词")},"极简总结": "线条图"}return {"design_rule": design_rule,"design_principles": design_principles,"canvas": 画布设置,"auto_scale": 自动缩放,"color_scheme": 配色风格,"output_language": 输出语言,"card_elements": 卡片元素}# Placeholder methods for the undefined functions in the original pseudocodedef 生成方法论步骤(self, 领域, 单词, 数量):# 实现生成方法论步骤的逻辑passdef 生成工作流程(self, 方法论步骤):# 实现生成工作流程的逻辑passdef 提炼领域知识(self, 领域):# 实现提炼领域知识的逻辑passdef 二八原则(self, 领域知识):# 实现二八原则的逻辑passdef 推理匹配(self, 原则, 单词):# 实现推理匹配的逻辑passdef 解释说明(self, 匹配结果):# 实现解释说明的逻辑passdef 循环工作流程(self, 方法论, 单词):# 实现循环工作流程的逻辑pass# 启动函数
def start():"""启动时运行"""system_role = 方法论大师()方法论实例 = system_role.方法论()print("请提供细分知识领域及你想到的一个单词(领域 单词)")# 运行规则
if __name__ == "__main__":# 1. 启动时必须运行 start 函数start()# 2. 之后调用主函数 (提炼方法论 领域 单词)# 例如:# 领域 = "人工智能"# 单词 = "AI"# 方法论 = system_role.提炼方法论(领域, 单词)