หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ตัวอย่างการสืบค้น (เรียกอีกอย่างว่า "ตัวอย่างไม่กี่ช็อต") ให้รูปแบบที่เป็นรูปธรรมแก่ตัวแทนข้อมูลเพื่อเรียนรู้ คําถามเหล่านี้เป็นคําถามตัวอย่างและตรรกะการสืบค้นที่สอดคล้องกันซึ่งผู้สร้างจัดเตรียมไว้เพื่อเป็นแนวทางว่าตัวแทนควรตอบสนองอย่างไร เมื่อผู้ใช้ถามคําถามกับแหล่งข้อมูล Data Agent จะดึงตัวอย่างที่เกี่ยวข้องมากที่สุดโดยอัตโนมัติ ซึ่งโดยทั่วไปจะเป็นตัวอย่างสี่อันดับแรก และป้อนข้อมูลเหล่านั้นลงในกระบวนการสร้าง ด้วยการอ้างอิงตัวอย่างเหล่านี้ ตัวแทนสามารถเข้าใจโครงสร้าง ตัวกรอง และการรวมที่คาดหวังได้ดีขึ้น ซึ่งช่วยให้สร้างผลลัพธ์คิวรีที่แม่นยํา สอดคล้องกัน และรับรู้บริบทมากขึ้น
มีคิวรีตัวอย่าง
เมื่อให้ตัวอย่างคิวรี คุณต้องรวมทั้งคําถามภาษาธรรมชาติและคําตอบคิวรีที่สอดคล้องกัน คําถามแต่ละข้อควรไม่ซ้ํากันเพื่อให้ตัวแทนข้อมูลมีชุดจุดอ้างอิงที่หลากหลาย ทุกคิวรีตัวอย่างจะได้รับการตรวจสอบความถูกต้องกับ Schema ของแหล่งข้อมูลที่เลือก คิวรีที่ไม่ผ่านการตรวจสอบความถูกต้องจะไม่ถูกส่งไปยังตัวแทน เพื่อให้แน่ใจว่ามีการใช้ตัวอย่างของคุณจําเป็นต้องยืนยันว่าพวกเขาผ่านขั้นตอนการตรวจสอบความถูกต้องนี้
ตารางแสดงแหล่งข้อมูลที่สนับสนุนการสืบค้นตัวอย่างในตัวแทนข้อมูลในปัจจุบัน ตัวอย่างเหล่านี้ช่วยแนะนํากระบวนการสร้างคิวรีของตัวแทนโดยให้รูปแบบและบริบท
| ชนิดแหล่งข้อมูล | รองรับตัวอย่างการสืบค้น? |
|---|---|
| Lakehouse | ✅ ใช่ |
| คลังสินค้า | ✅ ใช่ |
| ฐานข้อมูล KQL ของอีเวนต์เฮาส์ | ✅ ใช่ |
| โมเดลความหมาย | ❌ ไม่ใช่ |
| ภววิทยา | ❌ ไม่ใช่ |
คุณยังสามารถใช้มุมมอง ขั้นตอนการเรียกใช้ เพื่อแก้ไขข้อบกพร่องว่าตัวอย่างการค้นหาใดถูกดึงมาและนําไปใช้กับคําถามของผู้ใช้ มุมมองนี้มีประโยชน์อย่างยิ่งสําหรับการยืนยันว่ามีการใช้ตัวอย่างที่ถูกต้อง และสําหรับการวินิจฉัยว่าเหตุใดจึงมีการสร้างผลลัพธ์บางอย่าง หากตัวอย่างที่ไม่ถูกต้องปรากฏขึ้น ให้ลองปรับแต่งคําถามของคุณหรือเพิ่มตัวอย่างที่ชัดเจนและตรงเป้าหมายมากขึ้น
แนวทางปฏิบัติที่ดีที่สุดสําหรับการเขียนตัวอย่างคิวรี
เมื่อสร้างคิวรีตัวอย่างสําหรับตัวแทนข้อมูล การปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดจะช่วยให้มั่นใจได้ว่าจะให้คําแนะนําที่ชัดเจนและเชื่อถือได้ในระหว่างการสร้างคิวรี ตัวอย่างที่สร้างขึ้นมาอย่างดีช่วยให้ตัวแทนเข้าใจว่าคําถามภาษาธรรมชาติแปลเป็นตรรกะ SQL/KQL เน้นการรวมหรือการคํานวณที่ซับซ้อน และปรับปรุงความแม่นยําของผลลัพธ์อย่างไร ใช้หลักเกณฑ์เพื่อทําให้ตัวอย่างมีประสิทธิภาพมากขึ้นและเป็นตัวแทนของสถานการณ์จริงของผู้ใช้
| # | แนวทางปฏิบัติที่ดีที่สุด | เหตุใดจึงสําคัญ |
|---|---|---|
| 1 | ตรวจสอบให้แน่ใจว่าคําถามจับคู่กับคําค้นหาอย่างชัดเจน | ตัวแทนข้อมูลใช้ตัวอย่างเหล่านี้เพื่อเรียนรู้รูปแบบระหว่างคําถามและ SQL/KQL ที่เป็นผลลัพธ์ ความคลุมเครือลดความแม่นยํา |
| 2 | รวมข้อคิดเห็นในแบบสอบถามเพื่อเป็นแนวทางให้กับตัวแทน | ข้อคิดเห็น ( -- substitute customer_id here) ช่วยให้ตัวแทนเข้าใจตําแหน่งที่จะแทนที่ค่าหรือใช้ตรรกะที่สําคัญ |
| 3 | เน้นตรรกะการรวมหรือรูปแบบที่ซับซ้อน | ใช้ตัวอย่างการค้นหาเพื่อแสดงวิธีจัดการการรวมหลายตาราง การรวม หรือตรรกะขั้นสูงอื่นๆ ที่ยากต่อการอธิบายในคําแนะนําธรรมดา |
| 4 | หลีกเลี่ยงการทับซ้อนกันหรือความขัดแย้ง | แต่ละตัวอย่างควรมีความแตกต่างกันและไม่ขัดแย้งกันเพื่อให้ตัวแทนทราบถึงวิธีปฏิบัติตน |
| 5 | ใช้ขั้นตอนการเรียกใช้เพื่อแก้ไขข้อบกพร่องว่าตัวอย่างใดที่ส่งผ่าน | เรียกใช้ขั้นตอนช่วยให้คุณเห็นว่าตัวอย่างใดถูกดึงมาสําหรับคําถามของผู้ใช้ที่กําหนด — หากมีตัวอย่างที่ไม่ถูกต้องปรากฏขึ้น ให้ปรับคําถามของคุณหรือเพิ่มตัวอย่างที่เฉพาะเจาะจงมากขึ้น |
| 6 | สะท้อนพฤติกรรมของผู้ใช้จริง | เพิ่มตัวอย่างคําค้นหาที่แสดงถึงประเภทของคําถามที่ผู้ใช้ถามเพื่อเพิ่มความเกี่ยวข้องและความแม่นยําสูงสุด |
ตรวจสอบความถูกต้องของคิวรีตัวอย่าง
Fabric Data Agent SDK มีเครื่องมือในตัวเพื่อประเมินและปรับปรุงคุณภาพของการสืบค้นตัวอย่างของคุณ เมื่อใช้ฟังก์ชันนี้ evaluate_few_shots คุณสามารถตรวจสอบความถูกต้องของคู่ภาษาธรรมชาติ/SQL แต่ละคู่เพื่อยืนยันว่ามีความชัดเจน ถูกต้อง และสอดคล้องกับ Schema แหล่งข้อมูลของคุณ SDK เรียกใช้แต่ละตัวอย่างผ่านกระบวนการประเมินของ Data Agent โดยส่งคืนข้อมูลสรุปโดยละเอียดว่าตัวอย่างใดที่ผ่านและตัวอย่างใดที่ต้องปรับแต่ง
มีคิวรีตัวอย่าง
examples_to_add = {
"What was total revenue for Product Alpha in Q1 2024?": "SELECT SUM(amount) AS revenue FROM sales WHERE product = 'Alpha' AND fiscal_quarter = '2024-Q1';",
"Show me average deal size in the North region during 2023.": "SELECT AVG(amount) AS avg_deal FROM deals WHERE region = 'North' AND YEAR(closed_date) = 2023;",
"How many support tickets were closed in January 2024?": "SELECT COUNT(*) AS tickets_closed FROM support_tickets WHERE status = 'Closed' AND DATE_TRUNC('month', closed_at) = '2024-01-01';",
"What is the total revenue for Product Alpha in the first quarter of 2024?": "SELECT COUNT(DISTINCT order_id) AS revenue FROM order_facts WHERE product = 'Alpha' AND fiscal_quarter = '2024-Q1';",
"How many new leads were generated from the website in February 2024?": "SELECT COUNT(*) AS web_leads FROM leads WHERE source = 'Web' AND DATE_TRUNC('month', created_at) = '2024-02-01';",
"List total marketing touches for campaign Ignite in March 2024.": "SELECT SUM(touches) AS total_touches FROM campaign_metrics WHERE campaign_name = 'Ignite' AND DATE_TRUNC('month', activity_date) = '2024-03-01';",
"What was the average deal amount in the North region during 2023?": "SELECT SUM(amount) / COUNT(*) AS avg_deal FROM deal_summary WHERE region = 'North' AND YEAR(closed_date) = 2023;",
"Which products exceeded 1M revenue in 2023?": "SELECT product FROM sales WHERE YEAR(order_date) = 2023 GROUP BY product HAVING SUM(amount) > 1000000;",
"Show me how many support tickets were closed during January 2024.": "SELECT COUNT(ticket_id) AS tickets_closed FROM ticket_events WHERE event_type = 'Closed' AND MONTH(event_time) = 1 AND YEAR(event_time) = 2024;",
"What is the churn rate for subscription tier Gold in 2024 so far?": "SELECT SUM(churned_accounts)::float / NULLIF(SUM(active_accounts), 0) AS churn_rate FROM subscription_health WHERE tier = 'Gold' AND YEAR(snapshot_date) = 2024;",
}
# Add the examples to the datasource
try:
datasource.add_fewshots(examples_to_add)
print(f"Added {len(examples_to_add)} few-shot examples to the datasource")
except Exception as e:
print(f"Note: {e}")
print("Few-shots may already exist in the datasource")
ประเมินผ่าน SDK
เมื่อตรวจสอบอัตราความสําเร็จและคําติชม คุณสามารถปรับตัวอย่างของคุณซ้ําๆ เช่น การชี้แจงคําถาม การปรับปรุงตรรกะ SQL หรือการเพิ่มข้อคิดเห็น เพื่อให้ตัวแทนข้อมูลเรียนรู้จากรูปแบบคุณภาพสูงขึ้นและสร้างผลลัพธ์ที่แม่นยํายิ่งขึ้นสําหรับคําถามใหม่
# Evaluate few-shot examples using the Data Agent SDK.
# This runs validation on your natural-language/SQL pairs and returns a summary of results.
result = datasource.evaluate_few_shots(batch_size=20)
# Print out the overall success rate of your examples.
# This shows how many examples passed validation vs. the total tested.
print(f"Success rate: {result.success_rate:.2f}% ({result.success_count}/{result.total_examples})")
ติดตามความคิดเห็น
หลังจากเรียกใช้ตัวตรวจสอบความถูกต้อง คุณจะได้รับรายละเอียดที่ชัดเจนว่าตัวอย่างใดผ่านและตัวอย่างใดล้มเหลว ข้อเสนอแนะนี้ทําให้ง่ายต่อการระบุจุดแข็งและจุดอ่อนในตัวอย่างไม่กี่ช็อตของคุณ
- กรณีความสําเร็จ: ตัวอย่างที่ SQL ตรงกับคําตอบที่คาดไว้ ตัวอย่างเหล่านี้เป็นข้อมูลอ้างอิงที่ชัดเจนที่คุณสามารถสร้างแบบจําลองในอนาคตได้
- กรณีความล้มเหลว: ตัวอย่างที่ SQL ไม่ตรงกับคําตอบที่คาดไว้ หรือคู่คําถาม/แบบสอบถามอาจไม่ชัดเจนหรือไม่ถูกต้อง กรณีเหล่านี้ควรได้รับการทบทวนและปรับแต่ง
# Access success and failure cases as pre-computed Pandas DataFrames
success_df = result.success_cases
failure_df = result.failure_cases
print("Success Cases:")
display(success_df) # Shows examples where the SQL matched the user question
print("Failure Cases:")
display(failure_df) # Shows examples that need review or improvement
ใช้คําติชมนี้เพื่อ ทําซ้ําและปรับปรุง คําค้นหาตัวอย่างของคุณ การเสริมความแข็งแกร่งให้กับตัวอย่างที่อ่อนแอกว่าเป็นประจําจะช่วยให้ Data Agent สร้าง SQL และคําตอบที่แม่นยํายิ่งขึ้นเมื่อเวลาผ่านไป
หากต้องการสํารวจตัวอย่างการทํางานแบบเต็ม คุณสามารถตรวจสอบสมุดบันทึกตัวอย่างใน ที่เก็บ GitHub ของ Fabric Data Agent SDK:
Note
ยูทิลิตี้การประเมินนี้พร้อมใช้งานสําหรับคิวรีตัวอย่างที่ใช้ SQL เท่านั้น KQL หรือคิวรีชนิดอื่นๆ ยังไม่ได้รับการสนับสนุน
ตรวจหาข้อขัดแย้งระหว่างคิวรีตัวอย่าง
หลังจากการตรวจสอบคุณภาพเสร็จสมบูรณ์ SDK การประเมินจะทําการ ตรวจหาข้อขัดแย้ง โดยอัตโนมัติในแบบสอบถามตัวอย่างที่ได้รับอนุมัติหรือตัวอย่างไม่กี่ช็อต การตรวจหาข้อขัดแย้งจะระบุความไม่สอดคล้องกันที่อาจทําให้ตัวแทนข้อมูลสร้างผลลัพธ์ที่คาดเดาไม่ได้หรือไม่ถูกต้อง
ตรวจพบความขัดแย้งเมื่อตัวอย่างตั้งแต่สองตัวอย่างขึ้นไป:
- แสดง เจตนาเดียวกัน (ตามคําถามภาษาธรรมชาติเวอร์ชันมาตรฐาน) แต่อ้างอิง ตารางหรือมุมมองที่แตกต่างกัน
- คํานวณ เมตริกเดียวกัน โดยใช้ ตรรกะการรวมที่แตกต่างกัน หรือ ระดับความละเอียดที่แตกต่างกัน
- สร้างคิวรี SQL ที่จะส่งคืน ผลลัพธ์ที่แตกต่างกันอย่างมีนัยสําคัญ สําหรับคําถามทางธุรกิจเดียวกัน
ความขัดแย้งเหล่านี้บ่งชี้ถึงความคลุมเครือหรือความไม่สอดคล้องกันภายในตัวอย่างการยิงไม่กี่ภาพ การแก้ไขจะช่วยปรับปรุงการกําหนดแบบสอบถาม ความถูกต้อง และพฤติกรรมโดยรวมของตัวแทน
ตรวจสอบรายละเอียดความขัดแย้ง
เมื่อตรวจพบข้อขัดแย้ง SDK จะขยายความขัดแย้งแต่ละรายการออกเป็นแถวต่อตัวอย่าง โดยให้การวินิจฉัยโดยละเอียด ซึ่งรวมถึง
- ตัวอย่างที่เกี่ยวข้องกับความขัดแย้ง
- คําถามภาษาธรรมชาติและ SQL ที่สอดคล้องกันสําหรับแต่ละตัวอย่าง
- คําอธิบายของความขัดแย้งที่อธิบายว่าตัวอย่างแตกต่างกันอย่างไร
- คะแนนความเชื่อมั่นที่บ่งชี้ถึงความน่าเชื่อถือของการตรวจหาข้อขัดแย้ง
ใช้มุมมองโดยละเอียดนี้เพื่อทําความเข้าใจว่าตัวอย่างใดที่ขัดแย้งกันและเพราะเหตุใด และเพื่อพิจารณาว่าตัวอย่างใดควรได้รับการปรับปรุงหรือลบออก
# Display conflict summary
print(f"\nConflicts Detected: {result.conflict_count}")
print("Confidence Ratings: 5=High, 4=Medium, 3=Low, 2=Very Low, 1=Speculative\n")
# Access detailed conflict information as a pre-computed DataFrame
if result.conflict_count > 0:
conflict_details_df = result.conflict_details
display(conflict_details_df)
else:
print("No conflict details to display.")
ตัวอย่างต่อไปนี้แสดงผลลัพธ์การตรวจหาข้อขัดแย้ง คําถามที่เกี่ยวข้องและ SQL และระดับความเชื่อมั่นของแต่ละข้อขัดแย้งที่ตรวจพบ
ทําความเข้าใจคะแนนของผู้ตรวจสอบความถูกต้อง
เมื่อคุณเรียกใช้ตัวตรวจสอบความถูกต้องในคิวรีตัวอย่างของคุณ จะสร้างคะแนนหลักสามคะแนนสําหรับแต่ละตัวอย่าง: ความชัดเจน ความเกี่ยวข้อง และการแม็ป คะแนนเหล่านี้ได้มาจากคําถามภาษาธรรมชาติและแบบสอบถาม SQL ของคุณสอดคล้องกับแนวทางปฏิบัติที่ดีที่สุด
ความชัดเจน
วัดว่าคําถามภาษาธรรมชาติมีความ ชัดเจนและไม่คลุมเครือหรือไม่ คําถามควรมีความเฉพาะเจาะจง รวมถึงเมตริก กรอบเวลา และตัวกรองที่จําเป็น และหลีกเลี่ยงการใช้ถ้อยคําที่คลุมเครือหรือมีเจตนาหลายข้อตัวอย่าง – ดี: "รายได้รวมตามภูมิภาคสําหรับปี 2024"
ตัวอย่าง – ต้องการการปรับปรุง: "แสดงประสิทธิภาพ"ความเกี่ยวข้อง
ประเมินว่าคิวรี SQL ตรงกับ เจตนาของคําถามภาษาธรรมชาติมากน้อยเพียงใด SQL ควรส่งคืนเมตริกที่ถูกต้อง ใช้ตัวกรองที่เหมาะสม และตรงกับความละเอียดที่ร้องขอตัวอย่าง – ดี: คําถามถามจํานวนลูกค้าในเดือนมีนาคม 2025 → SQL นับลูกค้าด้วย
WHERE month='2025-03'
ตัวอย่าง – ต้องการการปรับปรุง: คําถามจะขอ จํานวน แต่ SQL จะส่งกลับ SUM(revenue) หรือกรองช่วงเวลาอื่นการทําแผนที่
ตรวจสอบว่า สัญพจน์ทั้งหมดในคําถามภาษาธรรมชาติปรากฏในแบบสอบถาม SQL หรือไม่ ทุกตัวเลข วันที่ หรือหมวดหมู่ที่กล่าวถึงในคําถามควรแสดงอย่างชัดเจนใน SQLตัวอย่าง – ดี: "คําสั่งซื้อมากกว่า 100 รายการในเดือนมีนาคม 2025 สําหรับ 'ตะวันตก'" → SQL ประกอบด้วย
> 100,2025-03, และ'West'.
ตัวอย่าง – ต้องการการปรับปรุง: SQL ขาดหนึ่งในสัญพจน์เหล่านั้น (ตัวอย่างเช่น ไม่มีตัวกรองเดือน)
ตัวอย่างจะถือว่า มีคุณภาพสูง ก็ต่อเมื่อ คะแนนทั้งสาม ได้แก่ ความชัดเจน ความเกี่ยวข้อง และการแมปเป็นบวก ใช้คะแนนเหล่านี้เพื่อปรับแต่งคิวรีตัวอย่างของคุณ: เขียนคําถามที่ไม่ชัดเจนใหม่ จัดแนว SQL ให้ใกล้เคียงกับเจตนาของคําถามมากขึ้น และตรวจสอบให้แน่ใจว่าทุกสัญพจน์ในคําถามปรากฏในคิวรี SQL กระบวนการวนซ้ํานี้ช่วยให้ตัวแทนข้อมูลเรียนรู้จากรูปแบบที่ดีขึ้นและให้ผลลัพธ์ที่แม่นยํายิ่งขึ้น