Průběžné vyhodnocování agentů AI (Preview) (Classic)

Platí jenom pro:Portál Foundry (Classic). Tento článek není k dispozici pro nový portál Foundry. Přečtěte si další informace o novém portálu.

Poznámka

Odkazy v tomto článku můžou otevírat obsah v nové dokumentaci Microsoft Foundry místo dokumentace Foundry (classic), kterou si právě prohlížíte.

Poznámka

Tento dokument se týká portálu Microsoft Foundry (classic). Pokud chcete průběžně vyhodnocovat používání portálu Microsoft Foundry (nový), přečtěte si téma Nastavení průběžného vyhodnocování.

Důležité

Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public 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.

Průběžné vyhodnocování agentů poskytuje téměř v reálném čase pozorovatelnost a monitorování pro vaši aplikaci AI. Jakmile je tato funkce povolená, průběžně vyhodnocuje interakce agentů s nastavenou vzorkovací frekvencí, aby poskytovala přehled o kvalitě, bezpečnosti a výkonu s metrikami, které se zobrazí na řídicím panelu Foundry Observability. Pomocí průběžného hodnocení můžete včas identifikovat a řešit problémy, optimalizovat výkon agenta a udržovat bezpečnost. Vyhodnocení jsou také připojená k trasování. povolení podrobného ladění a analýzy původní příčiny.

Požadavky

Poznámka

Pro tuto funkci musíte použít projekt Foundry . Projekt založený na centru není podporovaný. Podívejte se na jak zjistit, jaký typ projektu máte a vytvořte projekt Foundry. Pokud chcete migrovat projekt založený na centru na projekt Foundry, přečtěte si téma Migrace z hubu do projektů Foundry.

Postup připojení Application Insights

  1. Přihlaste se k Microsoft Foundry. Ujistěte se, že je přepínač New Foundry vypnutý. Tyto kroky odkazují na Foundry (classic).

  2. V nabídce vlevo vyberte Monitorování a přejděte na Analýzu aplikací.

  3. Připojte prostředek Application Insights k projektu.

Nastavení průběžných hodnocení pomocí klientské knihovny Azure AI Projects

pip install azure-ai-projects azure-identity

Vytvořte spuštění agenta

import os, json
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

project_client = AIProjectClient(
    credential=DefaultAzureCredential(), endpoint=os.environ["PROJECT_ENDPOINT"]
)

agent = project_client.agents.create_agent(
    model=os.environ["MODEL_DEPLOYMENT_NAME"],
    name="my-assistant",
    instructions="You are a helpful assistant",
    tools=file_search_tool.definitions,
    tool_resources=file_search_tool.resources,
)

# Create thread and process user message
thread = project_client.agents.threads.create()
project_client.agents.messages.create(thread_id=thread.id, role="user", content="Hello, what Contoso products do you know?")
run = project_client.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)

# Handle run status
if run.status == "failed":
    print(f"Run failed: {run.last_error}")

# Print thread messages
for message in project_client.agents.messages.list(thread_id=thread.id).text_messages:
    print(message)

Vyberte hodnotitele

Dále chcete definovat sadu vyhodnocovačů, které chcete spouštět nepřetržitě. Další informace o podporovaných vyhodnocovacích nástrojích najdete v tématu Předdefinované vyhodnocovače.

from azure.ai.projects.models import EvaluatorIds

evaluators={
"Relevance": {"Id": EvaluatorIds.Relevance.value},
"Fluency": {"Id": EvaluatorIds.Fluency.value},
"Coherence": {"Id": EvaluatorIds.Coherence.value},
},

Pokračujte ve vyhodnocování běhu svého agenta vytvořením AgentEvaluationRequest

                      
project_client.evaluation.create_agent_evaluation(
    AgentEvaluationRequest(  
        thread=thread.id,  
        run=run.id,   
        evaluators=evaluators,
        appInsightsConnectionString = project_client.telemetry.get_application_insights_connection_string(),
    )
)

Získání výsledku vyhodnocení pomocí Application Insights


from azure.core.exceptions import HttpResponseError
from azure.identity import DefaultAzureCredential
from azure.monitor.query import LogsQueryClient, LogsQueryStatus
import pandas as pd

credential = DefaultAzureCredential()
client = LogsQueryClient(credential)

query = f"""
traces
| where message == "gen_ai.evaluation.result"
| where customDimensions["gen_ai.thread.run.id"] == "{run.id}"
"""

try:
    response = client.query_workspace(os.environ["LOGS_WORKSPACE_ID"], query, timespan=timedelta(days=1))
    if response.status == LogsQueryStatus.SUCCESS:
        data = response.tables
    else:
        # LogsQueryPartialResult - handle error here
        error = response.partial_error
        data = response.partial_data
        print(error)

    for table in data:
        df = pd.DataFrame(data=table.rows, columns=table.columns)
        key_value = df.to_dict(orient="records")
        pprint(key_value)
except HttpResponseError as err:
    print("something fatal happened")
    print(err)

Zachyťte vysvětlení odůvodnění výsledku vyhodnocení.

Vyhodnocovače s asistencí umělé inteligence využívají řetězové úvahy k vygenerování vysvětlení skóre ve výsledku vyhodnocení. Pokud to chcete povolit, nastavte v objektu AgentEvaluationRedactionConfiguration hodnotu redact_score_properties na False a předejte ji jako součást požadavku.

To vám pomůže pochopit důvod za skóre pro každou metriku.

Poznámka

Vysvětlení důvodů mohou zmínit citlivé informace na základě obsahu konverzace.


from azure.ai.projects.models import AgentEvaluationRedactionConfiguration
              
project_client.evaluation.create_agent_evaluation(
    AgentEvaluationRequest(  
        thread=thread.id,  
        run=run.id,   
        evaluators=evaluators,  
        redaction_configuration=AgentEvaluationRedactionConfiguration(
            redact_score_properties=False,
       ),
        app_insights_connection_string=app_insights_connection_string,
    )
)

Přizpůsobení konfigurace vzorkování

Konfiguraci vzorkování můžete přizpůsobit definováním a určením AgentEvaluationSamplingConfiguration upřednostňovaného procenta vzorkování a maximálního počtu požadavků za hodinu v rámci systémového limitu 1 000 za hodinu.


from azure.ai.projects.models 

sampling_config = AgentEvaluationSamplingConfiguration (  
    name = agent.id,  
    samplingPercent = 100,       # Percentage of sampling per hour (0-100)
    maxRequestRate = 250,       # Maximum request rate per hour (0-1000)
)                                
project_client.evaluation.create_agent_evaluation(
    AgentEvaluationRequest(  
        thread=thread.id,  
        run=run.id,   
        evaluators=evaluators,  
        samplingConfiguration = sampling_config,  
        appInsightsConnectionString = project_client.telemetry.get_application_insights_connection_string(),
    )
)

Poznámka

Pokud více aplikací umělé inteligence odesílá data průběžného vyhodnocování do stejného prostředku Application Insights, doporučuje se použít název služby k rozlišení dat aplikace. Podrobnosti najdete v tématu Azure AI Tracing.

Zobrazení výsledků průběžného hodnocení

Po nasazení aplikace do produkčního prostředí pomocí průběžného vyhodnocování můžete monitorovat kvalitu a bezpečnost agenta pomocí Foundry a Azure Monitor.