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

Tento kurz se věnuje první fázi cesty vývojáře Microsoft Foundry: od počátečního nápadu po funkční prototyp. Vytvoříte modern workplace assistant, 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í:

  • Politiky společnosti (z dokumentů SharePoint)
  • Pokyny k technické implementaci (od Microsoft Learn přes MCP)
  • Kompletní řešení (kombinování obou zdrojů pro obchodní implementaci)
  • Dávkové vyhodnocení pro ověření výkonu agentů 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í
  • Implementujte robustní zpracování chyb a hladkou degradaci funkcionality.
  • 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 nemusí být podporované nebo můžou mít omezené možnosti. Další informace najdete v tématu Supplementální podmínky použití pro Microsoft Azure Verze Preview.

Požadavky

  • 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 gpt-4o-mini). 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ě

Důležité

Verze sady SDK a struktura ukázkového úložiště se můžou po publikování změnit. Než začnete, projděte si soubor README ukázkového úložiště s nejnovějšími pokyny k instalaci, požadovanými verzemi balíčků a konfigurací prostředí. Pokud není verze odkazovaná v tomto kurzu dostupná pro PyPI nebo NuGet, použijte místo toho nejnovější publikovanou verzi.

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

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

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

Tip

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é odhlášení pouze tento návod – omezované 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é runtime pro jazyk, globální nástroje a rozšíření VS Code, jak je popsáno v části Příprava vývojového prostředí.

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

    azure-ai-projects>=2.0.0
    python-dotenv
    
  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 uvítací obrazovky Microsoft Foundry Models zobrazující URL koncového bodu a tlačítko pro kopírování.

  5. Konfigurujte .env.

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

Kopírovat .env.template do .env.

# Foundry configuration
FOUNDRY_PROJECT_ENDPOINT=https://<your-project>.aiservices.azure.com
FOUNDRY_MODEL_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 FOUNDRY_PROJECT_ENDPOINT začíná https:// a FOUNDRY_MODEL_NAME odpovídá názvu nasazeného modelu v projektu.

Tip

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.

Spuštění agenta a 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.

Ukázková struktura

📁 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. Promluvte si 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 nemusí být podporované nebo můžou 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['FOUNDRY_MODEL_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["FOUNDRY_MODEL_NAME"],
        instructions=instructions,
        tools=tools if tools else None,
    ),
)

print(f"✅ Agent created successfully (name: {agent.name}, version: {agent.version})")

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í

Rámec hodnocení testuje reálné obchodní scénáře pomocí funkce dávkového vyhodnocování sady nástrojů 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 pomocí 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í.

Tip

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ého 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 od klienta projektu:

load_dotenv()
endpoint = os.environ["FOUNDRY_PROJECT_ENDPOINT"]
model_deployment_name = os.environ.get("FOUNDRY_MODEL_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ů.

Spuštění dávkového vyhodnocení

Vytvořte zkušební spuštění, 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: Dvojhodnotový 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

Pochopení výsledků 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 Popis
Popisek Binární "uspěje" nebo "neuspěje" na základě prahové hodnoty
Skóre Číselné skóre (měřítko závisí na typu vyhodnocovače)
Prahová hodnota Hraniční hodnota, která určuje splnění/nesplnění
Důvod 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.

Tip

V produkčních scénářích zvažte provádění hodnocení jako součást pipeline CI/CD. Informace o vzorech integrace najdete v tématu Jak spustit vyhodnocení v Azure DevOps a Průběžně vyhodnocovat agenty AI.

Řešení potíží

Příznak Příčina Rozliš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 projekt na portálu Foundry, zkontrolujte nasazení a aktualizujte FOUNDRY_MODEL_NAME v .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 knihovna služby SharePoint a že SHAREPOINT_CONNECTION_NAME odpovídá připojení v projektu.
Chyba časového limitu nebo připojení nástroje MCP Microsoft server LEARN MCP je nedostupný Ověřte, zda je MCP_SERVER_URL nastaveno na https://learn.microsoft.com/api/mcp a zda vaše síť umožňuje odchozí HTTPS.
403 Forbidden na SharePoint Nedostatečná oprávnění na webu SharePoint Ověřte, že identita, pod kterou jste přihlášen(a), má alespoň přístup ke čtení do knihovny 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: Od produkce k přijetí

Vyčištění prostředků

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

  1. Smazat agenta: Agent se automaticky odstraní 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. Odeberte ukázkové dokumenty ze SharePointu: Pokud jste nahráli ukázkové soubory .docx 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.