SuperAPI AI 工具集

sfguide-diagram

写作与研究

查看项目

更新于 11-05 20:55

技能介绍

用途 该技能用于为 Snowflake 开发者指南(sfguide/quickstart)创建架构图或工作流图,并以可复现的 matplotlib 脚本加 PNG 图片的形式产出。图表资源保存在仓库中,编辑指南后可重新生成。

主要能力 脚本模板位于 scripts/architecture_diagram.py,已完整并通过测试。使用时复制模板,仅需修改 STYLE、NODES、EDGES 数据和画布范围,无需重写布局代码。模板保证以下效果:方形边框盒子按文本尺寸调整,四边内边距一致(PAD_PX);粗体标题配较小副标题;箭头裁剪到盒子边界,rad 参数可生成曲线绕开盒子;边标签按箭头方向旋转且不会倒置,位于线旁且两侧间隙一致;标签与其他线条保持 LINE_CLEAR_PX 距离,与盒子和其他标签保持 LABEL_CLEAR_PX 距离,无法放置时会输出警告;图例居中位于图下方,仅列出实际出现的对象类型。

使用方式 先阅读指南文件夹下的 .md 文件,列出指南创建的每个 Snowflake 对象(表、仓库、存储过程、任务、服务、Streamlit 应用、暂存区、动态表、智能体等)及其间交互(写入、读取、调用、调度、轮询),并记录每个交互的 SQL 动词作为边标签。指南不明确时可与用户简短确认对象与边清单。随后将模板复制到 <guide>/assets/architecture_diagram.py,填写 STYLE(每种对象类型的填充色与边框色)、NODES(坐标、类型、标题、副标题,按数据流从左到右网格布局)、EDGES(源、目标、标签、颜色、是否虚线、弧度),并设置 figsize、xlim、ylim 使网格适配。渲染命令为 cd <guide>/assets && python3 architecture_diagram.py,然后查看 PNG 检查效果。问题应通过调整数据而非修改代码解决:警告或标签拥挤时拉开节点距离或给交叉边加 rad(0.15 至 0.3);边穿过盒子时加 rad 或移动节点;空白过多时收紧坐标范围;需要更多留白时调大 LABEL_GAP_PX 或 PAD_PX。最后在指南中引用 assets/architecture-diagram.png 并附替代文本,在图片旁加 HTML 注释说明由 architecture_diagram.py 生成,并用 git rm 删除旧的 .excalidraw 源文件。

适用场景 适用于需要为 Snowflake 开发者指南生成可维护、可复现架构图或工作流图的场景,尤其是对象与交互关系需要随指南更新而同步重新出图的情况。

限制 仅依赖 matplotlib(见 pyproject.toml),未安装时可运行 uv run --with matplotlib python architecture_diagram.py,不应新增依赖。LINE_CLEAR_PX 应与 LABEL_GAP_PX 保持一致,以保证标签与所有线条的间距统一。未经询问用户不得提交或推送代码。