Sdílet prostřednictvím


Kurz: Vytvoření prototypu – Sestavení a vyhodnocení podnikového agenta

Tento kurz se zabývá první fází cesty vývojáře Microsoft Foundry: od počáteční myšlenky po funkční prototyp. Vytvoříte moderního pomocníka pro pracoviště , který kombinuje interní firemní znalosti s externími technickými pokyny pomocí sady Microsoft Foundry SDK.

Obchodní scénář: Vytvoření asistenta AI, který pomáhá zaměstnancům kombinací:

  • Zásady společnosti (z dokumentů SharePoint)
  • Technické pokyny k implementaci (z Microsoft Learn přes MCP)
  • Kompletní řešení (kombinování obou zdrojů pro obchodní implementaci)
  • Dávkové vyhodnocení pro ověření výkonnosti agenta v realistických obchodních scénářích

Výsledek kurzu: Na konci máte spuštěného Moderního pomocníka pro pracoviště, který dokáže odpovídat na zásady, technické a kombinované otázky implementace; opakovatelný dávkový zkušební skript; a jasné body rozšíření (další nástroje, vzory s více agenty, rozsáhlejší vyhodnocení).

Budete:

  • Vytvořte moderního pomocníka pro pracoviště s integrací SharePoint a MCP.
  • Předvedení skutečných obchodních scénářů kombinací interních a externích znalostí
  • Provádějte robustní zpracování chyb a kontrolované snížení funkčnosti.
  • Vytvoření testovací architektury pro testování zaměřené na firmy
  • Připravte základ pro zásady správného řízení a produkční nasazení.

Tato minimální ukázka demonstruje vzory připravené pro podniky s realistickými obchodními scénáři.

Důležité

Kód v tomto článku používá balíčky, které jsou aktuálně ve verzi Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v tématu Supplementální podmínky použití pro Microsoft Azure Verze Preview.

Předpoklady

  • Předplatné Azure. Pokud ho nemáte, vytvořte si ho zdarma.

  • Azure CLI 2.67.0 nebo novější, ověřeno pomocí az login (zkontrolujte az version)

  • Projekt Foundry s nasazeným modelem (například ). Pokud ho nemáte: Vytvořte projekt a pak nasaďte model (viz přehled modelu: Katalog modelů).

  • Python 3.10 nebo novější

  • .NET SDK 8.0 nebo novější (pro ukázku jazyka C#)

  • SharePoint připojení nakonfigurované v projektu (dokumentace k nástroji SharePoint)

    Poznámka:

    Pokud chcete nakonfigurovat projekt Foundry pro připojení SharePoint, přečtěte si dokumentaci k nástroji SharePoint.

  • (Volitelné) Git nainstalovaný pro klonování ukázkového úložiště

Krok 1: Získání ukázkového kódu

Místo navigace ve velkém stromu úložiště použijte jeden z těchto přístupů:

Možnost A (klonování celého úložiště ukázek)

Návod

Kód používá Azure AI projekty 2.x a není kompatibilní s Azure AI projekty 1.x. Zobrazit dokumentaci k Foundry (classic) pro verzi Azure AI Projects 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

Možnost B (řídké klonování, pouze pro tento návod – snížené stahování)

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

Možnost C (stáhnout SOUBOR ZIP úložiště)

Stáhněte soubor ZIP úložiště, extrahujte ho do místního prostředí a přejděte do složky kurzu.

Důležité

Pro přechod do produkčního prostředí použijte samostatné úložiště. V tomto kurzu se používá sdílené úložiště ukázek. Řídké pokladny minimalizují místní šum.

Po extrahování ZIP přejděte na samples/python/enterprise-agent-tutorial/1-idea-to-prototype.

Minimální struktura obsahuje pouze základní soubory:

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

Krok 2: Okamžité spuštění ukázky

Začněte spuštěním agenta, abyste viděli funkční funkce, než se ponoříte do podrobností implementace.

Nastavení prostředí a virtuální prostředí

  1. Nainstalujte požadované jazykové moduly runtime, globální nástroje a rozšíření pro Visual Studio Code, jak je popsáno v části Příprava vývojového prostředí.

  2. Ověřte, že vaše requirements.txt používá tyto publikované verze balíčků:

    azure-ai-projects>=2.0.0
    azure-identity
    python-dotenv
    openai
    
  3. Nainstalujte závislosti:

    python -m pip install -r requirements.txt
    

    Ověřte, že instalace proběhla úspěšně. Měli byste vidět Successfully installed azure-ai-projects-... (Python) nebo Restore completed (.NET) bez chyb.

  4. Na úvodní obrazovce projektu najděte koncový bod projektu.

    Snímek obrazovky úvodní obrazovky modelů Microsoft Foundry s adresou URL koncového bodu a tlačítkem kopírovat

  5. Konfigurujte .env.

    Nastavte hodnoty prostředí požadované pro váš jazyk.

Zkopírujte soubor .env.template do složky .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>

Potvrďte .env , že obsahuje platné hodnoty otevřením souboru a ověřením, že PROJECT_ENDPOINT začíná https:// a MODEL_DEPLOYMENT_NAME odpovídá názvu nasazeného modelu v projektu.

Návod

Id tenanta získáte spuštěním příkazu:

# Get tenant ID
az account show --query tenantId -o tsv

Pokud chcete získat koncový bod projektu, otevřete projekt na portálu Foundry a zkopírujte tam uvedenou hodnotu.

Spustit agenta a provést vyhodnocení

python main.py
python evaluate.py

Očekávaný výstup (první spuštění agenta)

Úspěšné spuštění s SharePoint:

🤖 Creating Modern Workplace Assistant...
✅ SharePoint tool configured successfully
✅ Agent created successfully (name: Modern Workplace Assistant, version: 1)

Elegantní degradace bez SharePoint:

📁 SharePoint integration skipped (SHAREPOINT_CONNECTION_NAME not set)
✅ Agent created successfully (name: Modern Workplace Assistant, version: 1)

Když teď máte funkčního agenta, v dalších částech se dozvíte, jak funguje. Při čtení těchto částí nemusíte nic dělat – jsou to vysvětlení.

Krok 3: Nastavení ukázkových SharePoint obchodních dokumentů

  1. Přejděte na web SharePoint (nakonfigurovaný v připojení).

  2. Vytvořte knihovnu dokumentů "Zásady společnosti" (nebo použijte existující dokumenty).

  3. Nahrajte čtyři ukázkové Word dokumenty uvedené ve složce sharepoint-sample-data:

    • remote-work-policy.docx
    • security-guidelines.docx
    • collaboration-standards.docx
    • data-governance-policy.docx
  4. Než budete pokračovat, ověřte, že se v knihovně zobrazují čtyři dokumenty.

Struktura vzorku

📁 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

Vysvětlení implementace pomocníka

Poznámka:

Tato část je určená pouze pro referenci – nevyžaduje se žádná akce. Vysvětluje kód, který jste už spustili.

Tato část vysvětluje základní kód v main.py (Python) nebo ModernWorkplaceAssistant/Program.cs (C#). Agenta jste už spustili. Po přečtení můžete:

  • Přidejte nové interní a externí datové nástroje.
  • Rozšiřte dynamické instrukce.
  • Zavedení orchestrace s více agenty
  • Vylepšení pozorovatelnosti a diagnostiky

Kód se rozdělí do následujících hlavních částí seřazených tak, jak se zobrazují v úplném vzorovém kódu:

  1. Konfigurace importů a ověřování
  2. Konfigurování ověřování na Azure
  3. Konfigurujte nástroj SharePoint
  4. Konfigurace nástroje MCP
  5. Vytvoření agenta a připojení nástrojů
  6. Komunikujte s agentem

Důležité

Kód v tomto článku používá balíčky, které jsou aktuálně ve verzi Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v tématu Supplementální podmínky použití pro Microsoft Azure Verze Preview.

Nastavení importu a ověřování

Kód používá několik klientských knihoven ze sady Microsoft Foundry SDK k vytvoření robustního podnikového agenta.

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,
)

Konfigurace ověřování v Azure

Než vytvoříte agenta, nastavte ověřování pro Foundry.

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}")

Vytvoření nástroje SharePoint pro agenta

Agent používá SharePoint a má přístup k firemním zásadám a dokumentům procedur uloženým v ní. Nastavte připojení pro SharePoint v kódu.

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)")

Vytvoření nástroje MCP pro agenta

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)")

Vytvoření agenta a připojení nástrojů

Vytvořte agenta a připojte nástroje SharePoint a 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

Komunikujte s agentem

Nakonec implementujte interaktivní smyčku pro interakci s agentem.

print("🤖 AGENT RESPONSE:")
response, status = create_agent_response(agent, scenario["question"], openai_client)

Očekávaný výstup z ukázkového kódu agenta

Při spuštění agenta se zobrazí výstup podobný následujícímu příkladu. Výstup ukazuje úspěšnou konfiguraci nástroje a odpovědi agenta na obchodní scénáře:

✅ 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

Krok 4: Vyhodnocení asistenta pomocí dávkového vyhodnocení

Testovací architektura testuje reálné obchodní scénáře pomocí funkce dávkového vyhodnocení sady Microsoft Foundry SDK. Místo vlastního místního přístupu tento model používá integrované vyhodnocovače (builtin.violence, builtin.fluency, builtin.task_adherence) a openai_client.evals rozhraní API ke spouštění škálovatelných a opakovatelných hodnocení v cloudu.

Tato architektura hodnocení ukazuje:

  • Cílení na agenta: Vyhodnocení spouští dotazy přímo proti vašemu agentovi za použití azure_ai_target_completions.
  • Integrované vyhodnocovače: Bezpečnost (detekce násilí), kvalita (plynulost) a metriky dodržování úkolů.
  • Cloudové spouštění: Eliminuje požadavky na místní výpočetní prostředky a podporuje integraci CI/CD.
  • Strukturované výsledky: Popisky pass/fail, skóre a důvody pro každý testovací případ.

Kód se rozdělí do následujících hlavních částí:

  1. Nakonfigurujte vyhodnocení.
  2. Spusťte dávkové vyhodnocení.
  3. Načtěte výsledky vyhodnocení.

Návod

Podrobné pokyny k dávkovému vyhodnocení najdete v tématu Spouštění vyhodnocení v cloudu. Úplný seznam předdefinovaných vyhodnocovačů dostupných v Foundry najdete v tématu Pozorovatelnost v generativní umělé inteligenci.

Poznámka:

Ukázka jazyka C# používá přístup místního dávkového vyhodnocení s ProjectResponsesClient místo cloudového rozhraní API openai_client.evals zobrazené v Pythonu. Odesílá do agenta dotazy, kontroluje odpovědi na očekávaná klíčová slova a zapisuje výsledky do evaluation_results.json. Podívejte se na ukázku sady SDK pro vyhodnocení C# pro vzory cloudového vyhodnocení v jazyce C#.

Konfigurace vyhodnocení

Nejprve vytvořte objekt vyhodnocení, který definuje vaše datové schéma a testovací kritéria. Vyhodnocení používá integrované vyhodnocovače pro detekci násilí, plynulost a dodržování úkolů.

V Python použijte přímo klienta OpenAI. V jazyce C# získejte EvaluationClient z klienta projektu:

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})")

Pole testing_criteria určuje, které vyhodnocovače se mají spustit:

  • builtin.violence: Detekuje násilné nebo škodlivé obsahy v odpovědích.
  • builtin.fluency: Vyhodnocuje kvalitu a čitelnost odpovědí (vyžaduje nasazení modelu).
  • builtin.task_adherence: Vyhodnotí, jestli agent správně postupoval podle pokynů.

Proveďte dávkového vyhodnocení

Vytvořte hodnotící běh, který cílí na vašeho agenta. Zdroj azure_ai_target_completions dat odesílá dotazy do vašeho agenta a zaznamenává odpovědi pro vyhodnocení:

# 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})")

Konfigurace data_source :

  • type: směruje dotazy prostřednictvím vašeho agenta. azure_ai_target_completions
  • zdroj: Vložený obsah s testovacími dotazy (můžete také použít ID souboru datové sady).
  • input_messages: Šablona, která formátuje každý dotaz pro agenta
  • target: Určuje název a verzi agenta, které se mají vyhodnotit.

Načtení výsledků vyhodnocení

Dotazujte se, dokud se vyhodnocení neskončí, a pak načtěte podrobné výstupní položky:

# 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")

Každá výstupní položka zahrnuje:

  • Popisek: Binární výsledek: "úspěch" nebo "neúspěch"
  • Skóre: Číselné skóre na stupnici vyhodnocovače
  • Důvod: Vysvětlení, proč bylo skóre přiřazeno (pro vyhodnocovače založené na LLM)

Očekávaný výstup dávkového vyhodnocení (evaluate.py)

Při spuštění zkušebního skriptu se zobrazí výstup podobný následujícímu příkladu. Výstup ukazuje vytvoření objektu vyhodnocení, spuštění odeslání a načtení výsledků:

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

Porozumění výsledkům vyhodnocení

Dávkové vyhodnocení poskytují strukturované výsledky, které můžete zobrazit na portálu Foundry nebo načíst programově. Každá výstupní položka zahrnuje:

Pole Description
Štítek Binární "pass" nebo "fail" na základě prahové hodnoty
Skóre Číselné skóre (měřítko závisí na typu vyhodnocovače)
Prahová hodnota Mezní hodnota, která určuje prospěl/neprospěl
Reason Vysvětlení skóre vygenerované LLM (pokud je k dispozici)

Měřítka skóre podle typu vyhodnocovače:

  • Vyhodnocovače kvality (plynulost, soudržnost): 1–5 stupnice
  • Bezpečnostní vyhodnocovače (násilí, sebepoškozování): závažnost 0–7 (nižší je bezpečnější)
  • Vyhodnocovače úkolů (task_adherence): měřítko 1–5

Podrobné výsledky můžete zobrazit také na portálu Foundry výběrem možnosti Vyhodnocení z projektu a výběrem spuštění vyhodnocení. Portál poskytuje vizualizace, filtrování a možnosti exportu.

Návod

V produkčních scénářích zvažte provedení vyhodnocení jako součást vašeho CI/CD procesu. Další informace o postupech integrace najdete v tématu Jak spustit vyhodnocení v Azure DevOps a Průběžně vyhodnocujte své AI agenty.

Řešení problémů

Příznaky Příčina Řešení
DefaultAzureCredential Chyba ověřování Azure CLI relace vypršela nebo nebyla přihlášena Spusťte az login a zkuste to znovu
Model deployment not found Název .env modelu neodpovídá nasazení v projektu Otevřete svůj projekt na portálu Foundry, zkontrolujte Nasazení, a aktualizujte potřebné položky v MODEL_DEPLOYMENT_NAME.env.
SharePoint tool configured, ale agent nemůže najít dokumenty Dokumenty nenahrané nebo nesprávný název připojení Ověřte, že se dokumenty zobrazují v knihovně SharePoint a že SHAREPOINT_CONNECTION_NAME odpovídá připojení v projektu.
Chyba časového limitu nebo připojení nástroje MCP Server MCP microsoft Learn je nedostupný Ověřte, že MCP_SERVER_URL je nastaveno na https://learn.microsoft.com/api/mcp a že vaše síť umožňuje odchozí HTTPS.
403 Forbidden na SharePoint Nedostatečná oprávnění na webu SharePoint Ověřte, že váš přihlášený uživatel má alespoň oprávnění Čtení ke knihovně dokumentů SharePoint.

Shrnutí

Teď máte:

  • Funkční prototyp jednoho agenta založený na interních a externích znalostech.
  • Opakovatelný zkušební skript demonstrující vzory podnikového ověřování.
  • Jasná cesta upgradu: více nástrojů, orchestrace s více agenty, rozsáhlejší vyhodnocení, nasazení.

Tyto vzory snižují tření prototypu do produkčního prostředí: můžete přidávat zdroje dat, vynucovat zásady správného řízení a integrovat monitorování bez přepisování základní logiky.

Další kroky

Tento kurz ukazuje fázi 1 cesty vývojáře – od nápadu po prototyp. Tato minimální ukázka poskytuje základ pro vývoj podnikové umělé inteligence. Pokud chcete pokračovat na cestě, prozkoumejte další fáze:

Navrhovaná další vylepšení

Fáze 2: Prototyp do produkčního prostředí

Fáze 3: Produkce k přijetí

Vyčistěte zdroje

Pokud už je nepotřebujete, odstraňte prostředky, které jste vytvořili v tomto kurzu:

  1. Delete agenta: Agent je automaticky odstraněn na konci main.py (Python) nebo Program.cs (C#). Pokud jste přerušili spuštění, odstraňte ho ručně ze stránky Agenti na portálu Foundry.
  2. Odstraňte spuštění vyhodnocení: Na portálu Foundry přejděte na Vyhodnocení, vyberte spuštění vyhodnocení a odstraňte ho.
  3. Odstranit ukázkové dokumenty SharePoint: Pokud jste nahráli ukázkové soubory na produkční web SharePoint, odeberte je z knihovny dokumentů.
  4. (Volitelné) Odstraňte projekt Foundry: Pokud jste vytvořili projekt pouze pro tento kurz, odstraňte ho z portálu Foundry a odeberte všechny přidružené zdroje.