Mengurus dan mendokumentasikan Kumpulan Sumber Azure (RG) dalam persekitaran berskala besar boleh memakan masa dan rumit. Tetapi bagaimana jika anda boleh mengautomasikan proses penjanaan dokumentasi yang bukan sahaja menerangkan sumber yang wujud tetapi juga bagaimana ia berkaitan antara satu sama lain?
Dalam artikel ini, kita akan meneroka bagaimana skrip Python ringkas boleh memanfaatkan LLM (Model Bahasa Besar) seperti OpenAI atau Azure OpenAI untuk mengautomasikan penciptaan dokumentasi penurunan harga komprehensif daripada templat ARM. Apa yang menjadikan alat ini berkuasa bukanlah penggunaan rangka kerja ejen yang kompleks atau infrastruktur berat, tetapi Python tulen digabungkan dengan alat yang mantap seperti Azure CLI dan API OpenAI. Ia juga boleh digunakan dengan penyedia AI lain dan LLM tempatan menggunakan Ollama atau alatan lain yang serupa.
Salah tanggapan biasa ialah anda memerlukan rangka kerja ejen yang terperinci untuk memanfaatkan kuasa LLM dengan berkesan. Pada hakikatnya, anda boleh mencapai aliran kerja automatik yang berkuasa menggunakan alat sedia ada dan skrip mudah. Dalam penyelesaian ini, kami menggabungkan:
Hasilnya? Skrip yang bersih dan cekap yang mencipta dokumentasi tanpa memerlukan perkakas rumit atau orkestrasi berkuasa AI.
Kod sumber tersedia dalam repositori Github ini: itlackey/azure-assistants. Pada masa ini, ia mengandungi skrip Python tunggal yang memanfaatkan Azure CLI dan API OpenAI untuk menjana dokumentasi penurunan harga daripada templat ARM. Jika ada minat, atau saya memerlukan, repositori mungkin dikemas kini dengan alatan dan skrip tambahan untuk mengautomasikan tugasan lain.
Inti alat ini ialah skrip document_resource_groups.py. Ia melakukan empat perkara ini:
Langkah pertama ialah mengambil semua kumpulan sumber dalam Langganan Azure anda. Ini dilakukan menggunakan arahan az CLI daripada skrip Python kami. Kami kemudian mengulanginya untuk mengambil templat ARM.
result = subprocess.run( ["az", "group", "list", "--query", "[].name", "-o", "tsv"], stdout=subprocess.PIPE, text=True, ) resource_groups = result.stdout.splitlines()
Sekali lagi, menggunakan Azure CLI, skrip mendapatkan semula templat ARM untuk setiap kumpulan sumber dalam langganan semasa. Templat ini mengandungi maklumat konfigurasi terperinci untuk semua sumber, termasuk rangkaian dan tetapan keselamatannya.
export_command = [ "az", "group", "export", "--name", resource_group_name, "--include-parameter-default-value", "--output", "json", ]
Seterusnya, skrip menghantar templat ARM ke OpenAI (atau Azure OpenAI) untuk ringkasan. Di sinilah keajaiban berlaku. Daripada menyelami aliran kerja ejen yang kompleks, mesej sistem dan gesaan pengguna yang ringkas memberikan konteks yang mencukupi kepada LLM untuk menjana dokumentasi yang bernas.
response = client.chat.completions.create(model=model, messages=messages)
Gesaan menyediakan templat output yang dijangkakan dan mengarahkan LLM untuk:
Ini membolehkan LLM menghasilkan dokumentasi berstruktur dan mudah dibaca tanpa memerlukan sebarang orkestrasi yang mewah.
Langkah terakhir ialah menjana fail penurunan nilai yang mengandungi butiran kumpulan sumber. Perkara hadapan termasuk metadata seperti nama kumpulan sumber, tarikh dan teg. Dokumentasi yang dijana AI kemudiannya ditambahkan sebagai kandungan dokumen.
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 ialah format universal, membolehkan output ini disepadukan dengan mudah ke dalam banyak sistem dokumentasi atau sistem pengurusan pengetahuan.
Ciri utama skrip ini ialah keupayaan untuk menyesuaikan gesaan yang dihantar ke LLM. Di sinilah pengguna boleh memperhalusi jenis output yang mereka inginkan:
Contoh:
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.
Contoh:
Provide detailed documentation of the following ARM template for resource group: {template_content} The purpose of this documentation is to...
Dengan memastikan gesaan ini fleksibel dan mudah, skrip mengelakkan terlalu banyak kejuruteraan sambil tetap menyampaikan dokumentasi berkualiti tinggi.
Nota: Anda perlu memasang az CLI dan python3 pada mesin anda sebelum anda menjalankan skrip ini.
Menyedia dan menjalankan skrip adalah mudah:
result = subprocess.run( ["az", "group", "list", "--query", "[].name", "-o", "tsv"], stdout=subprocess.PIPE, text=True, ) resource_groups = result.stdout.splitlines()
export_command = [ "az", "group", "export", "--name", resource_group_name, "--include-parameter-default-value", "--output", "json", ]
Skrip memproses setiap kumpulan sumber, menjana templat ARMnya dan mencipta fail markdown dalam direktori output.
Berikut ialah contoh perkara yang dijana oleh skrip:
response = client.chat.completions.create(model=model, messages=messages)
Output ini ringkas, boleh dibaca dan mudah difahami - persis perkara yang anda perlukan untuk dokumentasi dalaman atau entri pangkalan pengetahuan.
Azure Assistants ialah contoh sempurna tentang cara anda boleh menggunakan alat sedia ada dan kemahiran asas Python untuk mencapai hasil yang hebat dengan LLM. Tidak ada keperluan untuk rangka kerja ejen yang terperinci apabila skrip ringkas, digabungkan dengan Azure CLI dan API OpenAI, boleh menjana dokumentasi yang jelas dan komprehensif untuk Kumpulan Sumber Azure anda.
Alat ini menunjukkan bahawa dengan gesaan yang betul dan struktur yang kukuh, sesiapa sahaja dengan kemahiran skrip asas boleh memanfaatkan AI untuk mengautomasikan dokumentasi awan - menjadikannya pembantu yang berharga untuk mana-mana pasukan DevOps atau infrastruktur.
Atas ialah kandungan terperinci Mengautomasikan Dokumentasi Azure dengan Pembantu AI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!