หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
โดยการใช้ Fabric SDK ในการประเมินผล คุณสามารถทดสอบได้ด้วยโปรแกรมว่าตัวแทนข้อมูลของคุณตอบสนองต่อคําถามภาษาธรรมชาติได้ดีเพียงใด ด้วยการใช้อินเทอร์เฟซ Python ที่เรียบง่าย คุณสามารถกําหนดตัวอย่างความจริง รันการประเมินผล และวิเคราะห์ผลลัพธ์ทั้งหมดภายในสภาพแวดล้อมโน้ตบุ๊กของคุณ กระบวนการนี้ช่วยให้คุณตรวจสอบความถูกต้อง ดีบักข้อผิดพลาด และปรับปรุงเอเจนต์ของคุณอย่างมั่นใจก่อนนําไปใช้จริง
สําคัญ
คุณลักษณะนี้อยู่ในตัวอย่าง
ข้อกําหนดเบื้องต้น
- ความจุ ความจุ Fabric F2 หรือสูงกว่า หรือความจุ Power BI Premium ต่อความจุ (P1 หรือสูงกว่า) ที่เปิดใช้งาน Microsoft Fabric
- เปิดใช้งานการประมวลผลข้ามภูมิศาสตร์และการจัดเก็บข้ามภูมิศาสตร์สําหรับ AI ตามข้อกําหนดที่อธิบายไว้ในการตั้งค่าผู้เช่าตัวแทนข้อมูล Fabric
- แหล่งข้อมูลเหล่านี้อย่างน้อยหนึ่งแหล่ง พร้อมข้อมูล: คลังสินค้า เลคเฮาส์ แบบจําลองความหมายของ Power BI ฐานข้อมูล KQL ฐานข้อมูลมิเรอร์ หรือออนโทโลยี คุณต้องมีสิทธิ์อ่านแหล่งข้อมูล
ติดตั้ง 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 หรือสูงกว่า หรือขาดการเข้าถึงการอ่านแหล่งข้อมูล | ยืนยันข้อกําหนดเบื้องต้น รวมถึงความจุและการเข้าถึงการอ่านแหล่งข้อมูล |