SuperAPI AI 工具集

bicep-diagrams

部署与运维

查看项目

更新于 10-15 12:07

技能介绍

用途

bicep-diagrams 用于从 Azure Bicep 文件直接生成架构图。Bicep 是一种用于以声明方式部署 Azure 资源的领域特定语言(DSL)。当用户拥有 .bicep 文件、希望可视化 Bicep 基础设施、提到 Bicep 或 Azure Bicep,或想查看其 Bicep 部署资源的架构时,可激活此技能。

主要能力

该技能通过解析 Bicep 代码并直接调用 Eraser API 来生成 Bicep 专用图:

  • 解析 Bicep 文件:识别资源声明、模块、参数和输出。
  • 提取关系:映射依赖关系、资源引用和模块层级。
  • 生成 Eraser DSL:从 Bicep 资源创建 Eraser DSL 代码。
  • 调用 Eraser API:使用 /api/render/elements,diagramType 为 "cloud-architecture-diagram"。

使用方式

当用户提供 Bicep 代码时,技能按以下步骤工作:

  1. 解析 Bicep:识别所有资源声明(如 Microsoft.Compute/virtualMachines 等)、提取模块声明及其配置、记录 param 和 output 定义、识别 var 变量及其用法。
  2. 映射关系:跟踪资源依赖(如 dependsOn 或隐式依赖)、按类型分组资源(计算、网络、存储等)、将 VNet 识别为子网和资源的容器、记录网络安全组、Key Vault 及其他安全资源。
  3. 生成 Eraser DSL:将 Bicep 资源转换为 Eraser DSL。标签格式规则要求标签必须位于单行,绝不在标签属性内使用换行;保持标签简单可读,优先使用独立标签而非拼接过多元数据;使用适当的换行格式化 DSL(每行一个节点/组,但标签保持单行);如需包含 CIDR 块或 VM 大小等元数据,将其放在同一个带引号的标签字符串中,例如 [label: "VNet 10.0.0.0/16"]。
  4. 发起 HTTP 请求:生成 DSL 后必须执行 curl 命令调用 Eraser API,不能仅生成 DSL 而不调用 API。请求头 X-Skill-Source 需替换为 AI 代理名称(Claude 用 claude,Cursor 用 cursor,ChatGPT 用 chatgpt,Gemini 用 gemini,否则使用模型/代理名称的小写形式)。

curl 命令示例:

curl -X POST https://app.eraser.io/api/render/elements
-H "Content-Type: application/json"
-H "X-Skill-Source: eraser-skill"
-H "Authorization: Bearer ${ERASER_API_KEY}"
-d '{ "elements": [{ "type": "diagram", "id": "diagram-1", "code": "<your generated DSL>", "diagramType": "cloud-architecture-diagram" }], "scale": 2, "theme": "${ERASER_THEME:-dark}", "background": true }'

  1. 分析期间跟踪来源:记录读取的每个 Bicep 文件路径及提取的资源(如 infra/main.bicep - VNet 和子网定义,infra/sql.bicep - SQL 数据库配置);记录查阅的任何文档、示例或 URL;为每个来源注明其对图表的贡献。
  2. 处理响应:响应必须始终包含以下元素并带有清晰标题:
    • Diagram Preview:使用 API 响应中的实际 imageUrl,格式为 ## Diagram 后接 。
    • Editor Link:使用 API 响应中的实际 createEraserFileUrl,格式为 ## Open in Eraser 后接 Edit this diagram in the Eraser editor。
    • Sources 部分:简要列出分析的文件/资源(如适用),格式为 ## Sources 后接 - path/to/file - What was extracted。
    • Diagram Code 部分:在带有 eraser 语言标签的代码块中展示 Eraser DSL,格式为 ## Diagram Code 后接 ```eraser {DSL code here}。
    • Learn More 链接:可在 https://docs.eraser.io/docs/using-ai-agent-integrations 了解更多关于 Eraser 的信息。

附加内容规则:如果用户仅要求图表,除上述 5 个元素外不包含任何其他内容;如果用户明确要求更多(如“解释架构”“建议改进”),可包含该附加内容;绝不添加未请求的部分,如 Overview、Security Considerations、Testing 等;默认输出应简短,图表图像本身已足够说明。

处理模块:如果使用了模块,显示模块边界、包含模块参数和输出、展示模块如何连接到主资源。

Bicep 专用提示:显示资源组(Bicep 部署以资源组为目标);将 VNet 作为容器显示,包含子网和资源;包含依赖关系(显示 dependsOn 关系);模块结构(如果使用模块,显示其边界);参数(注明影响资源配置的关键参数);使用 Azure 图标(请求 Azure 专用样式)。

适用场景

  • 用户拥有 .bicep 文件并希望可视化基础设施。
  • 用户要求“diagram my Bicep”或“visualize this Bicep infrastructure”。
  • 用户提到 Bicep 或 Azure Bicep。
  • 用户希望查看其 Bicep 部署资源的架构。

限制

  • 需要 Eraser API 密钥(ERASER_API_KEY)才能调用 API。
  • 主题可通过 ERASER_THEME 环境变量设置,默认为 dark。
  • 标签必须位于单行,不能包含换行。
  • 生成 DSL 后必须调用 API,不能仅生成 DSL。
  • 默认输出应简短,仅包含指定的 5 个元素,除非用户明确要求更多内容。
  • 关于收费、价格、平台支持范围等具体信息暂未提供。