搜索
首页后端开发Python教程使用 AI 助手自动化 Azure 文档

Automating Azure Documentation with an AI Assistant

在大规模环境中管理和记录 Azure 资源组 (RG) 可能非常耗时且复杂。但是,如果您可以自动化生成文档的过程,不仅解释存在哪些资源,还解释它们之间的关系,会怎么样?

在本文中,我们将探索简单的 Python 脚本如何利用 LLM(大型语言模型),例如 OpenAIAzure OpenAI 自动从 ARM 模板创建全面的 Markdown 文档。这个工具的强大之处不是使用复杂的代理框架或繁重的基础设施,而是纯Python与Azure CLI和OpenAI的API等成熟工具的结合。它甚至可以与其他人工智能提供商以及使用 Ollama 或其他类似工具的本地法学硕士一起使用。

无需复杂的代理框架

一个常见的误解是您需要复杂的代理框架才能有效地利用法学硕士的力量。实际上,您可以使用现有工具和简单的脚本实现强大的自动化工作流程。在此解决方案中,我们结合了:

  1. Python:作为脚本语言,它被普遍安装和广泛使用。
  2. Azure CLI:从 Azure 资源组获取 ARM 模板。
  3. OpenAI API 调用:从 ARM 模板生成人类可读的文档。
  4. Markdown:作为文档的输出格式,可以轻松集成到任何知识库中。

结果呢?一个干净、高效的脚本,无需复杂的工具或人工智能驱动的编排即可创建文档。

Azure 助手源代码

源代码可在此 Github 存储库中找到:itlackey/azure-assistants。目前,它包含一个 Python 脚本,该脚本利用 Azure CLI 和 OpenAI API 从 ARM 模板生成 Markdown 文档。如果有兴趣,或者我有需要,可以使用其他工具和脚本更新存储库以自动执行其他任务。

脚本如何工作

这个工具的核心是 document_resource_groups.py 脚本。它做了以下四件事:

  1. 获取当前 Azure 订阅中的所有资源组
  2. 使用 az CLI 从 Azure 资源组导出 ARM 模板
  3. 我们解析模板并将它们发送到OpenAI兼容的API。
  4. 法学硕士用于生成可包含在知识库中的 Markdown 文档

列出资源组

第一步是获取 Azure 订阅中的所有资源组。这是使用 Python 脚本中的 az CLI 命令完成的。然后我们循环遍历它们以获取 ARM 模板。

result = subprocess.run(
    ["az", "group", "list", "--query", "[].name", "-o", "tsv"],
    stdout=subprocess.PIPE,
    text=True,
)
resource_groups = result.stdout.splitlines()

导出 ARM 模板

同样,使用 Azure CLI,该脚本检索当前订阅中每个资源组的 ARM 模板。这些模板包含所有资源的详细配置信息,包括其网络和安全设置。

export_command = [
    "az", "group", "export",
    "--name", resource_group_name,
    "--include-parameter-default-value",
    "--output", "json",
]

与LLM总结

接下来,脚本将 ARM 模板发送到 OpenAI(或 Azure OpenAI)进行汇总。这就是奇迹发生的地方。无需深入研究复杂的代理工作流程,简单的系统消息用户提示为法学硕士提供足够的上下文来生成有洞察力的文档。

response = client.chat.completions.create(model=model, messages=messages)

提示提供了预期的输出模板并指示法学硕士:

  • 列出并描述每个资源。
  • 解释资源如何相互关联。
  • 突出显示重要的网络配置。

这使得法学硕士能够生成结构化、易于阅读的文档,而不需要任何花哨的编排。

生成 Markdown 文档

最后一步是生成包含资源组详细信息的 Markdown 文件。前面的内容包括资源组名称、日期和标签等元数据。然后将 AI 生成的文档添加为文档的内容。

front_matter = f"---\n"
front_matter += f'title: "{resource_group_name}"\n'
front_matter += f"date: {date}\n"
front_matter += f"internal: true\n"

Markdown 是一种通用格式,允许此输出轻松集成到许多文档系统或知识管理系统中。

自定义 AI 提示

此脚本的一个关键功能是能够自定义发送给 LLM 的提示。用户可以在这里微调他们想要的输出类型:

  • 系统消息:指导法学硕士生成侧重于解释资源、关系和网络的文档。

示例:

    You are an experienced Azure cloud architect helping to create reference documentation that explains the resources within an Azure Resource Manager (ARM) template.

    The documentation you create is intended for use in a knowledge base. Your role is to describe the resources in a clear and human-readable way, providing details on the following:

    - What resources exist in the ARM template.
    - How the resources relate to each other.
    - The purpose of each resource (if possible).
    - Highlighting network configurations and data locations such as storage accounts and databases.
    - Be sure to include IP addresses in the documentation when they are available.
    - Include information about virtual network peering.
    - It is very important that you also include any potential security issues that you may find.
  • 用户提示:根据正在汇总的资源组动态生成。

示例:

    Provide detailed documentation of the following ARM template for resource group: 


    {template_content}


    The purpose of this documentation is to...

通过保持这些提示的灵活性和简单性,脚本可以避免过度设计,同时仍然提供高质量的文档。

运行脚本

注意:在运行此脚本之前,您需要在计算机上安装 az CLI 和 python3。

设置和运行脚本非常简单:

  1. 登录 Azure:确保您已通过 Azure CLI 进行身份验证:
result = subprocess.run(
    ["az", "group", "list", "--query", "[].name", "-o", "tsv"],
    stdout=subprocess.PIPE,
    text=True,
)
resource_groups = result.stdout.splitlines()
  1. 运行脚本生成markdown文档:
export_command = [
    "az", "group", "export",
    "--name", resource_group_name,
    "--include-parameter-default-value",
    "--output", "json",
]

该脚本处理每个资源组,生成其 ARM 模板,并在输出目录中创建一个 markdown 文件。

示例输出

以下是脚本生成的示例:

response = client.chat.completions.create(model=model, messages=messages)

此输出简洁可读易于理解 - 正是您内部文档或知识库条目所需的内容。

结论

Azure 助手是一个完美的示例,展示了如何使用现有工具和基本的Python技能通过法学硕士取得强大的成果。当简单的脚本与 Azure CLI 和 OpenAI 的 API 相结合就可以为您的 Azure 资源组生成清晰、全面的文档时,无需复杂的代理框架。

该工具表明,通过正确的提示和坚实的结构,任何具有基本脚本编写技能的都可以利用人工智能来自动化云文档 - 使其成为任何 DevOps 或基础设施团队的宝贵助手。

以上是使用 AI 助手自动化 Azure 文档的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
您如何将元素附加到Python列表中?您如何将元素附加到Python列表中?May 04, 2025 am 12:17 AM

toAppendElementStoApythonList,usetheappend()方法forsingleements,Extend()formultiplelements,andinsert()forspecificpositions.1)useeAppend()foraddingoneOnelementAttheend.2)useextendTheEnd.2)useextendexendExendEnd(

您如何创建Python列表?举一个例子。您如何创建Python列表?举一个例子。May 04, 2025 am 12:16 AM

TocreateaPythonlist,usesquarebrackets[]andseparateitemswithcommas.1)Listsaredynamicandcanholdmixeddatatypes.2)Useappend(),remove(),andslicingformanipulation.3)Listcomprehensionsareefficientforcreatinglists.4)Becautiouswithlistreferences;usecopy()orsl

讨论有效存储和数值数据的处理至关重要的实际用例。讨论有效存储和数值数据的处理至关重要的实际用例。May 04, 2025 am 12:11 AM

金融、科研、医疗和AI等领域中,高效存储和处理数值数据至关重要。 1)在金融中,使用内存映射文件和NumPy库可显着提升数据处理速度。 2)科研领域,HDF5文件优化数据存储和检索。 3)医疗中,数据库优化技术如索引和分区提高数据查询性能。 4)AI中,数据分片和分布式训练加速模型训练。通过选择适当的工具和技术,并权衡存储与处理速度之间的trade-off,可以显着提升系统性能和可扩展性。

您如何创建Python数组?举一个例子。您如何创建Python数组?举一个例子。May 04, 2025 am 12:10 AM

pythonarraysarecreatedusiseThearrayModule,notbuilt-Inlikelists.1)importThearrayModule.2)指定tefifythetypecode,例如,'i'forineizewithvalues.arreaysofferbettermemoremorefferbettermemoryfforhomogeNogeNogeNogeNogeNogeNogeNATATABUTESFELLESSFRESSIFERSTEMIFICETISTHANANLISTS。

使用Shebang系列指定Python解释器有哪些替代方法?使用Shebang系列指定Python解释器有哪些替代方法?May 04, 2025 am 12:07 AM

除了shebang线,还有多种方法可以指定Python解释器:1.直接使用命令行中的python命令;2.使用批处理文件或shell脚本;3.使用构建工具如Make或CMake;4.使用任务运行器如Invoke。每个方法都有其优缺点,选择适合项目需求的方法很重要。

列表和阵列之间的选择如何影响涉及大型数据集的Python应用程序的整体性能?列表和阵列之间的选择如何影响涉及大型数据集的Python应用程序的整体性能?May 03, 2025 am 12:11 AM

ForhandlinglargedatasetsinPython,useNumPyarraysforbetterperformance.1)NumPyarraysarememory-efficientandfasterfornumericaloperations.2)Avoidunnecessarytypeconversions.3)Leveragevectorizationforreducedtimecomplexity.4)Managememoryusagewithefficientdata

说明如何将内存分配给Python中的列表与数组。说明如何将内存分配给Python中的列表与数组。May 03, 2025 am 12:10 AM

Inpython,ListSusedynamicMemoryAllocationWithOver-Asalose,而alenumpyArraySallaySallocateFixedMemory.1)listssallocatemoremoremoremorythanneededinentientary上,respizeTized.2)numpyarsallaysallaysallocateAllocateAllocateAlcocateExactMemoryForements,OfferingPrediCtableSageButlessemageButlesseflextlessibility。

您如何在Python数组中指定元素的数据类型?您如何在Python数组中指定元素的数据类型?May 03, 2025 am 12:06 AM

Inpython,YouCansspecthedatatAtatatPeyFelemereModeRernSpant.1)Usenpynernrump.1)Usenpynyp.dloatp.dloatp.ploatm64,formor professisconsiscontrolatatypes。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。