Ocena agenta danych (wersja zapoznawcza)

Korzystając z Fabric SDK do oceny, możesz programowo sprawdzić, jak dobrze Twój agent danych odpowiada na pytania w języku naturalnym. Dzięki prostemu interfejsowi Python możesz definiować przykłady z rzeczywistości, przeprowadzać oceny i analizować wyniki — wszystko to w środowisku swojego notesu. Ten proces pomaga zweryfikować dokładność, debugować błędy i pewnie ulepszać agenta przed wdrożeniem go do produkcji.

Ważne

Ta funkcja jest dostępna w wersji zapoznawczej.

Wymagania wstępne

Instalowanie zestawu SDK agenta danych

Aby rozpocząć programową ocenę agenta danych Fabric, zainstaluj Fabric data agent Python SDK. Ten SDK udostępnia narzędzia i metody wymagane do interakcji z agentem danych, przeprowadzania ocen i logowania wyników. Zainstaluj najnowszą wersję, uruchamiając następujące polecenie w notesie:

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

Ten krok zapewnia, że masz najbardziej aktualne funkcje i poprawki dostępne w zestawie SDK.

Załaduj zestaw danych odniesienia

Aby ocenić swojego agenta danych Fabric, potrzebujesz zestawu przykładowych pytań wraz z oczekiwanymi odpowiedziami. Wykorzystaj te pytania, aby zweryfikować, jak dokładnie agent odpowiada na rzeczywiste zapytania.

Zdefiniuj te pytania bezpośrednio w swoim kodzie, używając pandas DataFrame:

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

Alternatywnie, jeśli masz istniejący zbiór danych ewaluacji, załaduj go z pliku CSV z kolumnami question i 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)

Ten zestaw danych służy jako dane wejściowe do uruchamiania automatycznych ocen względem agenta danych w celu oceny dokładności i pokrycia.

Oceń i zbadaj swojego agenta danych

Kolejnym krokiem jest przeprowadzenie oceny za pomocą funkcji evaluate_data_agent . Ta funkcja porównuje odpowiedzi agenta z oczekiwanymi wynikami i przechowuje metryki oceny.

Uwaga / Notatka

Ten etap wymaga agenta danych, który został już opublikowany na ocenianym etapie (production lub sandbox). Jeśli jeszcze go nie masz, zobacz Create a Fabric data agent.

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
try:
    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}")
except Exception as e:
    print(f"Evaluation failed: {e}")

Po zakończeniu serii widzisz wyniki podobne do następującego tekstu:

Unique ID for the current evaluation run: <evaluation-id>

Pobieranie podsumowania oceny

Po przeprowadzeniu oceny możesz uzyskać ogólne podsumowanie wyników, korzystając z funkcji get_evaluation_summary . Ta funkcja dostarcza informacji o tym, jak dobrze Twój agent danych ogólnie się poradził, w tym metryki takie jak liczba odpowiedzi odpowiadających oczekiwaniom.

from fabric.dataagent.evaluation import get_evaluation_summary

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

Zrzut ekranu przedstawiający podsumowanie wyników oceny agenta danych.

Domyślnie ta funkcja szuka tabeli o nazwie evaluation_output. Jeśli podczas oceny podałeś niestandardową nazwę tabeli (np. demo_evaluation_output), podaj tę nazwę jako table_name argument.

Zwrócona ramka danych zawiera zagregowane metryki, takie jak liczba poprawnych, niepoprawnych lub niejasnych odpowiedzi. Ten wynik pomaga szybko ocenić dokładność agenta i zidentyfikować obszary pod kątem poprawy.

Sprawdzanie szczegółowych wyników oceny

Aby dokładniej przyjrzeć się temu, jak Twój agent danych odpowiadał na każde pojedyncze pytanie, skorzystaj z tej get_evaluation_details funkcji. Ta funkcja zwraca szczegółowy podział przebiegu oceny, w tym rzeczywiste odpowiedzi agenta, czy pasują one do oczekiwanej odpowiedzi, oraz link do wątku oceny (widoczne tylko dla użytkownika, który uruchomił ocenę).

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
)

Zrzut ekranu przedstawiający szczegółowe informacje o wynikach oceny określonego agenta danych.

Dostosowywanie monitu o ocenę

Domyślnie Fabric SDK używa wbudowanego promptu do oceny, czy rzeczywista odpowiedź agenta danych odpowiada oczekiwanej odpowiedzi. Możesz jednak samodzielnie podać zadanie do bardziej zniuansowanych lub specyficznych dla danej dziedziny ocen, korzystając z parametru critic_prompt .

Twój niestandardowy komunikat powinien zawierać symbole zastępcze {query}, {expected_answer} i {actual_answer}. Proces oceny dynamicznie podstawia te symbole zastępcze dla każdego pytania.

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)

Ta funkcja jest szczególnie przydatna, gdy:

  • Chcesz stosować bardziej łagodne lub bardziej rygorystyczne kryteria tego, co jest uznawane za dopasowanie.
  • Twoje oczekiwane i rzeczywiste odpowiedzi mogą się różnić formatem, ale nadal być semantycznie równoważne.
  • Należy przechwycić niuanse specyficzne dla domeny w sposobie oceniania odpowiedzi.

Przycisk diagnostyki

Przycisk Diagnostyka umożliwia pobranie pełnej migawki konfiguracji agenta danych i etapów jego wykonywania. Ten eksport zawiera szczegóły takie jak ustawienia źródła danych, zastosowane instrukcje, przykładowe zapytania oraz kroki wykonane przez agenta danych, aby wygenerować swoją odpowiedź.

Korzystaj z tej funkcji, gdy współpracujesz z pomoc techniczna firmy Microsoft lub rozwiązujesz problemy z nieoczekiwanymi zachowaniami. Przeglądając pobrany plik, możesz dokładnie zobaczyć, jak agent danych przetwarzał Twoje żądanie, jakie konfiguracje zostały zastosowane i gdzie pojawiły się potencjalne problemy. Taki poziom przejrzystości ułatwia debugowanie i optymalizację wydajności twojego agenta danych.

Zrzut ekranu przycisku diagnostyki w agencie danych.

Troubleshooting

Problematyka Przyczyna Resolution
Agent danych nie znaleziony Element data_agent_name lub workspace_name jest nieprawidłowy albo agent nie został opublikowany. Zweryfikuj nazwę agenta i obszar roboczy oraz upewnij się, że agent został opublikowany w określonym data_agent_stage.
Wyniki puste lub brakujące Nazwa tabeli nie zgadza się z tą używaną podczas evaluate_data_agent. Przekaż ten sam element table_name do get_evaluation_summary i get_evaluation_details.
message_url nie jest dostępny Wątki oceny są widoczne tylko dla użytkownika, który przeprowadził ocenę. Ponownie przeprowadź ocenę pod własną tożsamością, aby uzyskać dostęp do linków wątków.
Niestandardowy monit nie działa lub powoduje błędy W elemencie critic_prompt brakuje wymaganych symboli zastępczych. Uwzględnij {query}, {expected_answer}, oraz {actual_answer} w swoim promptie.
Błąd uprawnień lub pojemności Brak pojemności F2 lub wyższej, albo brak dostępu do odczytu do źródła danych. Potwierdź wymagania wstępne, w tym pojemność i dostęp do odczytu źródeł danych.

Dalsze kroki