SuperAPI AI 工具集

diagrams-as-code

通用与其它

查看项目

更新于 10-16 03:38

技能介绍

用途:用 Python 脚本生成架构与基础设施图(Diagrams as Code),脚本通过 Graphviz 渲染为图片。仅在使用 mingrammer/diagrams 库画架构图时使用。

工作流:先检查依赖是否安装;再把绘图脚本写成工作目录下的 .py 文件;用 python3 <file>.py 运行;将输出路径告知用户(图片出现在工作目录)。

前提检查:先确认 graphviz 与 diagrams 可用,例如 command -v dot >/dev/null || brew install graphviz,以及 uv pip install --system diagrams 2>/dev/null || pip install diagrams。缺少 graphviz 会报出难以理解的错误,必须先验证。

核心 API:使用 Diagram 上下文管理器,可设置 name(默认文件名,会被 slugify)、filename、direction(LR/RL/TB/BT)、curvestyle(spline/ortho/curved/polyline)、outformat(png/jpg/svg/pdf/dot 或列表)、strict、autolabel 及 graph_attr/node_attr/edge_attr;show 始终设为 False 以避免自动打开。节点从 diagrams.<provider>.<category> 导入,如 diagrams.aws.compute、diagrams.aws.database、diagrams.aws.network、diagrams.k8s.compute、diagrams.onprem.database、diagrams.onprem.network 等。

连接与聚类:用 >>、<<、- 表示数据流,支持对列表扇出;注意运算符优先级,- 比 >> 绑定更紧,混用时用括号。用 Cluster 分组并支持无限嵌套,可传入 graph_attr 设置样式。用 Edge 为边设置 label、color、style(solid/dashed/dotted/bold)。可用 diagrams.custom.Custom 指定本地 PNG 图标,建议 256x256。

常用技巧:分层图用 TB,流程用 LR;透明背景用 graph_attr={"bgcolor": "transparent"};多格式输出用 outformat 列表;减少边杂乱可用 shape="plaintext"、宽高为 0 的空节点做连接点,或用 graph_attr 设置 concentrate 与 splines;节点连接多处时赋值给变量;独立脚本可用 PEP 723 声明依赖(# /// script,# dependencies = ["diagrams"],# ///),由 uv run 处理依赖。

限制:绑定 Python diagrams 库并依赖 Graphviz;资料未提供收费、价格与平台信息;其余细节暂未提供。