用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的过程,但您可以根据需要进行调整。
