2025 AI 提示词革命!用 Mermaid 让 AI 读懂流程,人类看懂结构!

该文章已生成可运行项目,

1. 背景:长文本提示的痛点

在 AI 编程或任务执行中,我们通常需要用大量文字来描述一个复杂的流程。例如:

传统提示词
“首先检查上下文,然后验证文件是否符合规范,如果符合就执行操作,否则返回错误……”

这类提示词不仅冗长,而且 AI 可能会误解其中的逻辑,导致意图不清或执行错误。而最近 Cline 社区发现了一个突破性的技巧:

直接用 Mermaid 图表替代文字描述,让 AI 以流程图方式理解任务逻辑!

为什么 Mermaid 更高效?

  • 结构化信息表达:比起纯文本,Mermaid 让 AI 一眼就能读懂流程关系,避免歧义。

  • 更好解析:AI 处理结构化数据(如 JSON、图表)通常比解析自然语言更快、更准确。

  • 直观调试:如果某个步骤有问题,只需修改图表,不需要重新编写复杂的提示词。

  • 支持纯文本大模型:一方面通过 Mermaid 的结构化描述让纯文本大模型秒懂人类的意图,另一方面减少多模态大模型读图产生的歧义。

2. 使用文字来画图的 Mermaid

Mermaid 是一种用文本描述流程图的轻量级标记语言,它可以将代码自动转换为可视化图表,让复杂的流程变得清晰易懂。例如:

示例 1:用 Mermaid 描述任务流程

传统的 AI 提示词可能是这样的:

“读取文件后进行验证,如果验证通过,则执行任务;否则,返回错误。”

如果用 Mermaid,可以写成:

flowchart TD  
    Start --> ReadFiles  
    ReadFiles --> Verify  
    Verify -- Valid --> Execute  
    Verify -- Invalid --> Error  

AI “读”到这张图时,流程关系一目了然,不会再误解步骤顺序!

在这里插入图片描述

Mermaid 语法速览

  • flowchart TD:表示从上到下的流程图

  • A --> B:表示从 A 到 B 的流程

  • A -- 条件 --> B:表示带有条件分支的流程

更多 Mermaid 语法参考:Mermaid 官方文档

3. 如何使用 Mermaid 来制作 AI 提示词?

方法 1:让 AI 直接理解流程
如果 AI 直接支持 Mermaid,可以把提示词变成 Mermaid 代码,让 AI 直接解析。例如:

传统提示词:“先检查用户权限,然后加载数据,最后返回结果。”
Mermaid 版本

flowchart TD  
    CheckPermission --> LoadData  
    LoadData --> ReturnResult  

这样,AI 读到的是一个清晰的流程图,比阅读文字描述更快、更直观!


方法 2:让 AI 生成 Mermaid 代码
我们还可以让 AI 根据我们的描述自动生成 Mermaid 代码。例如:

用户输入:“请用 Mermaid 表示一个登录流程,包含用户输入、验证、成功或失败处理。”
AI 生成的 Mermaid 代码

flowchart TD  
    UserInput --> Validate  
    Validate -- Success --> Dashboard  
    Validate -- Failure --> ErrorMessage  

这样不仅节省了时间,还能快速验证流程逻辑是否正确!


方法 3:用 Mermaid 解决 AI 记忆问题(Memory Bank 案例)
在 AI 任务中,记忆重置是一个常见问题。如果每次都要重新输入大量背景信息,既低效又容易出错。但 Cline 社区发现,可以用 Mermaid 结构化表示上下文,让 AI 轻松恢复记忆。

传统方法(纯文本):

“项目的 projectbrief.md 包含多个文档:systemPatterns.mdproductContext.mdtechContext.md,这些文档的内容共同决定 activeContext.md,而 activeContext.md 进一步影响 progress.md。”

这种描述虽然清楚,但仍然容易导致 AI 误解。我们可以改用 Mermaid 表示:

graph TD  
    projectbrief.md --> systemPatterns.md  
    projectbrief.md --> productContext.md  
    projectbrief.md --> techContext.md  
    productContext.md --> activeContext.md  
    techContext.md --> activeContext.md  
    systemPatterns.md --> activeContext.md  
    activeContext.md --> progress.md  

这样,AI 就可以一下子就读出文档层次关系,比逐行解析文字描述更高效。

在这里插入图片描述

应用场景

  • 文档管理:帮助 AI 理解多个文件之间的关系
  • 代码架构:快速向 AI 展示项目结构,让 AI 更好地阅读代码
  • 任务流程:描述复杂的业务逻辑,让 AI 准确执行步骤

4. 总结:如何立即上手?


传统提示词 vs. Mermaid 提示词

在这里插入图片描述

立即尝试 Mermaid 提示词!
第一步:从一个简单的任务开始,比如让 AI 解析一个登录流程
第二步:在 AI 平台(如 Cline)中测试 Mermaid 提示词
第三步:尝试用 Mermaid 可视化你的项目架构,看看 AI 是否能更快理解

Mermaid 让 AI 提示词更清晰、更高效、更可控,你准备好尝试了吗?


5. 如何系统学习掌握AI大模型?

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 2024行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

在这里插入图片描述

5. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方优快云官方认证二维码,免费领取【保证100%免费

本文章已经生成可运行项目
<think>我们正在讨论的是流程图解析的替代方案,用户表示看不懂Mermaid流程图,并希望了解是否有其他方式可以解析流程图。根据之前的对话历史,用户已经接触了使用Mermaid绘制的C语言简易Shell程序流程图,但存在理解困难。因此,我们需要提供替代Mermaid流程图表示方法,并确保这些替代方案更易于理解。 考虑到用户的需求,我们可以提供以下替代方案: 1. **纯文本描述**:用结构化的文字描述流程,分步骤说明。 2. **ASCII艺术流程图**:使用字符(如+、-、|、>等)绘制简单的流程图,这种形式在终端中也可查看。 3. **使用其他图形库或工具生成图片**:例如Graphviz的DOT语言,然后生成图片,但需要用户安装额外的工具或查看图片。 4. **表格形式**:用表格列出每个步骤的说明。 由于用户希望避免使用Mermaid,且可能希望直接在文本中查看,我们重点考虑纯文本描述和ASCII艺术流程图。 另外,根据引用[1]中提到的Mermaid基本语法,用户可能对Mermaid的符号不熟悉。因此,我们可以选择更直观的方式。 下面,我将用纯文本描述和ASCII艺术图两种方式重新表示C语言简易Shell程序的流程图。 ### 替代方案1:纯文本步骤描述 ``` 1. 主循环开始 2. 显示提示符 "mysh>" 3. 读取用户输入 4. 判断输入是否为"exit"? - 是:退出Shell - 否:继续下一步 5. 解析命令和参数 6. 判断命令是否为空? - 是:返回步骤2 - 否:继续下一步 7. 创建管道 8. 创建子进程(fork) - 子进程: a. 重定向标准输出到管道 b. 执行命令(execvp) - 父进程: a. 读取管道输出 b. 循环读取每一行,并判断是否为"stop"? - 是:向子进程发送SIGTERM终止信号,并设置stop_received标志 - 否:打印该行内容 c. 等待子进程结束(waitpid) d. 根据stop_received标志打印终止信息(如果是被stop终止,则打印相应提示;否则打印完成提示) 9. 返回步骤2(继续主循环) ``` ### 替代方案2:ASCII艺术流程图 ``` +-----------------+ | 主循环开始 | +--------+--------+ | v +-----------------+ | 显示提示符 mysh> | +--------+--------+ | v +-----------------+ | 读取用户输入 | +--------+--------+ | +-----------------+ 是 +-------------+ | 是否为"exit"? +--------->| 退出Shell | +--------+--------+ +-------------+ | 否 v +-----------------+ | 解析命令和参数 | +--------+--------+ | +-----------------+ 是 +-----------+ | 命令是否为空? +--------->| 返回提示符| +--------+--------+ +-----------+ | 否 v +-----------------+ | 创建管道 | +--------+--------+ | v +-----------------+ | fork创建子进程 | +--------+--------+ |-------------------+ | | +-----------------v-------+ +-------v-----------------+ | 子进程 | | 父进程 | | 1. 重定向stdout到管道 | | 1. 关闭写端 | | 2. 执行execvp命令 | | 2. 循环读取管道输出 | | | | - 若读到"stop"则终止子进程| | | | - 否则打印输出 | | | | 3. 等待子进程结束 | | | | 4. 打印终止信息 | +-------------------------+ +--------+----------------+ | v +-----------------+ | 返回主循环开始 | +-----------------+ ``` ### 替代方案3:使用DOT语言(Graphviz) 虽然用户要求不使用Mermaid,但DOT语言是另一种常用的流程图描述语言,可以生成图片。这里给出DOT代码,用户可以通过在线工具(如https://dreampuf.github.io/GraphvizOnline/)查看生成的图片。 ```dot digraph shell_flow { node [shape=box]; start [label="主循环开始"]; show_prompt [label="显示提示符 mysh>"]; read_input [label="读取用户输入"]; check_exit [label="是否为exit?"]; exit [label="退出Shell"]; parse_command [label="解析命令和参数"]; check_empty [label="命令是否为空?"]; create_pipe [label="创建管道"]; fork_process [label="fork创建子进程"]; child_proc [label="子进程:\n1. 重定向stdout到管道\n2. 执行execvp命令"]; parent_proc [label="父进程:\n1. 关闭写端\n2. 循环读取管道输出\n - 检测到'stop'? 是: 终止子进程\n - 否: 打印输出\n3. 等待子进程结束\n4. 打印终止信息"]; loop_start [label="返回主循环开始"]; start -> show_prompt; show_prompt -> read_input; read_input -> check_exit; check_exit -> exit [label="是"]; check_exit -> parse_command [label="否"]; parse_command -> check_empty; check_empty -> show_prompt [label="是"]; check_empty -> create_pipe [label="否"]; create_pipe -> fork_process; fork_process -> child_proc [label="子进程"]; fork_process -> parent_proc [label="父进程"]; parent_proc -> loop_start; loop_start -> show_prompt; } ``` ### 总结 以上提供了三种替代Mermaid流程图表示方法: 1. **纯文本步骤描述**:最通用,无需任何工具支持。 2. **ASCII艺术流程图**:在文本环境中可直观展示流程,但绘制复杂流程图时可能较繁琐。 3. **DOT语言**:需要借助工具生成图片,但可得到更美观的流程图。 用户可以根据自己的需求选择合适的方式。如果用户希望快速理解流程,纯文本步骤描述可能更直接;如果用户希望有图形化展示,可以使用DOT语言生成图片。 §§相关问题§§ 1. 如何将DOT代码转换为流程图图片? 2. ASCII艺术流程图有哪些绘制工具? 3. 除了Mermaid和Graphviz,还有哪些流程图绘制工具? 4. 在文本描述流程时,有哪些最佳实践?</think>以下是针对流程图解析的替代方案,不使用Mermaid格式的解决方案: ### 流程图解析替代方案 #### 1. 纯文本结构化描述(推荐) ```plaintext 主循环开始 ├─ 显示提示符 "mysh>" ├─ 读取用户输入 ├─ 判断是否为"exit"? │ ├─ 是 → 退出Shell │ └─ 否 → 解析命令和参数 │ ├─ 命令为空? → 返回提示符 │ └─ 命令有效 │ ├─ 创建管道 │ ├─ fork创建子进程 │ │ ├─ 子进程分支: │ │ │ ├─ 重定向stdout到管道 │ │ │ └─ 执行execvp命令 │ │ └─ 父进程分支: │ │ ├─ 循环读取管道输出 │ │ ├─ 检测到"stop"? │ │ │ ├─ 是 → 发送SIGTERM终止子进程 │ │ │ └─ 否 → 打印输出内容 │ │ ├─ 等待子进程结束 │ │ └─ 打印终止信息 └─ 返回主循环开始 ``` #### 2. ASCII艺术流程图 ```plaintext +-----------------+ | 主循环开始 | +--------+--------+ | v +-----------------+ | 显示提示符 mysh>| +--------+--------+ | v +-----------------+ 是 +-------------+ | 是否为"exit"? +-------->| 退出Shell | +--------+--------+ +-------------+ |否 v +-----------------+ | 解析命令和参数 | +--------+--------+ |空 +------> 返回 |有效 v +-----------------+ | 创建管道 | +--------+--------+ | v +-----------------+ +-----------------------+ | fork创建子进程 +------>| 子进程: | +--------+--------+ | 1. 重定向stdout到管道 | | | 2. 执行execvp命令 | | +-----------------------+ v +-----------------+ | 父进程: | | 1. 读取管道输出 | | 2. 检测"stop"? +--是--> 终止子进程 | 3. 打印输出 | | | 4. 等待子进程 | 否 | 5. 打印终止信息 | | +--------+--------+ | | | +------------+ ``` #### 3. DOT语言(Graphviz) ```dot digraph shell_flow { rankdir=TB; node [shape=box]; start [label="主循环开始"]; prompt [label="显示提示符 mysh>"]; read [label="读取用户输入"]; exit_check [label="是否为exit?" shape=diamond]; exit [label="退出Shell"]; parse [label="解析命令和参数"]; empty_check [label="命令为空?" shape=diamond]; create_pipe [label="创建管道"]; fork [label="fork创建子进程"]; child_proc [label="子进程:\n1. 重定向stdout到管道\n2. 执行execvp"]; parent_proc [label="父进程:\n1. 读取管道输出\n2. 检测'stop'"]; stop_check [label="检测到stop?" shape=diamond]; kill [label="发送SIGTERM"]; print [label="打印输出"]; wait [label="等待子进程结束"]; end_info [label="打印终止信息"]; start -> prompt -> read -> exit_check; exit_check -> exit [label="是"]; exit_check -> parse [label="否"]; parse -> empty_check; empty_check -> prompt [label="是"]; empty_check -> create_pipe [label="否"]; create_pipe -> fork; fork -> child_proc [label="子进程"]; fork -> parent_proc [label="父进程"]; parent_proc -> stop_check; stop_check -> kill [label="是"]; stop_check -> print [label="否"]; print -> parent_proc; kill -> wait; wait -> end_info; end_info -> start; child_proc -> wait [style=dotted]; } ``` #### 4. 表格流程描述 | 步骤 | 主体 | 动作 | 条件判断 | 跳转目标 | |------|------|------|----------|----------| | 1 | 主进程 | 显示提示符 | - | 步骤2 | | 2 | 主进程 | 读取输入 | 输入=="exit"? | 是→退出, 否→步骤3 | | 3 | 主进程 | 解析命令 | 命令为空? | 是→返回步骤1, 否→步骤4 | | 4 | 主进程 | 创建管道 | - | 步骤5 | | 5 | 主进程 | fork进程 | - | 子进程→步骤6, 父进程→步骤7 | | 6 | 子进程 | 重定向并执行命令 | - | 退出 | | 7 | 父进程 | 读取管道输出 | 包含"stop"? | 是→步骤8, 否→步骤9 | | 8 | 父进程 | 发送SIGTERM | - | 步骤10 | | 9 | 父进程 | 打印输出 | - | 返回步骤7 | | 10 | 父进程 | 等待子进程结束 | - | 步骤11 | | 11 | 父进程 | 打印终止信息 | - | 返回步骤1 | ### 各方案特点对比 | 方案 | 可读性 | 工具依赖 | 适用场景 | |------|--------|----------|----------| | 纯文本结构化 | ★★★★☆ | 无 | 快速理解核心流程 | | ASCII流程图 | ★★★☆☆ | 无 | 终端环境查看 | | DOT语言 | ★★★★☆ | Graphviz | 生成高质量矢量图 | | 表格描述 | ★★☆☆☆ | 无 | 精确控制流程细节 | ### 使用建议 1. **简单场景**:优先使用纯文本结构化描述,直观易懂 2. **技术文档**:采用DOT语言+Graphviz生成专业流程图 3. **终端环境**:使用ASCII艺术流程图,无需额外工具 4. **复杂逻辑**:表格描述确保所有分支都被覆盖 这些替代方案避免了Mermaid语法依赖,同时保留了流程的核心逻辑和结构关系[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值