首页  >  文章  >  后端开发  >  使用 AI 助手自动化 Azure 文档

使用 AI 助手自动化 Azure 文档

Susan Sarandon
Susan Sarandon原创
2024-10-25 06:38:29411浏览

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