خودکارسازی اسناد Azure با دستیار هوش مصنوعی

Summarize this content to 400 words in Persian Lang
مدیریت و مستندسازی Azure Resource Groups (RGs) در محیط های بزرگ می تواند زمان بر و پیچیده باشد. اما اگر بتوانید فرآیند تولید اسناد را خودکار کنید که نه تنها منابع موجود را توضیح میدهند، بلکه نحوه ارتباط آنها با یکدیگر را نیز توضیح میدهند؟
در این مقاله به بررسی چگونگی یک اسکریپت ساده پایتون می تواند اهرم کند LLM (مدل های زبان بزرگ) مانند OpenAI یا Azure OpenAI برای ایجاد خودکار اسناد علامت گذاری جامع از الگوهای ARM. چیزی که این ابزار را قدرتمند میکند استفاده از چارچوبهای عامل پیچیده یا زیرساختهای سنگین نیست، بلکه پایتون خالص همراه با ابزارهای جاافتادهای مانند Azure CLI و OpenAI's API است. حتی می توان از آن با سایر ارائه دهندگان هوش مصنوعی و LLM های محلی با استفاده از Olama یا سایر ابزارهای مشابه استفاده کرد.
بدون نیاز به چارچوب های پیچیده عامل
یک تصور غلط رایج این است که برای استفاده موثر از قدرت LLM به چارچوبهای عامل پیچیده نیاز دارید. در واقعیت، میتوانید با استفاده از ابزارهای موجود و اسکریپتهای ساده به گردشهای کاری قدرتمند و خودکار برسید. در این راه حل ترکیب می کنیم:
پایتون: به عنوان زبان برنامه نویسی که معمولاً نصب و استفاده می شود.
Azure CLI: برای واکشی الگوهای ARM از Azure Resource Groups.
تماس های OpenAI API: برای تولید اسناد قابل خواندن توسط انسان از الگوهای ARM.
مارک داون: به عنوان فرمت خروجی برای اسناد، که به راحتی در هر پایگاه دانش ادغام می شود.
نتیجه؟ یک اسکریپت تمیز و کارآمد که بدون نیاز به ابزارهای پیچیده یا ارکستراسیون مبتنی بر هوش مصنوعی اسنادی را ایجاد می کند.
کد منبع دستیاران Azure
کد منبع در این مخزن Github موجود است: itlackey/azure-assistants. در حال حاضر، شامل یک اسکریپت پایتون است که از Azure CLI و OpenAI API برای تولید اسناد علامت گذاری از قالب های ARM استفاده می کند. اگر علاقه ای وجود داشته باشد، یا من نیازی داشته باشم، ممکن است مخزن با ابزارها و اسکریپت های اضافی برای خودکارسازی سایر وظایف به روز شود.
اسکریپت چگونه کار می کند
قلب این ابزار اسکریپت document_resource_groups.py است. این چهار کار را انجام می دهد:
دریافت همه گروه های منابع در اشتراک فعلی Azure.
استفاده می کند az CLI به صادرات قالب های ARM از Azure Resource Groups.
ما الگوها را تجزیه کنید و آنها را به یک API سازگار با OpenAI ارسال کنید.
LLM استفاده می شود مستندات Markdown را ایجاد کنید که آماده گنجاندن در یک پایگاه دانش است.
فهرست گروه های منابع
اولین قدم این است که همه گروه های منابع را در اشتراک Azure خود واکشی کنید. این کار با استفاده از 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 اجازه می دهد تا اسناد ساختاریافته و خوانا را بدون نیاز به ارکستراسیون فانتزی تولید کند.
ایجاد مستندات Markdown
مرحله آخر، تولید یک فایل علامت گذاری است که حاوی جزئیات گروه منبع است. موضوع اصلی شامل ابرداده هایی مانند نام گروه منبع، تاریخ و برچسب ها است. سپس مستندات تولید شده توسط هوش مصنوعی به عنوان محتوای سند اضافه می شود.
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 یک قالب جهانی است که به این خروجی اجازه می دهد تا به راحتی در بسیاری از سیستم های مستندسازی یا سیستم های مدیریت دانش ادغام شود.
سفارشی کردن دستورات هوش مصنوعی
ویژگی کلیدی این اسکریپت توانایی دستورات را سفارشی کنید به 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 قبل از اجرای این اسکریپت روی دستگاه شما نصب شده اند.
تنظیم و اجرای اسکریپت ساده است:
وارد Azure شوید: مطمئن شوید که با Azure CLI احراز هویت شده اید:
az login
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اسکریپت را اجرا کنید برای تولید اسناد علامت گذاری:
python document_resource_groups.py
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اسکریپت هر گروه منبع را پردازش می کند، الگوی ARM آن را تولید می کند و یک فایل علامت گذاری در فهرست خروجی ایجاد می کند.
خروجی نمونه
در اینجا نمونه ای از آنچه اسکریپت تولید می کند آورده شده است:
—
title: “Resource Group: myResourceGroup”
date: 2024-10-23
internal: true
azureTags:
– environment: production
– owner: devops-team
—
# Resource Group: myResourceGroup
## Overview
This resource group contains a virtual network (VNet) with two subnets: front-end and back-end. The VNet is configured with a network security group (NSG) that restricts inbound traffic to HTTPS and SSH ports only. Resources in the front-end subnet include an Azure App Service for web hosting, while the back-end subnet hosts an Azure SQL Database…
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این خروجی است مختصر، قابل خواندن، و آسان برای درک – دقیقاً همان چیزی که برای اسناد داخلی یا ورودی های پایگاه دانش نیاز دارید.
نتیجه گیری
Azure Assistants نمونه کاملی از نحوه استفاده شماست ابزارهای موجود و اساسی پایتون مهارت هایی برای دستیابی به نتایج قدرتمند با LLM. وقتی اسکریپتهای ساده، همراه با Azure CLI و OpenAI API، میتوانند مستندات واضح و جامعی را برای گروههای منابع Azure شما ایجاد کنند، نیازی به چارچوبهای عامل پیچیده نیست.
این ابزار نشان می دهد که با دستورات مناسب و ساختاری محکم، هر کسی با مهارت های اولیه اسکریپت نویسی می توان از هوش مصنوعی برای خودکارسازی اسناد ابری استفاده کرد – و آن را به دستیار ارزشمندی برای هر تیم توسعه دهنده یا زیرساخت تبدیل می کند.
مدیریت و مستندسازی Azure Resource Groups (RGs) در محیط های بزرگ می تواند زمان بر و پیچیده باشد. اما اگر بتوانید فرآیند تولید اسناد را خودکار کنید که نه تنها منابع موجود را توضیح میدهند، بلکه نحوه ارتباط آنها با یکدیگر را نیز توضیح میدهند؟
در این مقاله به بررسی چگونگی یک اسکریپت ساده پایتون می تواند اهرم کند LLM (مدل های زبان بزرگ) مانند OpenAI یا Azure OpenAI برای ایجاد خودکار اسناد علامت گذاری جامع از الگوهای ARM. چیزی که این ابزار را قدرتمند میکند استفاده از چارچوبهای عامل پیچیده یا زیرساختهای سنگین نیست، بلکه پایتون خالص همراه با ابزارهای جاافتادهای مانند Azure CLI و OpenAI's API است. حتی می توان از آن با سایر ارائه دهندگان هوش مصنوعی و LLM های محلی با استفاده از Olama یا سایر ابزارهای مشابه استفاده کرد.
بدون نیاز به چارچوب های پیچیده عامل
یک تصور غلط رایج این است که برای استفاده موثر از قدرت LLM به چارچوبهای عامل پیچیده نیاز دارید. در واقعیت، میتوانید با استفاده از ابزارهای موجود و اسکریپتهای ساده به گردشهای کاری قدرتمند و خودکار برسید. در این راه حل ترکیب می کنیم:
- پایتون: به عنوان زبان برنامه نویسی که معمولاً نصب و استفاده می شود.
- Azure CLI: برای واکشی الگوهای ARM از Azure Resource Groups.
- تماس های OpenAI API: برای تولید اسناد قابل خواندن توسط انسان از الگوهای ARM.
- مارک داون: به عنوان فرمت خروجی برای اسناد، که به راحتی در هر پایگاه دانش ادغام می شود.
نتیجه؟ یک اسکریپت تمیز و کارآمد که بدون نیاز به ابزارهای پیچیده یا ارکستراسیون مبتنی بر هوش مصنوعی اسنادی را ایجاد می کند.
کد منبع دستیاران Azure
کد منبع در این مخزن Github موجود است: itlackey/azure-assistants. در حال حاضر، شامل یک اسکریپت پایتون است که از Azure CLI و OpenAI API برای تولید اسناد علامت گذاری از قالب های ARM استفاده می کند. اگر علاقه ای وجود داشته باشد، یا من نیازی داشته باشم، ممکن است مخزن با ابزارها و اسکریپت های اضافی برای خودکارسازی سایر وظایف به روز شود.
اسکریپت چگونه کار می کند
قلب این ابزار اسکریپت document_resource_groups.py است. این چهار کار را انجام می دهد:
- دریافت همه گروه های منابع در اشتراک فعلی Azure.
- استفاده می کند
az
CLI به صادرات قالب های ARM از Azure Resource Groups. - ما الگوها را تجزیه کنید و آنها را به یک API سازگار با OpenAI ارسال کنید.
- LLM استفاده می شود مستندات Markdown را ایجاد کنید که آماده گنجاندن در یک پایگاه دانش است.
فهرست گروه های منابع
اولین قدم این است که همه گروه های منابع را در اشتراک Azure خود واکشی کنید. این کار با استفاده از 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 اجازه می دهد تا اسناد ساختاریافته و خوانا را بدون نیاز به ارکستراسیون فانتزی تولید کند.
ایجاد مستندات Markdown
مرحله آخر، تولید یک فایل علامت گذاری است که حاوی جزئیات گروه منبع است. موضوع اصلی شامل ابرداده هایی مانند نام گروه منبع، تاریخ و برچسب ها است. سپس مستندات تولید شده توسط هوش مصنوعی به عنوان محتوای سند اضافه می شود.
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 یک قالب جهانی است که به این خروجی اجازه می دهد تا به راحتی در بسیاری از سیستم های مستندسازی یا سیستم های مدیریت دانش ادغام شود.
سفارشی کردن دستورات هوش مصنوعی
ویژگی کلیدی این اسکریپت توانایی دستورات را سفارشی کنید به 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 قبل از اجرای این اسکریپت روی دستگاه شما نصب شده اند.
تنظیم و اجرای اسکریپت ساده است:
- وارد Azure شوید: مطمئن شوید که با Azure CLI احراز هویت شده اید:
az login
- اسکریپت را اجرا کنید برای تولید اسناد علامت گذاری:
python document_resource_groups.py
اسکریپت هر گروه منبع را پردازش می کند، الگوی ARM آن را تولید می کند و یک فایل علامت گذاری در فهرست خروجی ایجاد می کند.
خروجی نمونه
در اینجا نمونه ای از آنچه اسکریپت تولید می کند آورده شده است:
---
title: "Resource Group: myResourceGroup"
date: 2024-10-23
internal: true
azureTags:
- environment: production
- owner: devops-team
---
# Resource Group: myResourceGroup
## Overview
This resource group contains a virtual network (VNet) with two subnets: front-end and back-end. The VNet is configured with a network security group (NSG) that restricts inbound traffic to HTTPS and SSH ports only. Resources in the front-end subnet include an Azure App Service for web hosting, while the back-end subnet hosts an Azure SQL Database...
این خروجی است مختصر، قابل خواندن، و آسان برای درک – دقیقاً همان چیزی که برای اسناد داخلی یا ورودی های پایگاه دانش نیاز دارید.
نتیجه گیری
Azure Assistants نمونه کاملی از نحوه استفاده شماست ابزارهای موجود و اساسی پایتون مهارت هایی برای دستیابی به نتایج قدرتمند با LLM. وقتی اسکریپتهای ساده، همراه با Azure CLI و OpenAI API، میتوانند مستندات واضح و جامعی را برای گروههای منابع Azure شما ایجاد کنند، نیازی به چارچوبهای عامل پیچیده نیست.
این ابزار نشان می دهد که با دستورات مناسب و ساختاری محکم، هر کسی با مهارت های اولیه اسکریپت نویسی می توان از هوش مصنوعی برای خودکارسازی اسناد ابری استفاده کرد – و آن را به دستیار ارزشمندی برای هر تیم توسعه دهنده یا زیرساخت تبدیل می کند.