Automatisation de la documentation Azure avec un assistant IA

Susan Sarandon
Libérer: 2024-10-25 06:38:29
original
503 Les gens l'ont consulté

Automating Azure Documentation with an AI Assistant

La gestion et la documentation des groupes de ressources Azure (RG) dans des environnements à grande échelle peuvent prendre du temps et être compliquées. Mais et si vous pouviez automatiser le processus de génération de documentation qui explique non seulement quelles ressources existent, mais aussi comment elles sont liées les unes aux autres ?

Dans cet article, nous explorerons comment un script Python simple peut exploiter les LLM (Large Language Models) comme OpenAI ou Azure OpenAI pour automatiser la création d'une documentation complète de démarques à partir de modèles ARM. Ce qui rend cet outil puissant n'est pas l'utilisation de frameworks d'agents complexes ou d'infrastructures lourdes, mais du Python pur combiné à des outils bien établis comme Azure CLI et l'API d'OpenAI. Il peut même être utilisé avec d'autres fournisseurs d'IA et des LLM locaux utilisant Ollama ou d'autres outils similaires.

Pas besoin de cadres d'agents complexes

Une idée fausse courante est que vous avez besoin de cadres d'agents élaborés pour exploiter efficacement la puissance des LLM. En réalité, vous pouvez réaliser des flux de travail puissants et automatisés à l’aide d’outils existants et de scripts simples. Dans cette solution, nous combinons :

  1. Python : En tant que langage de script tel qu'il est couramment installé et largement utilisé.
  2. Azure CLI : pour récupérer des modèles ARM à partir des groupes de ressources Azure.
  3. Appels API OpenAI : pour générer une documentation lisible par l'homme à partir de modèles ARM.
  4. Markdown : comme format de sortie de la documentation, qui s'intègre facilement dans n'importe quelle base de connaissances.

Le résultat ? Un script propre et efficace qui crée de la documentation sans avoir besoin d'outils compliqués ni d'orchestration basée sur l'IA.

Code source des Assistants Azure

Le code source est disponible dans ce dépôt Github : itlackey/azure-assistants. Actuellement, il contient un seul script Python qui exploite Azure CLI et l'API OpenAI pour générer une documentation de démarque à partir de modèles ARM. S'il y a un intérêt ou si j'ai un besoin, le référentiel peut être mis à jour avec des outils et des scripts supplémentaires pour automatiser d'autres tâches.

Comment fonctionne le script

Le cœur de cet outil est le script document_resource_groups.py. Il fait ces quatre choses :

  1. Obtenir tous les groupes de ressources dans l'abonnement Azure actuel.
  2. Utilise az CLI pour Exporter des modèles ARM à partir de groupes de ressources Azure.
  3. Nous Analysons les modèles et les envoyons à une API compatible OpenAI.
  4. Le LLM est utilisé pour Générer une documentation Markdown prête à être incluse dans une base de connaissances.

Répertorier les groupes de ressources

La première étape consiste à récupérer tous les groupes de ressources de votre abonnement Azure. Cela se fait à l’aide de la commande az CLI de notre script Python. Nous les parcourons ensuite pour récupérer le modèle ARM.

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

Exporter des modèles ARM

Encore une fois, à l'aide d'Azure CLI, le script récupère les modèles ARM pour chaque groupe de ressources dans l'abonnement actuel. Ces modèles contiennent des informations de configuration détaillées pour toutes les ressources, y compris leurs paramètres de réseau et de sécurité.

export_command = [
    "az", "group", "export",
    "--name", resource_group_name,
    "--include-parameter-default-value",
    "--output", "json",
]
Copier après la connexion
Copier après la connexion

Résumer avec les LLM

Ensuite, le script envoie le modèle ARM à OpenAI (ou Azure OpenAI) pour résumé. C'est ici que la magie opère. Au lieu de plonger dans des flux de travail complexes d'agent, un simple message système et une invite utilisateur fournissent suffisamment de contexte au LLM pour générer une documentation pertinente.

response = client.chat.completions.create(model=model, messages=messages)
Copier après la connexion
Copier après la connexion

L'invite fournit un modèle de sortie attendu et demande au LLM de :

  • Répertoriez et décrivez chaque ressource.
  • Expliquez comment les ressources sont liées les unes aux autres.
  • Mettez en surbrillance les configurations réseau importantes.

Cela permet au LLM de produire une documentation structurée et facile à lire sans avoir besoin d'une orchestration sophistiquée.

Génération de la documentation Markdown

La dernière étape consiste à générer un fichier de démarque contenant les détails du groupe de ressources. Le contenu inclut des métadonnées telles que le nom du groupe de ressources, la date et les balises. La documentation générée par l'IA est ensuite ajoutée comme contenu du document.

front_matter = f"---\n"
front_matter += f'title: "{resource_group_name}"\n'
front_matter += f"date: {date}\n"
front_matter += f"internal: true\n"
Copier après la connexion

Markdown est un format universel, permettant à cette sortie de s'intégrer facilement dans de nombreux systèmes de documentation ou systèmes de gestion des connaissances.

Personnalisation des invites IA

Une caractéristique clé de ce script est la possibilité de personnaliser les invites envoyées au LLM. C'est ici que les utilisateurs peuvent affiner le type de sortie qu'ils souhaitent :

  • Message système : guide le LLM pour générer une documentation axée sur l'explication des ressources, des relations et du réseautage.

Exemple :

    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.
Copier après la connexion
  • Invite utilisateur : générée dynamiquement en fonction du groupe de ressources en cours de résumé.

Exemple :

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


    {template_content}


    The purpose of this documentation is to...
Copier après la connexion

En gardant ces invites flexibles et simples, le script évite une ingénierie excessive tout en fournissant une documentation de haute qualité.

Exécuter le script

Remarque : vous devrez avoir installé az CLI et python3 sur votre ordinateur avant d'exécuter ce script.

La configuration et l'exécution du script sont simples :

  1. Connectez-vous à Azure : assurez-vous que vous êtes authentifié auprès d'Azure CLI :
result = subprocess.run(
    ["az", "group", "list", "--query", "[].name", "-o", "tsv"],
    stdout=subprocess.PIPE,
    text=True,
)
resource_groups = result.stdout.splitlines()
Copier après la connexion
Copier après la connexion
  1. Exécutez le script pour générer la documentation de démarque :
export_command = [
    "az", "group", "export",
    "--name", resource_group_name,
    "--include-parameter-default-value",
    "--output", "json",
]
Copier après la connexion
Copier après la connexion

Le script traite chaque groupe de ressources, génère son modèle ARM et crée un fichier markdown dans le répertoire de sortie.

Exemple de sortie

Voici un exemple de ce que le script génère :

response = client.chat.completions.create(model=model, messages=messages)
Copier après la connexion
Copier après la connexion

Ce résultat est concis, lisible et facile à comprendre - exactement ce dont vous avez besoin pour la documentation interne ou les entrées de la base de connaissances.

Conclusion

Azure Assistants est un exemple parfait de la façon dont vous pouvez utiliser les outils existants et les compétences de base en Python pour obtenir des résultats puissants avec les LLM. Il n'est pas nécessaire de recourir à des frameworks d'agents élaborés lorsque de simples scripts, combinés à Azure CLI et à l'API d'OpenAI, peuvent générer une documentation claire et complète pour vos groupes de ressources Azure.

Cet outil démontre qu'avec les bonnes invites et une structure solide, toute personne possédant des compétences de base en matière de script peut tirer parti de l'IA pour automatiser la documentation cloud, ce qui en fait un assistant précieux pour toute équipe DevOps ou d'infrastructure.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal