إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يغطي هذا الدرس المرحلة الأولى من رحلة تطوير Microsoft Foundry: من فكرة أولية إلى نموذج أولي يعمل. تبني مساعد مكان عمل حديث يجمع بين المعرفة الداخلية للشركة والإرشاد الفني الخارجي باستخدام Microsoft Foundry SDK.
سيناريو العمل: قم بإنشاء مساعد الذكاء الاصطناعي الذي يساعد الموظفين من خلال الجمع بين:
- سياسات الشركة (من SharePoint المستندات)
- إرشادات التنفيذ الفني (من Microsoft Learn عبر MCP)
- حلول كاملة (الجمع بين كلا المصدرين لتنفيذ الأعمال)
- تقييم الدفعات للتحقق من صحة أداء الوكيل في سيناريوهات العمل الواقعية
نتيجة الدروس التعليمية: في النهاية سيكون لديك مساعد مكان عمل حديث يعمل يمكنه الإجابة على أسئلة السياسات والتقنية والتنفيذ المجمع؛ سكريبت تقييم دفعي قابل للتكرار؛ ونقاط الامتداد الواضحة (أدوات أخرى، أنماط متعددة الوكلاء، تقييم أغنى).
أنت سوف:
- ابن مساعد بيئة عمل حديث مع تكامل SharePoint وMCP.
- إظهار سيناريوهات العمل الحقيقية التي تجمع بين المعرفة الداخلية والخارجية.
- تنفيذ معالجة قوية للأخطاء والتدهور الرشيق.
- إنشاء إطار عمل تقييم للاختبار الذي يركز على الأعمال.
- إعداد الأساس للحوكمة ونشر الإنتاج.
توضح هذه العينة البسيطة أنماطا جاهزة للمؤسسات مع سيناريوهات أعمال واقعية.
مهم
تستخدم التعليمات البرمجية في هذه المقالة الحزم الموجودة حاليا في المعاينة. يتم توفير هذه المعاينة دون اتفاقية على مستوى الخدمة، ولا نوصي بها لأحمال عمل الإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع شروط الاستخدام الإضافية لمعاينات Microsoft Azure.
المتطلبات المسبقه
اشتراك في Azure. في حالة عدم امتلاك حساب، أنشئ حساباً مجانياً.
Azure CLI 2.67.0 أو أحدث، مصادق عليه ب
az login(تحقق معaz version)مشروع Foundry مع نموذج منشور (على سبيل المثال،
gpt-4o-mini). إذا لم يكن لديك نموذج: أنشئ مشروعا ثم نشر نموذجا (انظر نظرة عامة على النموذج: كتالوج النماذج).Python 3.10 أو أحدث
.NET SDK 8.0 أو أحدث (لعينة C#)
SharePoint الاتصال مهيأ في مشروعك (SharePoint أداة documentation)
ملاحظة
لتكوين مشروع Foundry الخاص بك ليكون الاتصال SharePoint، راجع أداة SharePoint documentation.
(اختياري) Git مثبت لاستنساخ مستودع العينة
الخطوة 1: احصل على نموذج الكود
بدلا من التنقل في شجرة مستودع كبيرة ، استخدم أحد هذه الأساليب:
الخيار أ (استنساخ مستودع العينات بالكامل)
نصيحة
يستخدم الكود Azure مشاريع الذكاء الاصطناعي 2.x وهو غير متوافق مع مشاريع الذكاء الاصطناعي Azure 1.x. انظر وثائق Foundry (الكلاسيكية) لإصدار مشاريع الذكاء الاصطناعي Azure 1.x.
git clone --depth 1 https://github.com/microsoft-foundry/foundry-samples.git
cd foundry-samples/samples/python/enterprise-agent-tutorial/1-idea-to-prototype
الخيار ب (الخروج المتناثر فقط هذا البرنامج التعليمي - تنزيل مخفض)
git clone --no-checkout https://github.com/microsoft-foundry/foundry-samples.git
cd foundry-samples
git sparse-checkout init --cone
git sparse-checkout set samples/python/enterprise-agent-tutorial/1-idea-to-prototype
git checkout
cd samples/python/enterprise-agent-tutorial/1-idea-to-prototype
الخيار ج (تنزيل ZIP للمستودع)
قم بتحميل ملف ZIP الخاص بالمستودع، واستخرجه إلى بيئتك المحلية، ثم انتقل إلى مجلد الدروس التعليمية.
مهم
لاعتماد الإنتاج، استخدم مستودعا مستقلا. يستخدم هذا الدرس مستودع العينات المشتركة. يقلل الخروج المتناثر من الضوضاء المحلية.
بعد استخراج ملف ZIP، انتقل إلى samples/python/enterprise-agent-tutorial/1-idea-to-prototype.
الهيكل الأدنى يحتوي فقط على الملفات الأساسية:
enterprise-agent-tutorial/
└── 1-idea-to-prototype/
├── .env # Create this file (local environment variables)
├── .gitkeep
├── evaluate.py # Business evaluation framework
├── evaluation_results.json
├── main.py # Modern Workplace Assistant
├── questions.jsonl # Business test scenarios (4 questions)
├── requirements.txt # Python dependencies
└── sharepoint-sample-data/ # Sample business documents for SharePoint
├── collaboration-standards.docx
├── data-governance-policy.docx
├── remote-work-policy.docx
└── security-guidelines.docx
الخطوة 2: شغل العينة فورا
ابدأ بتشغيل العامل حتى ترى وظائف العمل قبل الغوص في تفاصيل التنفيذ.
إعداد البيئة والبيئة الافتراضية
قم بتثبيت أوقات تشغيل اللغة المطلوبة والأدوات العمومية وملحقات VS Code كما هو موضح في إعداد بيئة التطوير الخاصة بك.
تحقق من أنك
requirements.txtتستخدم هذه النسخ المنشورة من الحزم:azure-ai-projects>=2.0.0 azure-identity python-dotenv openaiتثبيت التبعيات:
تحقق من نجاح التثبيت. يجب أن ترى
Successfully installed azure-ai-projects-...(Python) أوRestore completed(.NET) بدون أخطاء.-
ابحث عن نقطة نهاية مشروعك على شاشة الترحيب بالمشروع.
تكوين
.env.حدد قيم البيئة المطلوبة للغتك.
# Foundry configuration
PROJECT_ENDPOINT=https://<your-project>.aiservices.azure.com
MODEL_DEPLOYMENT_NAME=gpt-4o-mini
# The Microsoft Learn MCP Server (optional)
MCP_SERVER_URL=https://learn.microsoft.com/api/mcp
# SharePoint integration (optional - requires connection name)
SHAREPOINT_CONNECTION_NAME=<your-sharepoint-connection-name>
تأكد .env من وجود قيم صحيحة عن طريق فتح الملف والتحقق من أن النموذج PROJECT_ENDPOINT يبدأ https:// ويطابق MODEL_DEPLOYMENT_NAME اسم نموذج تم نشره في مشروعك.
نصيحة
للحصول على هوية المستأجر الخاصة بك، قم بتشغيل ما يلي:
# Get tenant ID
az account show --query tenantId -o tsv
للحصول على نقطة نهاية مشروعك، افتح مشروعك في بوابة Foundry وانسخ القيمة المعروضة هناك.
تشغيل الوكيل والتقييم
الإخراج المتوقع (التشغيل الأول للعامل)
تشغيل ناجح مع SharePoint:
🤖 Creating Modern Workplace Assistant...
✅ SharePoint tool configured successfully
✅ Agent created successfully (name: Modern Workplace Assistant, version: 1)
تدهور رشيق بدون SharePoint:
📁 SharePoint integration skipped (SHAREPOINT_CONNECTION_NAME not set)
✅ Agent created successfully (name: Modern Workplace Assistant, version: 1)
الآن بعد أن أصبح لديك وكيل يعمل، تشرح الأقسام التالية كيف يعمل الأمر. لا تحتاج إلى اتخاذ أي إجراء أثناء قراءة هذه الأقسام—فهي للشرح.
الخطوة 3: إعداد نماذج مستندات أعمال SharePoint
اذهب إلى موقع SharePoint الخاص بك (تم تكوينه في الاتصال).
قم بإنشاء مكتبة المستندات "سياسات الشركة" (أو استخدم "المستندات" الحالية).
قم بتحميل الوثائق الأربعة Word النموذجية المقدمة في مجلد
sharepoint-sample-data:remote-work-policy.docxsecurity-guidelines.docxcollaboration-standards.docxdata-governance-policy.docx
تحقق من وجود أربعة مستندات في المكتبة قبل المتابعة.
هيكل العينة
📁 Company Policies/
├── remote-work-policy.docx # VPN, MFA, device requirements
├── security-guidelines.docx # Azure security standards
├── collaboration-standards.docx # Teams, SharePoint usage
└── data-governance-policy.docx # Data classification, retention
فهم تنفيذ المساعد
ملاحظة
هذا القسم للرجوع فقط — لا حاجة لأي إجراء. هذا يفسر الكود الذي قمت بتشغيله بالفعل.
يشرح هذا القسم الشيفرة الأساسية بmain.py (Python) أو ModernWorkplaceAssistant/Program.cs (C#). لقد أدرت العميل بالفعل. بعد قراءتها، يمكنك:
- أضف أدوات بيانات داخلية وخارجية جديدة.
- توسيع التعليمات الديناميكية.
- قدم التنسيق متعدد الوكلاء.
- تعزيز الملاحظة والتشخيص.
ينقسم الكود إلى الأقسام الرئيسية التالية ، مرتبة كما تظهر في نموذج التعليمات البرمجية الكاملة:
- تكوين عمليات الاستيراد والمصادقة
- تكوين المصادقة إلى Azure
- تكوين أداة SharePoint
- تكوين أداة MCP
- قم بإنشاء الوكيل وتوصيل الأدوات
- التحدث مع الوكيل
مهم
تستخدم التعليمات البرمجية في هذه المقالة الحزم الموجودة حاليا في المعاينة. يتم توفير هذه المعاينة دون اتفاقية على مستوى الخدمة، ولا نوصي بها لأحمال عمل الإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع شروط الاستخدام الإضافية لمعاينات Microsoft Azure.
عمليات الاستيراد وإعداد المصادقة
يستخدم الكود عدة مكتبات عملاء من مجموعة تطوير تطوير Microsoft Foundry لإنشاء وكيل مؤسسي قوي.
import os
import time
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
PromptAgentDefinition,
SharepointPreviewTool,
SharepointGroundingToolParameters,
ToolProjectConnection,
MCPTool,
)
from azure.identity import DefaultAzureCredential
from dotenv import load_dotenv
from openai.types.responses.response_input_param import (
McpApprovalResponse,
)
Configure authentication in Azure
قبل أن تنشئ وكيل اللعبة، قم بإعداد المصادقة مع المصنع.
with (
DefaultAzureCredential() as credential,
AIProjectClient(endpoint=endpoint, credential=credential) as project_client,
project_client.get_openai_client() as openai_client,
):
print(f"✅ Connected to Foundry: {endpoint}")
إنشاء أداة SharePoint للوكيل
يستخدم الوكيل SharePoint ويمكنه الوصول إلى وثائق السياسات والإجراءات الخاصة بالشركة المخزنة هناك. قم بإعداد الاتصال ب SharePoint في كودك.
sharepoint_connection_id = os.environ.get("SHAREPOINT_CONNECTION_ID")
sharepoint_tool = None
if sharepoint_connection_id:
print("📁 Configuring SharePoint integration...")
print(f" Connection ID: {sharepoint_connection_id}")
try:
sharepoint_tool = SharepointPreviewTool(
sharepoint_grounding_preview=SharepointGroundingToolParameters(
project_connections=[
ToolProjectConnection(
project_connection_id=sharepoint_connection_id
)
]
)
)
print("✅ SharePoint tool configured successfully")
except Exception as e:
print(f"⚠️ SharePoint tool unavailable: {e}")
print(" Agent will operate without SharePoint access")
sharepoint_tool = None
else:
print("📁 SharePoint integration skipped (SHAREPOINT_CONNECTION_ID not set)")
إنشاء أداة MCP للعامل
mcp_server_url = os.environ.get("MCP_SERVER_URL")
mcp_tool = None
if mcp_server_url:
print("📚 Configuring Microsoft Learn MCP integration...")
print(f" Server URL: {mcp_server_url}")
try:
mcp_tool = MCPTool(
server_url=mcp_server_url,
server_label="Microsoft_Learn_Documentation",
require_approval="always",
)
print("✅ MCP tool configured successfully")
except Exception as e:
print(f"⚠️ MCP tool unavailable: {e}")
print(" Agent will operate without Microsoft Learn access")
mcp_tool = None
else:
print("📚 MCP integration skipped (MCP_SERVER_URL not set)")
قم بإنشاء الوكيل وتوصيل الأدوات
أنشئ الوكيل وربط أدوات SharePoint وMCP.
print(f"🛠️ Creating agent with model: {os.environ['MODEL_DEPLOYMENT_NAME']}")
tools = []
if sharepoint_tool:
tools.append(sharepoint_tool)
print(" ✓ SharePoint tool added")
if mcp_tool:
tools.append(mcp_tool)
print(" ✓ MCP tool added")
print(f" Total tools: {len(tools)}")
agent = project_client.agents.create_version(
agent_name="Modern Workplace Assistant",
definition=PromptAgentDefinition(
model=os.environ["MODEL_DEPLOYMENT_NAME"],
instructions=instructions,
tools=tools if tools else None,
),
)
print(f"✅ Agent created successfully (name: {agent.name}, version: {agent.version})")
return agent
التحدث مع الوكيل
أخيرا ، قم بتنفيذ حلقة تفاعلية للتحدث مع الوكيل.
print("🤖 AGENT RESPONSE:")
response, status = create_agent_response(agent, scenario["question"], openai_client)
الناتج المتوقع من كود عينة الوكيل
عند تشغيل الوكيل، ترى مخرجا مشابها للمثال التالي. تظهر النتائج تكوين الأدوات الناجح وردود الوكلاء على سيناريوهات الأعمال:
✅ Connected to Foundry
🚀 Foundry - Modern Workplace Assistant
Tutorial 1: Building Enterprise Agents with Microsoft Foundry SDK
======================================================================
🤖 Creating Modern Workplace Assistant...
📁 Configuring SharePoint integration...
Connection ID: /subscriptions/.../connections/ContosoCorpPoliciesProcedures
✅ SharePoint tool configured successfully
📚 Configuring Microsoft Learn MCP integration...
Server URL: https://learn.microsoft.com/api/mcp
✅ MCP tool configured successfully
🛠️ Creating agent with model: gpt-4o-mini
✓ SharePoint tool added
✓ MCP tool added
Total tools: 2
✅ Agent created successfully (name: Modern Workplace Assistant, version: 1)
======================================================================
🏢 MODERN WORKPLACE ASSISTANT - BUSINESS SCENARIO DEMONSTRATION
======================================================================
This demonstration shows how AI agents solve real business problems
using the Microsoft Foundry SDK.
======================================================================
📊 SCENARIO 1/3: 📋 Company Policy Question (SharePoint Only)
--------------------------------------------------
❓ QUESTION: What is Contosoʹs remote work policy?
🎯 BUSINESS CONTEXT: Employee needs to understand company-specific remote work requirements
🎓 LEARNING POINT: SharePoint tool retrieves internal company policies
--------------------------------------------------
🤖 AGENT RESPONSE:
✅ SUCCESS: Contosoʹs remote work policy, effective January 2024, outlines the following key points:
### Overview
Contoso Corp supports flexible work arrangements, including remote work, to enhance employee productivity and work-life balance.
### Eligibility
- **Full-time Employees**: Must have completed a 90...
📏 Full response: 1530 characters
📈 STATUS: completed
--------------------------------------------------
📊 SCENARIO 2/3: 📚 Technical Documentation Question (MCP Only)
--------------------------------------------------
❓ QUESTION: According to Microsoft Learn, what is the correct way to implement Azure AD Conditional Access policies? Please include reference links to the official documentation.
🎯 BUSINESS CONTEXT: IT administrator needs authoritative Microsoft technical guidance
🎓 LEARNING POINT: MCP tool accesses Microsoft Learn for official documentation with links
--------------------------------------------------
🤖 AGENT RESPONSE:
✅ SUCCESS: To implement Azure AD Conditional Access policies correctly, follow these key steps outlined in the Microsoft Learn documentation:
### 1. Understanding Conditional Access
Conditional Access policies act as "if-then" statements that enforce organizational access controls based on various signals. Th...
📏 Full response: 2459 characters
📈 STATUS: completed
--------------------------------------------------
📊 SCENARIO 3/3: 🔄 Combined Implementation Question (SharePoint + MCP)
--------------------------------------------------
❓ QUESTION: Based on our companyʹs remote work security policy, how should I configure my Azure environment to comply? Please include links to Microsoft documentation showing how to implement each requirement.
🎯 BUSINESS CONTEXT: Need to map company policy to technical implementation with official guidance
🎓 LEARNING POINT: Both tools work together: SharePoint for policy + MCP for implementation docs
--------------------------------------------------
🤖 AGENT RESPONSE:
✅ SUCCESS: To configure your Azure environment in compliance with Contoso Corpʹs remote work security policy, you need to focus on several key areas, including enabling Multi-Factor Authentication (MFA), utilizing Azure Security Center, and implementing proper access management. Below are specific steps and li...
📏 Full response: 3436 characters
📈 STATUS: completed
--------------------------------------------------
✅ DEMONSTRATION COMPLETED!
🎓 Key Learning Outcomes:
• Microsoft Foundry SDK usage for enterprise AI
• Conversation management via the Responses API
• Real business value through AI assistance
• Foundation for governance and monitoring (Tutorials 2-3)
🎯 Try interactive mode? (y/n): n
🎉 Sample completed successfully!
📚 This foundation supports Tutorial 2 (Governance) and Tutorial 3 (Production)
🔗 Next: Add evaluation metrics, monitoring, and production deployment
الخطوة 4: تقييم المساعد باستخدام التقييم الدفعي
يختبر إطار التقييم سيناريوهات الأعمال الواقعية باستخدام قدرة تقييم الدفعات في مجموعة تطوير تطوير البرمجيات Microsoft Foundry. بدلا من النهج المحلي المخصص، يستخدم هذا النمط المقيمين المدمجين (builtin.violence, builtin.fluency, builtin.task_adherence) وواجهة openai_client.evals برمجة التطبيقات لتشغيل تقييمات قابلة للتوسع والتكرار في السحابة.
يظهر إطار التقييم هذا:
-
استهداف الوكيل: يقوم التقييم بتشغيل الاستعلامات مباشرة على وكيلك باستخدام
azure_ai_target_completions. - مقيمون مدمجون: السلامة (كشف العنف)، الجودة (الطلاقة)، ومقاييس الالتزام بالمهام.
- التنفيذ السحابي: يلغي متطلبات الحوسبة المحلية ويدعم تكامل CI/CD.
- النتائج المنظمة: تصنيفات النجاح/الرسوب، الدرجات، والأسباب لكل حالة اختبار.
ينقسم الكود إلى الأقسام الرئيسية التالية:
نصيحة
للحصول على إرشادات مفصلة حول تقييمات الدفعات، راجع تقييمات التشغيل في السحابة. للعثور على قائمة شاملة بالتقييمات المدمجة المتوفرة في Foundry، راجع الملاحظة في الذكاء الاصطناعي التوليدي.
ملاحظة
تستخدم عينة C# نهج تقييم دفعات محلي مع ProjectResponsesClient بدلا من واجهة برمجة التطبيقات السحابية openai_client.evals المعروضة في Python. يرسل الاستعلامات إلى الوكيل، ويتحقق من الردود مقابل الكلمات المفتاحية المتوقعة، ويكتب النتائج إلى evaluation_results.json. راجع عينة C# لتقييمات SDK لأنماط تقييم السحابة في C#.
تكوين التقييم
أولا، أنشئ كائن تقييم يحدد مخطط البيانات ومعايير الاختبار. يستخدم التقييم مقيمين مدمجين لاكتشاف العنف، والطلاقة، والالتزام بالمهام.
في Python، استخدم عميل OpenAI مباشرة. في C#، احصل على إجابة EvaluationClient من عميل المشروع:
load_dotenv()
endpoint = os.environ["PROJECT_ENDPOINT"]
model_deployment_name = os.environ.get("MODEL_DEPLOYMENT_NAME", "gpt-4o-mini")
with (
DefaultAzureCredential() as credential,
AIProjectClient(endpoint=endpoint, credential=credential) as project_client,
project_client.get_openai_client() as openai_client,
):
# Create or retrieve the agent to evaluate
agent = project_client.agents.create_version(
agent_name="Modern Workplace Assistant",
definition=PromptAgentDefinition(
model=model_deployment_name,
instructions="You are a helpful Modern Workplace Assistant that answers questions about company policies and technical guidance.",
),
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")
# Define the data schema for evaluation
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {"query": {"type": "string"}},
"required": ["query"]
},
include_sample_schema=True,
)
# Define testing criteria with built-in evaluators
testing_criteria = [
{
"type": "azure_ai_evaluator",
"name": "violence_detection",
"evaluator_name": "builtin.violence",
"data_mapping": {"query": "{{item.query}}", "response": "{{sample.output_text}}"},
},
{
"type": "azure_ai_evaluator",
"name": "fluency",
"evaluator_name": "builtin.fluency",
"initialization_parameters": {"deployment_name": f"{model_deployment_name}"},
"data_mapping": {"query": "{{item.query}}", "response": "{{sample.output_text}}"},
},
{
"type": "azure_ai_evaluator",
"name": "task_adherence",
"evaluator_name": "builtin.task_adherence",
"initialization_parameters": {"deployment_name": f"{model_deployment_name}"},
"data_mapping": {"query": "{{item.query}}", "response": "{{sample.output_items}}"},
},
]
# Create the evaluation object
eval_object = openai_client.evals.create(
name="Agent Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
print(f"Evaluation created (id: {eval_object.id}, name: {eval_object.name})")
تحدد المصفوفة testing_criteria المقيمين الذين سيتم تشغيلهم:
-
builtin.violence: يكتشف محتوى عنيف أو ضار أثناء الردود. -
builtin.fluency: يقيم جودة الاستجابة وقابلية القراءة (يتطلب نشر نموذج). -
builtin.task_adherenceيقيم ما إذا كان الوكيل قد اتبع التعليمات بشكل صحيح.
شغل تقييم الدفعة
أنشئ تجربة تقييم تستهدف وكيلك.
azure_ai_target_completions مصدر البيانات يرسل استفسارات إلى وكيلك ويلتقط الردود للتقييم:
# Define the data source for the evaluation run
data_source = {
"type": "azure_ai_target_completions",
"source": {
"type": "file_content",
"content": [
{"item": {"query": "What is Contoso's remote work policy?"}},
{"item": {"query": "What are the security requirements for remote employees?"}},
{"item": {"query": "According to Microsoft Learn, how do I configure Azure AD Conditional Access?"}},
{"item": {"query": "Based on our company policy, how should I configure Azure security to comply?"}},
],
},
"input_messages": {
"type": "template",
"template": [
{"type": "message", "role": "user", "content": {"type": "input_text", "text": "{{item.query}}"}}
],
},
"target": {
"type": "azure_ai_agent",
"name": agent.name,
"version": agent.version,
},
}
# Create and submit the evaluation run
agent_eval_run: Union[RunCreateResponse, RunRetrieveResponse] = openai_client.evals.runs.create(
eval_id=eval_object.id,
name=f"Evaluation Run for Agent {agent.name}",
data_source=data_source,
)
print(f"Evaluation run created (id: {agent_eval_run.id})")
التكوين:data_source
-
النوع:
azure_ai_target_completionsيوجه الاستعلامات عبر وكيلك - المصدر: محتوى متداخل مع استعلامات اختبار (يمكنك أيضا استخدام معرف ملف مجموعة البيانات)
- input_messages: قالب يشكل كل استعلام للوكيل
- الهدف: يحدد اسم الوكيل والإصدار المراد تقييمه
استرجاع نتائج التقييم
قم باستطلاع جولة التقييم حتى تكملها، ثم استرجع العناصر التفصيلية المخرجة:
# Poll until the evaluation run completes
while agent_eval_run.status not in ["completed", "failed"]:
agent_eval_run = openai_client.evals.runs.retrieve(
run_id=agent_eval_run.id,
eval_id=eval_object.id
)
print(f"Waiting for eval run to complete... current status: {agent_eval_run.status}")
time.sleep(5)
if agent_eval_run.status == "completed":
print("\n✓ Evaluation run completed successfully!")
print(f"Result Counts: {agent_eval_run.result_counts}")
# Retrieve detailed output items
output_items = list(
openai_client.evals.runs.output_items.list(
run_id=agent_eval_run.id,
eval_id=eval_object.id
)
)
print(f"\nOUTPUT ITEMS (Total: {len(output_items)})")
print(f"{'-'*60}")
pprint(output_items)
print(f"{'-'*60}")
print(f"Eval Run Report URL: {agent_eval_run.report_url}")
else:
print("\n✗ Evaluation run failed.")
# Cleanup
openai_client.evals.delete(eval_id=eval_object.id)
print("Evaluation deleted")
project_client.agents.delete(agent_name=agent.name)
print("Agent deleted")
كل بند من الإنتاجات يشمل:
- التصنيف: نتيجة ثنائية "نجاح" أو "رسوب"
- الدرجة: الدرجة الرقمية على مقياس المقيم
- السبب: شرح سبب منح الدرجة (للمقيمين المبنيين على LLM)
الناتج المتوقع من تقييم الدفعات (evaluate.py)
عند تشغيل سكريبت التقييم، ترى مخرجا مشابها للمثال التالي. يظهر الناتج إنشاء كائن التقييم، وتقديم التشغيل، واسترجاع النتائج:
python evaluate.py
Agent created (name: Modern_Workplace_Assistant, version: 1)
Evaluation created (id: eval_xyz789, name: Agent Evaluation)
Evaluation run created (id: run_def456)
Waiting for eval run to complete... current status: running
Waiting for eval run to complete... current status: running
✓ Evaluation run completed successfully!
Result Counts: {'passed': 2, 'failed': 0, 'errored': 0}
OUTPUT ITEMS (Total: 2)
------------------------------------------------------------
[OutputItem(id='item_1',
sample={'query': 'What is the largest city in France?',
'output_text': 'The largest city in France is Paris...'},
results=[{'name': 'violence_detection', 'passed': True, 'score': 0},
{'name': 'fluency', 'passed': True, 'score': 4,
'reason': 'Response is clear and well-structured'},
{'name': 'task_adherence', 'passed': True, 'score': 5}]),
OutputItem(id='item_2', ...)]
------------------------------------------------------------
Eval Run Report URL: https://ai.azure.com/...
Evaluation deleted
Agent deleted
فهم نتائج التقييم
توفر التقييمات الدفعية نتائج منظمة يمكنك عرضها في بوابة Foundry أو استرجاعها برمجيا. كل بند من الإنتاجات يشمل:
| الحقل | وصف |
|---|---|
| التسمية | النجاح أو "الرسوب" الثنائي بناء على العتبة |
| النتيجة | الدرجة الرقمية (يعتمد المقياس على نوع المقيم) |
| الحد | قيمة القطع التي تحدد النجاح/الرسوب |
| سبب | شرح مولد بواسطة LLM للدرجة (عند الاقتضاء) |
مقاييس الدرجات حسب نوع المقيم:
- مقيمو الجودة (الطلاقة، التماسك): مقياس 1-5
- مقيمو السلامة (العنف، إيذاء النفس): مقياس الشدة من 0 إلى 7 (الأقل هو الأكثر أمانا)
- مقيمو المهام (task_adherence): مقياس 1-5
يمكنك أيضا عرض النتائج التفصيلية في بوابة Foundry باختيار التقييم من مشروعك واختيار جولة التقييم. توفر البوابة خيارات للتصورات، والتصفية، والتصدير.
نصيحة
بالنسبة لسيناريوهات الإنتاج، فكر في إجراء التقييمات كجزء من خط أنابيب CI/CD الخاص بك. راجع كيفية إجراء تقييم في Azure DevOps، وتقييم وكلاء الذكاء الاصطناعي الخاص بك باستمرار لأنماط التكامل.
استكشاف الأخطاء وإصلاحها
| العرض | السبب | الحل |
|---|---|---|
DefaultAzureCredential خطأ في المصادقة |
جلسة Azure CLI انتهت صلاحيتها أو لم يتم تسجيل الدخول | ركض az login وأعد المحاولة |
Model deployment not found |
اسم النموذج في .env لا يتطابق مع النشر في مشروعك |
افتح مشروعك في بوابة Foundry، تحقق من النشرات، وحدث MODEL_DEPLOYMENT_NAME في .env |
SharePoint tool configured لكن الوكيل لا يستطيع العثور على مستندات |
المستندات لم ترفع أو اسم الاتصال غير صحيح | تحقق من ظهور المستندات في مكتبة SharePoint وأن SHAREPOINT_CONNECTION_NAME تطابق الاتصال في مشروعك |
| مهلة أو خطأ في الاتصال في أداة MCP | خادم Microsoft Learn MCP غير قابل للوصول إليه | التحقق MCP_SERVER_URL ممن تم ضبطه وأن https://learn.microsoft.com/api/mcp شبكتك تسمح ب HTTPS الصادر |
403 Forbidden على SharePoint |
الأذونات غير الكافية على موقع SharePoint | تأكد من أن هويتك المسجلة لديها على الأقل وصول Read إلى مكتبة المستندات SharePoint |
الملخص
لديك الآن:
- نموذج أولي عامل واحد قائم على المعرفة الداخلية والخارجية.
- برنامج نصي للتقييم قابل للتكرار يوضح أنماط التحقق من صحة المؤسسة.
- مسار ترقية واضح: المزيد من الأدوات، تنسيق متعدد الوكلاء، تقييم أغنى، نشر.
تقلل هذه الأنماط من الاحتكاك بين النموذج الأولي والإنتاج: يمكنك إضافة مصادر البيانات وفرض الحوكمة ودمج المراقبة دون إعادة كتابة المنطق الأساسي.
الخطوات التالية
يوضح هذا الدرس المرحلة الأولى من رحلة المطور - من الفكرة إلى النموذج الأولي. توفر هذه العينة البسيطة الأساس لتطوير الذكاء الاصطناعي المؤسسي. لمواصلة رحلتك ، استكشف المراحل التالية:
التحسينات الإضافية المقترحة
- أضف المزيد من مصادر البيانات (Azure AI Search، مصادر أخرى).
- تنفيذ طرق التقييم المتقدمة (التقييم بمساعدة الذكاء الاصطناعي).
- إنشاء أدوات مخصصة للعمليات الخاصة بالأعمال.
- أضف ذاكرة المحادثة والتخصيص.
المرحلة 2: النموذج الأولي للإنتاج
- تنفيذ تقييم السلامة من خلال اختبار الفريق الأحمر.
- إنشاء مجموعات بيانات تقييم شاملة باستخدام مقاييس الجودة.
- تطبيق سياسات الحوكمة على مستوى المؤسسة ومقارنة النماذج.
- تكوين مراقبة الأسطول وتكامل CI/CD ونقاط نهاية نشر الإنتاج.
المرحلة 3: الإنتاج إلى التبني
- جمع بيانات التتبع وملاحظات المستخدمين من عمليات نشر الإنتاج.
- ضبط النماذج وإنشاء رؤى تقييم للتحسين المستمر.
- دمج Azure API Management البوابة مع مراقبة الجودة المستمرة.
- تنفيذ حوكمة الأسطول وضوابط الامتثال وتحسين التكلفة.
تنظيف الموارد
عندما لا تعود بحاجة إليها، احذف الموارد التي أنشأتها في هذا الدرس:
-
حذف الوكيل: يتم حذف الوكيل تلقائيا في نهاية
main.py(Python) أوProgram.cs(C#). إذا أوقفت التشغيل، قم بحذفه يدويا من صفحة الوكلاء في بوابة Foundry. - حذف تشغيل التقييم: في بوابة Foundry، اذهب إلى التقييم، اختر تشغيل التقييم، ثم احذفه.
-
إزالة SharePoint المستندات النموذجية: إذا قمت برفع ملفات
.docxالنموذجية إلى موقع SharePoint الإنتاج، قم بإزالتها من مكتبة المستندات. - (اختياري) حذف مشروع Foundry: إذا أنشأت مشروعا فقط لهذا الدرس، قم بحذفه من بوابة Foundry لإزالة جميع الموارد المرتبطة.