Zdieľať cez


Vyhodnotenie vášho údajového agenta (Preview)

Vyhodnotenie pomocou súpravy Fabric SDK vám umožní programovo testovať, ako dobre váš dátový agent reaguje na otázky v prirodzenom jazyku. Pomocou jednoduchého rozhrania jazyka Python môžete definovať príklady základné pravdy, spúšťať hodnotenia a analyzovať výsledky – to všetko v rámci prostredia poznámkového bloku. Vďaka tomu môžete overiť presnosť, chyby ladenia a s istotou zlepšiť agenta pred jeho nasadením do produkcie.

Požiadavky

Inštalácia súpravy SDK pre údajového agenta

Ak chcete začať s vyhodnocovaním agenta údajov služby Fabric pomocou programovania, musíte nainštalovať súpravu SDK služby Fabric Data Agent. Táto súprava SDK poskytuje nástroje a metódy potrebné na interakciu s vaším agentom údajov, spúšťanie hodnotení a výsledky denníka. Nainštalujte najnovšiu verziu spustením nasledujúceho príkazu v notebooku:

%pip install -U fabric-data-agent-sdk

Týmto krokom sa zabezpečí, že v súprave SDK máte k dispozícii najdávnejšie funkcie a opravyup-to.

Načítanie množiny údajov s pravdou podľa vašej krajiny

Na vyhodnotenie agenta údajov služby Fabric potrebujete množinu vzorových otázok spolu s očakávanými odpoveďami. Tieto otázky sa používajú na overenie toho, ako presne agent reaguje na reálne dotazy.

Tieto otázky môžete definovať priamo vo svojom kóde pomocou údajového rámca Pandas:

import pandas as pd

# Define a sample evaluation set with user questions and their expected answers.
# You can modify the question/answer pairs to match your scenario.
df = pd.DataFrame(
    columns=["question", "expected_answer"],
    data=[
        ["Show total sales for Canadian Dollar for January 2013", "46,117.30"],
        ["What is the product with the highest total sales for Canadian Dollar in 2013", "Mountain-200 Black, 42"],
        ["Total sales outside of the US", "19,968,887.95"],
        ["Which product category had the highest total sales for Canadian Dollar in 2013", "Bikes (Total Sales: 938,654.76)"]
    ]
)

Prípadne, ak máte existujúcu skúšobnú množinu údajov, môžete ju načítať zo súboru CSV s otázkou pre stĺpce a expected_answer:

# Load questions and expected answers from a CSV file
input_file_path = "/lakehouse/default/Files/Data/Input/curated_2.csv"
df = pd.read_csv(input_file_path)

Táto množina údajov slúži ako vstup pre spustenie automatizovaných hodnotení údajových agentov na posúdenie presnosti a pokrytia.

Vyhodnotenie a posúdenie vášho dátového agenta

Ďalším krokom je spustenie vyhodnocovania pomocou evaluate_data_agent funkcie . Táto funkcia porovná odpovede agenta s vašimi očakávanými výsledkami a uloží metriky hodnotenia.

from fabric.dataagent.evaluation import evaluate_data_agent

# Name of your Data Agent
data_agent_name = "AgentEvaluation"

# (Optional) Name of the workspace if the Data Agent is in a different workspace
workspace_name = None

# (Optional) Name of the output table to store evaluation results (default: "evaluation_output")
# Two tables will be created:
# - "<table_name>": contains summary results (e.g., accuracy)
# - "<table_name>_steps": contains detailed reasoning and step-by-step execution
table_name = "demo_evaluation_output"

# Specify the Data Agent stage: "production" (default) or "sandbox"
data_agent_stage = "production"

# Run the evaluation and get the evaluation ID
evaluation_id = evaluate_data_agent(
    df,
    data_agent_name,
    workspace_name=workspace_name,
    table_name=table_name,
    data_agent_stage=data_agent_stage
)

print(f"Unique ID for the current evaluation run: {evaluation_id}")

Získanie súhrnu hodnotenia

Po spustení hodnotenia môžete pomocou get_evaluation_summary funkcie načítať súhrn výsledkov vysokej úrovne. Táto funkcia poskytuje prehľad o celkovom výkone vášho agenta údajov vrátane metrík, ako napríklad počtu odpovedí zodpovedalo očakávaným odpovediam.

from fabric.dataagent.evaluation import get_evaluation_summary

# Retrieve a summary of the evaluation results
df = get_evaluation_summary(table_name)

Snímka obrazovky znázorňujúca súhrn výsledkov hodnotenia agenta údajov.

Táto funkcia predvolene vyhľadá tabuľku s názvom evaluation_output. Ak ste počas hodnotenia zadali vlastný názov tabuľky (napríkladdemo_evaluation_output " "), tento názov zadajte ako table_name argument.

Vrátený údajový rámec obsahuje agregované metriky, napríklad počet správnych, nesprávnych alebo nejasných odpovedí. Vďaka tomuto výsledku môžete rýchlo posúdiť presnosť agenta a identifikovať oblasti na zlepšenie.

get_evaluation_summary

Vráti údajový rámec obsahujúci súhrnné metriky vysokej úrovne pre dokončené spustenie hodnotenia, ako je napríklad počet správnych, nesprávnych a nejasných odpovedí.

get_evaluation_summary(table_name='evaluation_output', verbose=False)

Vstupné parametre:

  • table_name (str, voliteľné) – názov tabuľky obsahujúcej súhrnné výsledky hodnotenia. Predvolene je nastavenáevaluation_output možnosť .
  • verbose (bool, voliteľné) – Ak je nastavená na Truehodnotu , vytlačí do konzoly súhrn metrík hodnotenia. Predvolene je nastavená na Falsehodnotu .

Vrátenie:

  • DataFrame – údajový rámec pandas obsahujúci súhrnnú štatistiku na hodnotenie, ako napríklad:
    • Celkový počet vyhodnotených otázok
    • Počty true, false a nejasné výsledky
    • Presnosť

Kontrola podrobných výsledkov hodnotenia

Ak sa chcete podrobnejšie ponoriť do toho, ako váš dátový agent odpovedal na jednotlivé otázky, použite get_evaluation_details funkciu . Táto funkcia vráti podrobný rozpis spustení vyhodnotenia vrátane skutočných odpovedí agenta, či zodpovedali očakávanej odpovedi, a prepojenia na vlákno hodnotenia (viditeľné len pre používateľa, ktorý spustil vyhodnotenie).

from fabric.dataagent.evaluation import get_evaluation_details

# Table name used during evaluation
table_name = "demo_evaluation_output"

# Whether to return all evaluation rows (True) or only failures (False)
get_all_rows = False

# Whether to print a summary of the results
verbose = True

# Retrieve evaluation details for a specific run
eval_details = get_evaluation_details(
    evaluation_id,
    table_name,
    get_all_rows=get_all_rows,
    verbose=verbose
)

Snímka obrazovky znázorňujúca podrobnosti konkrétnych výsledkov hodnotenia agenta údajov.

get_evaluation_details

Vráti údajový rámec obsahujúci podrobné výsledky pre konkrétne spustenie hodnotenia vrátane otázok, očakávaných odpovedí, odpovedí agenta, stavu vyhodnocovania a diagnostických metaúdajov.

Vstupné parametre:

  • evaluation_id (str) – povinné. Jedinečný identifikátor spustenia hodnotenia na načítanie podrobností.
  • table_name (str, voliteľné) – názov tabuľky obsahujúcej výsledky vyhodnotenia. Predvolene je nastavená na evaluation_outputhodnotu .
  • get_all_rows (bool, voliteľné) – možnosť vrátiť všetky riadky z vyhodnotenia (True) alebo iba riadky, v ktorých bola odpoveď agenta nesprávna alebo nejasné (False). Predvolene je nastavená na Falsehodnotu .
  • verbose (bool, voliteľné) – ak je nastavená na hodnotu True, vytlačí do konzoly súhrn metrík hodnotenia. Predvolene je nastavená na Falsehodnotu .

Vrátenie:

  • DataFrame – údajový rámec pandas obsahujúci výsledky hodnotenia na úrovni riadkov, vrátane:

    • question
    • expected_answer
    • actual_answer
    • evaluation_result (true, false, unclear)
    • thread_url (prístupné len používateľovi, ktorý spustil vyhodnotenie)

Prispôsobenie výzvy na vyhodnotenie

V predvolenom nastavení používa súprava Fabric SDK vstavanú výzvu na vyhodnotenie toho, či skutočná odpoveď agenta údajov zodpovedá očakávanej odpovedi. Pomocou parametra však môžete zadať vlastnú výzvu na ďalšie nuansy alebo hodnotenia špecifické pre doménu critic_prompt .

Váš vlastný príkaz by mal obsahovať zástupné symboly {query}, {expected_answer}a {actual_answer}. Tieto zástupné symboly sú dynamicky nahradené za každú otázku počas hodnotenia.

from fabric.dataagent.evaluation import evaluate_data_agent

# Define a custom prompt for evaluating agent responses
critic_prompt = """
    Given the following query, expected answer, and actual answer, please determine if the actual answer is equivalent to expected answer. If they are equivalent, respond with 'yes'.

    Query: {query}

    Expected Answer:
    {expected_answer}

    Actual Answer:
    {actual_answer}

    Is the actual answer equivalent to the expected answer?
"""

# Name of the Data Agent
data_agent_name = "AgentEvaluation"

# Run evaluation using the custom critic prompt
evaluation_id = evaluate_data_agent(df, data_agent_name, critic_prompt=critic_prompt)

Táto funkcia je užitočná najmä v týchto prípadoch:

  • Chcete požiadať o zhovievavejšie alebo prísnejšie kritériá, ktoré sa počíta ako zhoda.
  • Vaše očakávané a skutočné odpovede sa môžu líšiť vo formáte, ale aj tak môžu byť sémanticky rovnocenné.
  • Je potrebné zaznamenať nuansy špecifické pre doménu v tom, ako by sa mali posúdiť odpovede.

Ďalšie kroky