Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Płatna pojemność Fabric F2 lub wyższa, lub Power BI Premium per capacity (P1 lub wyższa) z włączonym Microsoft Fabric.
- Włącz przetwarzanie i przechowywanie między lokalizacjami geograficznymi dla sztucznej inteligencji na podstawie wymagań opisanych w ustawieniach dzierżawy agenta danych Fabric.
- Co najmniej jedno z tych źródeł danych z danymi: magazynem, usługą lakehouse, modelem semantycznym usługi Power BI, bazą danych KQL, dublowaną bazą danych lub ontologią. Musisz mieć uprawnienia do odczytu źródła danych.
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)
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
)
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.
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. |