Megosztás a következőn keresztül:


Az adatügynök kiértékelése (előzetes verzió)

A Fabric SDK-val végzett kiértékeléssel programozott módon tesztelheti, hogy az adatügynök mennyire válaszol a természetes nyelvi kérdésekre. Egy egyszerű Python-felülettel definiálhat alapigaz példákat, futtathat értékeléseket és elemezheti az eredményeket – mindezt a jegyzetfüzet környezetében. Ez segít ellenőrizni a pontosságot, hibákat, és biztosan javítani az ügynök működését az éles környezetbe való üzembe helyezés előtt.

Fontos

Ez a funkció előzetes verzióban érhető el.

Előfeltételek

Az adatügynök SDK telepítése

A Fabric Data Agent programozott kiértékeléséhez telepítenie kell a Fabric Data Agent Python SDK-t. Ez az SDK biztosítja azokat az eszközöket és módszereket, amelyek az adatügynökkel való interakcióhoz, a kiértékelések futtatásához és a naplóeredmények naplózásához szükségesek. Telepítse a legújabb verziót a következő parancs futtatásával a jegyzetfüzetben:

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

Ez a lépés biztosítja, hogy a up-to-date funkciók és javítások elérhetők legyenek az SDK-ban.

Töltse be az alapadatkészletet

A Fabric Data Agent kiértékeléséhez szüksége van egy sor mintakérdésre és a várt válaszokra. Ezek a kérdések annak ellenőrzésére szolgálnak, hogy az ügynök milyen pontosan válaszol a valós lekérdezésekre.

Ezeket a kérdéseket közvetlenül a kódban definiálhatja egy pandas DataFrame használatával:

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

Másik lehetőségként, ha már rendelkezik egy kiértékelési adatkészlettel, betöltheti egy CSV-fájlból, amelynek oszlopai a kérdés és a várható_válasz.

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

Ez az adatkészlet szolgál bemenetként az automatizált kiértékeléseknek az adatügynökön való futtatásához a pontosság és a lefedettség felméréséhez.

Értékelje és vizsgálja meg az adatügynökét

A következő lépés a kiértékelés futtatása a evaluate_data_agent függvény használatával. Ez a függvény összehasonlítja az ügynök válaszait a várt eredményekkel, és tárolja a kiértékelési metrikákat.

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

Értékelés összegzésének lekérése

A kiértékelés futtatása után lekérheti az eredmények magas szintű összegzését a get_evaluation_summary függvény használatával. Ez a függvény betekintést nyújt az adatügynök általános teljesítményébe – beleértve azokat a metrikákat is, mint például hogy hány válasz felelt meg a várt válaszoknak.

from fabric.dataagent.evaluation import get_evaluation_summary

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

Képernyőkép az adatügynök kiértékelési eredményeinek összegzéséről.

Alapértelmezés szerint ez a függvény egy evaluation_output nevű táblát keres. Ha a kiértékelés során egyéni táblanevet adott meg (például "demo_evaluation_output"), adja meg ezt a table_name nevet argumentumként.

A visszaadott DataFrame olyan összesített metrikákat tartalmaz, mint a helyes, helytelen vagy nem egyértelmű válaszok száma. Ez az eredmény segít gyorsan felmérni az ügynök pontosságát, és azonosítani a fejlesztési területeket.

értékelési_összefoglaló_lekérése

Egy dataFrame-et ad vissza, amely magas szintű összefoglaló metrikákat tartalmaz egy befejezett kiértékelési futtatáshoz, például a helyes, helytelen és nem egyértelmű válaszok számát.

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

Bemeneti paraméterek:

  • table_name (str, nem kötelező) – A kiértékelési összefoglaló eredményeket tartalmazó táblázat neve. Alapértelmezett érték: ""evaluation_output.
  • verbose (bool, nem kötelező) – Ha be van állítva True, a kiértékelési metrikák összegzését nyomtatja ki a konzolon. Alapértelmezett érték: False.

Eredménye:

  • DataFrame – A pandas DataFrame, amely az értékelés összefoglaló statisztikáit tartalmazza, például:
    • Kiértékelt kérdések teljes száma
    • Igaz, hamis és nem egyértelmű eredmények száma
    • Pontosság

Részletes kiértékelési eredmények vizsgálata

Ha részletesebben szeretné tudni, hogy az adatügynök hogyan válaszolt az egyes kérdésekre, használja a függvényt get_evaluation_details . Ez a függvény a kiértékelési futtatás részletes lebontását adja vissza, beleértve a tényleges ügynökválaszokat, a várt választ, valamint a kiértékelési szálra mutató hivatkozást (csak az értékelést végrehajtó felhasználó számára látható).

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
)

Képernyőkép egy adott adatügynök kiértékelési eredményeiről.

értékelési részletek lekérése

Egy adatkeretet ad vissza, amely részletes eredményeket tartalmaz egy adott kiértékelési futtatáshoz, beleértve a kérdéseket, a várt válaszokat, az ügynök válaszait, a kiértékelési állapotot és a diagnosztikai metaadatokat.

Bemeneti paraméterek:

  • evaluation_id (str) – Kötelező. A kiértékelési futtatás egyedi azonosítója a részletek lekéréséhez.
  • table_name (str, nem kötelező) – A kiértékelési eredményeket tartalmazó tábla neve. Alapértelmezett érték: evaluation_output.
  • get_all_rows (bool, nem kötelező) – Azt határozza meg, hogy az értékelés összes sorát (Igaz) vagy csak azokat a sorokat adja vissza, ahol az ügynök válasza helytelen vagy nem egyértelmű volt (Hamis). Alapértelmezett érték: False.
  • verbose (bool, nem kötelező) – Ha Igaz értékre van állítva, a kiértékelési metrikák összegzését nyomtatja ki a konzolon. Alapértelmezett érték: False.

Eredménye:

  • DataFrame – Sorszintű kiértékelési eredményeket tartalmazó pandas DataFrame, beleértve a következőket:

    • question
    • expected_answer
    • actual_answer
    • evaluation_result (true, false, unclear)
    • thread_url (csak a kiértékelő felhasználó számára érhető el)

A kiértékelési kérés testreszabása

Alapértelmezés szerint a Fabric SDK egy beépített kérdés használatával értékeli ki, hogy az adatügynök tényleges válasza megfelel-e a várt válasznak. A paraméter használatával critic_prompt azonban saját kérést is megadhat árnyaltabb vagy tartományspecifikus értékelésekhez.

Az egyéni kérésnek tartalmaznia kell a helyőrzőket {query}, {expected_answer}, és {actual_answer}. Ezek a helyőrzők dinamikusan helyettesítik az egyes kérdéseket az értékelés során.

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)

Ez a funkció különösen akkor hasznos, ha:

  • Az egyezésnek számító enyhébb vagy szigorúbb feltételekre szeretne alkalmazni.
  • A várt és a tényleges válaszok formátuma eltérő lehet, de szemantikailag megegyezhet.
  • A válaszok megítélésében tartományspecifikus árnyalatokat kell rögzítenie.

Diagnosztikai gomb

A Diagnosztika gombbal letöltheti az adatügynök konfigurációs és végrehajtási lépéseinek teljes pillanatképét. Ez az exportálás olyan részleteket tartalmaz, mint az adatforrás beállításai, az alkalmazott utasítások, a használt példa lekérdezések, valamint az adatügynök által a válasz létrehozásához szükséges alapvető lépések.

Ezt a funkciót a Microsoft támogatási szolgálatának használatakor vagy a váratlan viselkedés hibaelhárításakor használhatja. A letöltött fájl áttekintésével pontosan láthatja, hogyan dolgozta fel az adatügynök a kérést, mely konfigurációkat alkalmazta, és hol fordulhattak elő lehetséges problémák. Ez az átláthatósági szint megkönnyíti az adatügynök teljesítményének hibakeresését és optimalizálását.

Képernyőkép az adatügynök diagnosztikai gombjáról

Következő lépések