用ChatGPT自动生成流程图
我们看别人代码时,总希望有流程图,这样可以一目了然,不过自己写的代码,又不想花几个小时去画流程图。有没有更好的方法呢?
方法就是用ChatGPT等大模型自动生成流程图,并用python等语言实现自动输出流程图。
1、生成流程图的 Mermaid语法
ChatGPT提示语:
对下面的代码生成流程图,并用Mermaid语法输出 。

2、把Mermaid语法的流程图输出图片
要使用Python或Java生成Mermaid语法输出的流程图图片,您可以使用以下方法:
Python 方法:
- 使用
mermaid-cli
工具来将Mermaid代码转换为图片。首先,安装mmdc
(mermaid-cli的执行程序)。 - 使用Python调用
mmdc
。
import os
def generate_mermaid_image(mermaid_code, output_path):
with open("temp.mmd", "w") as file:
file.write(mermaid_code)
os.system(f"mmdc -i temp.mmd -o {output_path}")
os.remove("temp.mmd")
mermaid_code = """
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
"""
generate_mermaid_image(mermaid_code, "output.png")
Java 方法:
- 与Python方法相同,首先安装
mermaid-cli
。 - 使用Java的
Runtime
类来调用mmdc
。
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class MermaidGenerator {
public static void generateMermaidImage(String mermaidCode, String outputPath) throws IOException, InterruptedException {
File tempFile = File.createTempFile("temp", ".mmd");
try (FileWriter writer = new FileWriter(tempFile)) {
writer.write(mermaidCode);
}
Process process = Runtime.getRuntime().exec("mmdc -i " + tempFile.getAbsolutePath() + " -o " + outputPath);
process.waitFor();
tempFile.delete();
}
public static void main(String[] args) throws IOException, InterruptedException {
String mermaidCode = """
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
""";
generateMermaidImage(mermaidCode, "output.png");
}
}
请注意,这两种方法都需要您在计算机上安装并配置mermaid-cli
。此外,这两种方法都是使用临时文件来存储Mermaid代码,并在转换后删除它。这是为了简化调用mmdc
的过程,但您可以根据需要进行调整。