>백엔드 개발 >파이썬 튜토리얼 >AI Assistant를 사용하여 Azure 문서 자동화

AI Assistant를 사용하여 Azure 문서 자동화

Susan Sarandon
Susan Sarandon원래의
2024-10-25 06:38:29511검색

Automating Azure Documentation with an AI Assistant

대규모 환경에서 Azure 리소스 그룹(RG)을 관리하고 문서화하는 것은 시간이 많이 걸리고 복잡할 수 있습니다. 하지만 어떤 리소스가 존재하는지뿐 아니라 리소스가 서로 어떻게 연관되어 있는지 설명하는 문서 생성 프로세스를 자동화할 수 있다면 어떨까요?

이 기사에서는 간단한 Python 스크립트OpenAI 또는 Azure OpenAI와 같은 LLM(Large Language Models)을 활용하는 방법을 살펴보겠습니다. ARM 템플릿에서 포괄적인 마크다운 문서 생성을 자동화합니다. 이 도구를 강력하게 만드는 것은 복잡한 에이전트 프레임워크나 무거운 인프라를 사용하는 것이 아니라 Azure CLI 및 OpenAI의 API와 같은 잘 확립된 도구와 결합된 순수 Python입니다. 다른 AI 제공업체 및 Ollama 또는 기타 유사한 도구를 사용하는 현지 LLM과 함께 사용할 수도 있습니다.

복잡한 에이전트 프레임워크가 필요하지 않음

일반적인 오해는 LLM의 기능을 효과적으로 활용하려면 정교한 상담사 프레임워크가 필요하다는 것입니다. 실제로는 기존 도구와 간단한 스크립트를 사용하여 강력하고 자동화된 워크플로를 달성할 수 있습니다. 이 솔루션에서는 다음을 결합합니다.

  1. Python: 일반적으로 설치되고 널리 사용되는 스크립트 언어입니다.
  2. Azure CLI: Azure 리소스 그룹에서 ARM 템플릿을 가져옵니다.
  3. OpenAI API 호출: ARM 템플릿에서 사람이 읽을 수 있는 문서를 생성합니다.
  4. 마크다운: 모든 지식 기반에 쉽게 통합되는 문서의 출력 형식입니다.

결과는? 복잡한 도구나 AI 기반 오케스트레이션 없이 문서를 생성하는 깔끔하고 효율적인 스크립트입니다.

Azure 도우미 소스 코드

소스 코드는 Github 리포지토리 itlackey/azure-assistants에서 사용할 수 있습니다. 현재 여기에는 Azure CLI 및 OpenAI API를 활용하여 ARM 템플릿에서 마크다운 문서를 생성하는 단일 Python 스크립트가 포함되어 있습니다. 관심이 있거나 필요한 경우 다른 작업을 자동화하기 위한 추가 도구 및 스크립트로 저장소를 업데이트할 수 있습니다.

스크립트 작동 방식

이 도구의 핵심은 document_resource_groups.py 스크립트입니다. 다음 네 가지 작업을 수행합니다.

  1. 현재 Azure 구독에서 모든 리소스 그룹을 가져옵니다.
  2. az CLI를 사용하여 Azure 리소스 그룹에서 ARM 템플릿을 내보냅니다.
  3. 저희는 템플릿을 구문 분석하여 OpenAI 호환 API로 보냅니다.
  4. LLM은 지식 베이스에 포함될 준비가 된 마크다운 문서 생성에 사용됩니다.

리소스 그룹 나열

첫 번째 단계는 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)로 보냅니다. 여기서 마법이 일어납니다. 복잡한 상담원 워크플로우에 뛰어드는 대신 간단한 시스템 메시지사용자 프롬프트를 통해 LLM에 충분한 컨텍스트를 제공하여 통찰력 있는 문서를 생성할 수 있습니다.

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

프롬프트는 예상되는 출력 템플릿을 제공하고 LLM에게 다음을 지시합니다.

  • 각 자료를 나열하고 설명하세요.
  • 리소스가 서로 어떻게 연관되어 있는지 설명하세요.
  • 중요한 네트워크 구성을 강조합니다.

이를 통해 LLM은 복잡한 조정 없이 구조화되고 읽기 쉬운 문서를 생성할 수 있습니다.

마크다운 문서 생성

마지막 단계는 리소스 그룹의 세부 정보가 포함된 마크다운 파일을 생성하는 것입니다. 머리말에는 리소스 그룹 이름, 날짜, 태그와 같은 메타데이터가 포함됩니다. 그러면 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"

마크다운은 범용 형식이므로 이 출력물을 여러 문서 시스템이나 지식 관리 시스템에 쉽게 통합할 수 있습니다.

AI 프롬프트 사용자 정의

이 스크립트의 주요 기능은 LLM에 전송되는 프롬프트를 사용자 정의하는 기능입니다. 여기에서 사용자가 원하는 출력 유형을 미세 조정할 수 있습니다.

  • 시스템 메시지: 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. 스크립트를 실행하여 마크다운 문서를 생성합니다.
export_command = [
    "az", "group", "export",
    "--name", resource_group_name,
    "--include-parameter-default-value",
    "--output", "json",
]

스크립트는 각 리소스 그룹을 처리하고 해당 ARM 템플릿을 생성하며 출력 디렉터리에 마크다운 파일을 생성합니다.

예제 출력

다음은 스크립트가 생성하는 내용의 예입니다.

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

이 출력은 간결하고, 읽기 쉽고, 이해하기 쉽습니다. 이는 내부 문서나 지식 기반 항목에 꼭 필요한 내용입니다.

결론

Azure Assistants는 기존 도구와 기본 Python 기술을 사용하여 LLM을 통해 강력한 결과를 얻을 수 있는 방법을 보여주는 완벽한 예입니다. Azure CLI 및 OpenAI의 API와 결합된 간단한 스크립트를 통해 Azure 리소스 그룹에 대한 명확하고 포괄적인 문서를 생성할 수 있으면 정교한 에이전트 프레임워크가 필요하지 않습니다.

이 도구는 올바른 프롬프트와 탄탄한 구조를 통해 기본 스크립팅 기술을 갖춘 누구나 AI를 활용하여 클라우드 문서화를 자동화할 수 있으며 모든 DevOps 또는 인프라 팀의 귀중한 보조자가 될 수 있음을 보여줍니다.

위 내용은 AI Assistant를 사용하여 Azure 문서 자동화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.