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

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

สําคัญ

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

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

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

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

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

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

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

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

Note

ขั้นตอนนี้ต้องใช้ตัวแทนข้อมูลที่เผยแพร่ไปยังขั้นตอนที่คุณประเมินแล้ว (production หรือ sandbox) หากคุณยังไม่มี ดูที่ สร้างตัวแทนข้อมูล Fabric

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

หลังจากรันเสร็จ คุณจะเห็นผลลัพธ์ที่คล้ายกับข้อความต่อไปนี้:

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
summary_df = get_evaluation_summary(table_name)

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

โดยค่าเริ่มต้น ฟังก์ชันนี้จะค้นหาตารางที่มีชื่อว่า evaluation_output. หากคุณระบุชื่อตารางแบบกําหนดเองในระหว่างการประเมิน (เช่น demo_evaluation_output) ให้ส่งชื่อนั้นเป็น table_name อาร์กิวเมนต์

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
)

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

กําหนดค่าพร้อมท์สําหรับการประเมินของคุณ

โดยค่าเริ่มต้น 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)

คุณลักษณะนี้จะมีประโยชน์โดยเฉพาะอย่างยิ่งเมื่อ:

  • คุณควรใช้เกณฑ์ที่ผ่อนปรนหรือเข้มงวดมากขึ้นสําหรับสิ่งที่ถือว่าเป็นการจับคู่
  • คําตอบที่คาดหวังและจริงอาจแตกต่างกันในรูปแบบ แต่ก็ยังเทียบความหมายได้
  • คุณจําเป็นต้องรวบรวมรายละเอียดปลีกย่อยเฉพาะโดเมนว่าควรตัดสินคําตอบอย่างไร

ปุ่มวินิจฉัย

ปุ่ม Diagnostics ช่วยให้คุณดาวน์โหลดภาพรวมเต็มรูปแบบของการตั้งค่าและขั้นตอนการทํางานของตัวแทนข้อมูลของคุณ การส่งออกนี้รวมถึงรายละเอียด เช่น การตั้งค่าแหล่งข้อมูล คําสั่งที่ใช้ ตัวอย่างคําสั่ง และขั้นตอนพื้นฐานที่ตัวแทนข้อมูลใช้ในการสร้างคําตอบ

ใช้ฟีเจอร์นี้เมื่อคุณทํางานกับ ฝ่ายสนับสนุนของ Microsoft หรือแก้ไขปัญหาพฤติกรรมที่ไม่คาดคิด โดยการตรวจสอบไฟล์ที่ดาวน์โหลด คุณจะเห็นได้อย่างชัดเจนว่าตัวแทนข้อมูลประมวลผลคําขอของคุณอย่างไร การตั้งค่าใดถูกนําไปใช้ และจุดที่เกิดปัญหาที่อาจเกิดขึ้น ระดับความโปร่งใสนี้ช่วยให้ง่ายต่อการดีบักและเพิ่มประสิทธิภาพของเอเจนต์ข้อมูลของคุณ

ภาพหน้าจอของปุ่มวินิจฉัยในเอเจนต์ข้อมูล

การแก้ไขปัญหา

ปัญหา สาเหตุ การแก้ปัญหา
ไม่พบตัวแทนข้อมูล data_agent_nameเครื่องหมาย or workspace_name ไม่ถูกต้อง หรือเอเจนต์ยังไม่ได้รับการตีพิมพ์ ตรวจสอบชื่อเอเจนต์และพื้นที่ทํางาน และตรวจสอบให้แน่ใจว่าเอเจนต์ถูกเผยแพร่ไปยังที่ระบุdata_agent_stage
ผลลัพธ์ว่างเปล่าหรือขาดหายไป ชื่อตารางไม่ตรงกับชื่อที่ใช้ในช่วงเวลา evaluate_data_agent. ส่งข้อมูลเดียวกันtable_nameไปยัง get_evaluation_summary และget_evaluation_details
message_url ไม่สามารถเข้าถึงได้ เธรดการประเมินผลจะมองเห็นได้เฉพาะผู้ใช้ที่รันการประเมินผลเท่านั้น รันการประเมินใหม่ภายใต้ตัวตนของคุณเองเพื่อเข้าถึงลิงก์เธรด
พรอมต์แบบกําหนดเองไม่มีผลหรือข้อผิดพลาด critic_promptขาดตัวแทนที่จําเป็น ใส่ {query}, {expected_answer}, และ {actual_answer} ในพรอมต์ของคุณ
ข้อผิดพลาดเกี่ยวกับสิทธิ์หรือความจุ ขาดความจุ F2 หรือสูงกว่า หรือขาดการเข้าถึงการอ่านแหล่งข้อมูล ยืนยันข้อกําหนดเบื้องต้น รวมถึงความจุและการเข้าถึงการอ่านแหล่งข้อมูล

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