Fabric SDK를 사용하여 평가하면 데이터 에이전트가 자연어 질문에 얼마나 잘 응답하는지 프로그래밍 방식으로 테스트할 수 있습니다. 간단한 Python 인터페이스를 사용하여 Notebook 환경 내에서 기본 진리 예제를 정의하고, 평가를 실행하고, 결과를 분석할 수 있습니다. 이렇게 하면 프로덕션에 배포하기 전에 정확도의 유효성을 검사하고 오류를 디버그하며 에이전트를 자신 있게 개선할 수 있습니다.
중요합니다
이 기능은 프리뷰 상태입니다.
필수 조건
- F2 이상의 유료 Fabric 용량 또는 Power BI 프리미엄(P1 이상) 용량에 Microsoft Fabric이 활성화된 용량.
- 패브릭 데이터 에이전트 테넌트 설정에 설명된 요구 사항에 따라 AI에 대해 지역 간 처리 및 지역 간 저장을 사용하도록 설정합니다.
- 적어도 데이터가 있는 다음 데이터 원본 중 하나 이상: 웨어하우스, 레이크하우스, Power BI 의미 체계 모델, KQL 데이터베이스, 미러된 데이터베이스 또는 온톨로지. 데이터 원본에 대한 읽기 권한이 있어야 합니다.
데이터 에이전트 SDK 설치
프로그래밍 방식으로 Fabric 데이터 에이전트 평가를 시작하려면 Fabric 데이터 에이전트 Python SDK 설치해야 합니다. 이 SDK는 데이터 에이전트와 상호 작용하고, 평가를 실행하고, 결과를 기록하는 데 필요한 도구와 메서드를 제공합니다. Notebook에서 다음 명령을 실행하여 최신 버전을 설치합니다.
%pip install -U fabric-data-agent-sdk
이 단계를 통해 SDK에서 가장 최신의 up-to기능과 수정 사항이 제공됩니다.
정답 데이터 세트를 로드하세요.
Fabric 데이터 에이전트를 평가하려면 예상 답변과 함께 샘플 질문 집합이 필요합니다. 이러한 질문은 에이전트가 실제 쿼리에 얼마나 정확하게 응답하는지 확인하는 데 사용됩니다.
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)"]
]
)
또는 기존 평가 데이터 세트가 있는 경우 CSV 파일에서 열 질문과 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)
이 데이터 세트는 데이터 에이전트에 대해 자동화된 평가를 실행하여 정확도와 적용 범위를 평가하기 위한 입력 역할을 합니다.
데이터 에이전트 평가 및 분석
다음 단계는 함수를 사용하여 평가를 실행하는 것입니다 evaluate_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
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}")
평가 요약 가져오기
평가를 실행한 후에는 get_evaluation_summary 함수를 사용하여 결과의 간략한 요약을 검색할 수 있습니다. 이 함수는 예상 답변과 일치하는 응답 수와 같은 메트릭을 포함하여 데이터 에이전트가 전반적으로 얼마나 잘 수행되었는지에 대한 인사이트를 제공합니다.
from fabric.dataagent.evaluation import get_evaluation_summary
# Retrieve a summary of the evaluation results
df = get_evaluation_summary(table_name)
기본적으로 이 함수는 evaluation_output 테이블을 찾습니다. 평가 중에 사용자 지정 테이블 이름(예: "demo_evaluation_output")을 지정한 경우 해당 이름을 인수로 table_name 전달합니다.
반환된 DataFrame에는 정확하거나 잘못되거나 명확하지 않은 응답 수와 같은 집계된 메트릭이 포함됩니다. 이 결과를 통해 에이전트의 정확도를 신속하게 평가하고 개선할 영역을 식별할 수 있습니다.
평가 요약 가져오기
정확하고 올바르지 않으며 명확하지 않은 응답의 수와 같이 완료된 평가 실행에 대한 개략적인 요약 메트릭이 포함된 DataFrame을 반환합니다.
get_evaluation_summary(table_name='evaluation_output', verbose=False)
입력 매개 변수:
-
table_name(str, optional) – 평가 요약 결과를 포함하는 테이블의 이름입니다. 기본값은 ''evaluation_output입니다. -
verbose(bool, 선택 사항) – 설정True되면 평가 메트릭 요약을 콘솔에 출력합니다. 기본값은False입니다.
반환:
-
DataFrame– 평가에 대한 요약 통계를 포함하는 pandas DataFrame(예:- 평가된 총 질문 수
- 참, 거짓 및 불분명한 결과의 갯수
- 정확도
자세한 평가 결과 검사
데이터 에이전트가 각 개별 질문에 어떻게 응답했는지 자세히 알아보려면 이 함수를 get_evaluation_details 사용합니다. 이 함수는 실제 에이전트 응답, 예상 답변과 일치하는지 여부, 평가 스레드에 대한 링크(평가를 실행한 사용자만 볼 수 있음)를 포함하여 평가 실행의 자세한 분석을 반환합니다.
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
)
평가_세부사항_가져오기
질문, 예상 답변, 에이전트 응답, 평가 상태 및 진단 메타데이터를 포함하여 특정 평가 실행에 대한 자세한 결과가 포함된 DataFrame을 반환합니다.
입력 매개 변수:
-
evaluation_id(str) – 필수 요소입니다. 세부 정보를 가져오기 위해 평가 실행에 대한 고유 식별자입니다. -
table_name(str, optional) – 평가 결과를 포함하는 테이블의 이름입니다. 기본값은evaluation_output입니다. -
get_all_rows(bool, 선택 사항) – 평가에서 모든 행을 반환할지(True) 또는 에이전트의 응답이 올바르지 않거나 불분명한 행만 반환할지 여부(False). 기본값은False입니다. -
verbose(bool, 선택 사항) – True로 설정하면 평가 메트릭 요약을 콘솔에 출력합니다. 기본값은False입니다.
반환:
DataFrame– 다음을 비롯한 행 수준 평가 결과를 포함하는 pandas DataFrame입니다.questionexpected_answeractual_answer-
evaluation_result(true,false,unclear) -
thread_url(평가를 실행한 사용자만 액세스할 수 있음)
평가 프롬프트 사용자 지정
기본적으로 Fabric SDK는 기본 제공 프롬프트를 사용하여 데이터 에이전트의 실제 답변이 예상 답변과 일치하는지 여부를 평가합니다. 그러나 매개 변수를 사용하여 보다 미묘하거나 도메인별 평가를 위한 고유한 프롬프트를 critic_prompt 제공할 수 있습니다.
사용자 지정 프롬프트에는 자리 표시자 {query}, {expected_answer}, 및 {actual_answer}가 포함되어야 합니다. 이러한 자리 표시자는 평가 중에 각 질문에 대해 동적으로 대체됩니다.
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)
이 기능은 다음 경우에 특히 유용합니다.
- 더 관대하거나 엄격한 기준을 일치로 간주하도록 적용하려고 합니다.
- 예상 답변과 실제 답변은 형식이 다를 수 있지만 의미상 동일합니다.
- 답변을 판단하는 방법에 대한 도메인별 뉘앙스를 캡처해야 합니다.
진단 단추
진단 단추를 사용하면 데이터 에이전트 구성 및 실행 단계의 전체 스냅샷을 다운로드할 수 있습니다. 이 내보내기에는 데이터 원본 설정, 적용된 지침, 사용된 쿼리 예제 및 데이터 에이전트가 응답을 생성하기 위해 수행한 기본 단계와 같은 세부 정보가 포함됩니다.
Microsoft 지원 작업하거나 예기치 않은 동작 문제를 해결할 때 이 기능을 사용합니다. 다운로드한 파일을 검토하면 데이터 에이전트가 요청을 처리한 방법, 적용된 구성 및 잠재적인 문제가 발생한 위치를 정확하게 확인할 수 있습니다. 이러한 수준의 투명성을 통해 데이터 에이전트의 성능을 더 쉽게 디버그하고 최적화할 수 있습니다.