ประเมินตัวแทนข้อมูลของคุณ (ตัวอย่าง)

การประเมินด้วย Fabric SDK ช่วยให้คุณสามารถทดสอบโดยทางโปรแกรมว่า Data Agent ของคุณตอบคําถามภาษาธรรมชาติได้ดีเพียงใด เมื่อใช้อินเทอร์เฟซ Python ที่เรียบง่าย คุณสามารถกําหนดตัวอย่างความจริงพื้นฐาน เรียกใช้การประเมิน และวิเคราะห์ผลลัพธ์ ทั้งหมดนี้ภายในสภาพแวดล้อมสมุดบันทึกของคุณ ซึ่งจะช่วยให้คุณตรวจสอบความถูกต้อง ข้อผิดพลาดดีบัก และปรับปรุงตัวแทนของคุณอย่างมั่นใจก่อนที่จะปรับใช้กับการผลิต

สําคัญ

คุณลักษณะนี้อยู่ในตัวอย่าง

ข้อกําหนดเบื้องต้น

ติดตั้ง SDK ของตัวแทนข้อมูล

ในการเริ่มต้นการประเมิน Fabric Data Agent ของคุณโดยทางโปรแกรม คุณต้องติดตั้ง Fabric Data Agent Python SDK SDK นี้มีเครื่องมือและวิธีการที่จําเป็นในการโต้ตอบกับตัวแทนข้อมูลของคุณ เรียกใช้การประเมิน และผลลัพธ์การบันทึก ติดตั้งเวอร์ชันล่าสุดโดยการเรียกใช้คําสั่งต่อไปนี้ในสมุดบันทึกของคุณ:

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

ขั้นตอนนี้ทําให้แน่ใจว่าคุณมีคุณลักษณะและการแก้ไข up-toล่าสุดที่พร้อมใช้งานใน SDK

โหลดชุดข้อมูลความจริงพื้นฐานของคุณ

ในการประเมิน Fabric Data Agent คุณต้องมีชุดคําถามตัวอย่างพร้อมกับคําตอบที่คาดหวัง คําถามเหล่านี้ใช้เพื่อตรวจสอบว่าตัวแทนตอบสนองต่อการคิวรีในโลกแห่งความเป็นจริงได้อย่างถูกต้องเพียงใด

คุณสามารถกําหนดคําถามเหล่านี้ได้โดยตรงในโค้ดของคุณโดยใช้ 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 ที่ส่งกลับมาประกอบด้วยเมตริกรวม เช่น จํานวนของการตอบสนองที่ถูกต้อง ไม่ถูกต้อง หรือไม่ชัดเจน ผลลัพธ์นี้ช่วยให้คุณประเมินความถูกต้องของตัวแทนได้อย่างรวดเร็วและระบุจุดที่ต้องปรับปรุง

get_evaluation_summary

แสดง DataFrame ที่มีเมตริกสรุประดับสูงสําหรับการเรียกใช้การประเมินที่เสร็จสมบูรณ์ เช่น จํานวนของการตอบสนองที่ถูกต้อง ไม่ถูกต้อง และไม่ชัดเจน

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

พารามิเตอร์ข้อมูลป้อนเข้า:

  • table_name (str, optional) – ชื่อของตารางที่มีผลลัพธ์สรุปการประเมิน ค่าเริ่มต้นเป็น 'evaluation_output'
  • verbose (bool, optional) – ถ้าตั้งค่าเป็น Trueจะพิมพ์ข้อมูลสรุปของเมตริกการประเมินไปยังคอนโซล ค่าเริ่มต้นเป็นFalse

กลับ:

  • DataFrame – DataFrame ของ pandas ที่ประกอบด้วยสถิติสรุปสําหรับการประเมิน เช่น:
    • จํานวนรวมของคําถามที่ประเมิน
    • จํานวนผลลัพธ์ true, false และ unclear
    • ความถูกต้อง

ตรวจสอบผลลัพธ์การประเมินโดยละเอียด

หากต้องการเจาะลึกวิธีการที่เจ้าหน้าที่ข้อมูลของคุณตอบสนองแต่ละคําถาม ให้ใช้ 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
)

สกรีนช็อตแสดงรายละเอียดของผลลัพธ์การประเมินผลตัวแทนข้อมูลเฉพาะ

get_evaluation_details

ส่งกลับ DataFrame ที่มีผลลัพธ์โดยละเอียดสําหรับการเรียกใช้การประเมินเฉพาะรวมถึงคําถาม คําตอบที่คาดหวัง การตอบสนองของตัวแทน สถานะการประเมิน และเมตาดาต้าการวินิจฉัย

พารามิเตอร์ข้อมูลป้อนเข้า:

  • evaluation_id จําเป็นต้องมี (str) รหัสเฉพาะสําหรับการประเมินที่เรียกใช้เพื่อดึงข้อมูลรายละเอียด
  • table_name (str, optional) – ชื่อของตารางที่มีผลลัพธ์การประเมิน ค่าเริ่มต้นเป็นevaluation_output
  • get_all_rows (bool, ไม่บังคับ) – จะส่งคืนแถวทั้งหมดจากการประเมิน (จริง) หรือเฉพาะแถวที่การตอบสนองของตัวแทนไม่ถูกต้องหรือไม่ชัดเจน (เท็จ) ค่าเริ่มต้นเป็นFalse
  • verbose (bool, optional) – ถ้าตั้งค่าเป็น True จะพิมพ์สรุปของเมตริกการประเมินไปยังคอนโซล ค่าเริ่มต้นเป็นFalse

กลับ:

  • DataFrame – Pandas DataFrame ที่ประกอบด้วยผลลัพธ์การประเมินระดับแถว รวมถึง:

    • question
    • expected_answer
    • actual_answer
    • evaluation_result(,truefalse , ) 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 หรือแก้ไขปัญหาการทํางานที่ไม่คาดคิด เมื่อตรวจสอบไฟล์ที่ดาวน์โหลด คุณจะเห็นได้อย่างชัดเจนว่าตัวแทนข้อมูลประมวลผลคําขอของคุณอย่างไร ความโปร่งใสในระดับนี้ทําให้ง่ายต่อการดีบักและเพิ่มประสิทธิภาพของ Data Agent ของคุณ

สกรีนช็อตของปุ่มการวินิจฉัยในตัวแทนข้อมูล

ขั้นตอนถัดไป