Langfuse WorkshopClickHouse Workshops

05 ชุดข้อมูล

คุณมีแอปที่ติดตาม กำหนดคุณลักษณะ และมีการตรวจสอบได้ data/seed-dataset.json และ scripts/seed-dataset.ts มีอยู่ในที่เก็บที่จุดเช็คพอยต์นี้แล้ว

วัสดุการอบรมได้รับการบำรุงรักษาในที่เก็บ langfuse/langfuse-workshop สาธารณะ ใช้ที่เก็บสำหรับแอปที่สามารถรันได้ สาขาจุดเช็คพอยต์ และการตั้งค่าระดับท้องถิ่น

ดูไฟล์ Markdown นี้

จุดเริ่มต้น

git checkout checkpoint/05-dataset

คุณมีแอปที่ติดตาม กำหนดคุณลักษณะ และมีการตรวจสอบได้ data/seed-dataset.json และ scripts/seed-dataset.ts มีอยู่ในที่เก็บที่จุดเช็คพอยต์นี้แล้ว

ตรวจสอบให้แน่ใจว่า .env มี:

DATASET_NAME=dad-it-support-workshop

เหตุใดจึงต้องสร้างชุดข้อมูล

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

เรียนรู้เพิ่มเติมในบทเรียน Langfuse Academy เกี่ยวกับชุดข้อมูล.

เป้าหมาย

ปลูกชุดข้อมูลแรกที่จับประเภทของคำขอที่เราคาดหวังว่า Specs จะจัดการ เพื่อไปถึงที่นั่น:

  1. ทำความเข้าใจรูปแบบรายการ — รายการชุดข้อมูลทุกรายการมีฟิลด์เดียวกันสามฟิลด์ และเราต้องการให้ของเราตรงกับอินพุตจริงของเอเจนต์
  2. ปลูกชุดข้อมูลที่โฮสต์ เพื่อให้อยู่ใน Langfuse และพร้อมสำหรับการทดลองในขั้นตอนถัดไป

วิธีที่ Specs จัดการตั๋ว — เอเจนต์หนึ่ง เครื่องมือสองตัว รุ่นหนึ่ง แต่ละช่องเป็นการสังเกตในร่องรอย

ขั้นตอนที่ 1 — อ่านรูปแบบรายการ

รายการชุดข้อมูลใน Langfuse ปฏิบัติตามรูปแบบที่สอดคล้องกัน — สามฟิลด์ หนึ่งที่จำเป็น สองฟิลด์เป็นทางเลือก:

ฟิลด์จำเป็นวัตถุประสงค์
inputใช่สิ่งที่คุณจะป้อนให้เอเจนต์ สำหรับเรา รูปแบบ { messages: [...] } เดียวกัน /api/chat ยอมรับ
expectedOutputทางเลือกคำตอบที่ดีจะเป็นอย่างไร ฟรี — ใช้โดยตัวประเมินผลเพื่อเปรียบเทียบจริงกับคาดหวัง
metadataทางเลือกแท็กหรือฟิลด์อื่นสำหรับการกรองและการจัดกลุ่ม (category, difficulty เป็นต้น)

สำหรับเรา รูปแบบแนวคิดของรายการเดียวคือ:

{
  "input": "How do I turn Bluetooth on on my iPhone?",
  "expectedOutput": {
    "idealAnswer": "Open Settings, tap Bluetooth, and turn the Bluetooth switch on.",
    "expectedKeywords": ["Settings", "Bluetooth", "switch", "on"]
  },
  "metadata": { "category": "iphone-bluetooth", "difficulty": "easy" }
}

สองฟิลด์ภายใน expectedOutput ตอบคำถามตัวประเมินผลที่แตกต่างกันสองคำถาม:

  • idealAnswer คือคำตอบอ้างอิงที่อ่านได้โดยมนุษย์ มันคือสิ่งที่ตัวประเมินผลความถูกต้องแบบ LLM-as-a-judge (บทที่ 06) อ่านจาก $.idealAnswer เพื่อตัดสินใจว่าความหมายตรงกัน
  • expectedKeywords คือรายการสตริงเล็กน้อยที่คำตอบ ต้อง มีเพื่อให้ถือว่า "ครอบคลุมขั้นตอน" ในบทที่ 06 สคริปต์การทดลองใช้มันสำหรับคะแนน keyword_overlap ที่กำหนด — เร็ว ราคาถูก และไม่ต้องเรียกโมเดล

metadata ให้เราแบ่งการรันตามหมวดหมู่หรือความยากลำบากภายหลังเมื่อเปรียบเทียบการรันการทดลองแบบเคียงข้าง

หากคุณดู JSON ที่แท้จริงใน data/seed-dataset.json input คือรูปแบบ { messages: [...] } เต็มที่ /api/chat ยอมรับ บวกฟิลด์ id สำหรับแถวชุดข้อมูล เราได้ลดความซับซ้อนของตัวอย่างข้างบนเพื่อแสดง รายการคืออะไร รูปแบบบนดิสก์คือสิ่งที่สคริปต์การทดลอง (ขั้นตอน 06) สามารถป้อนลงใน runSupportConversation(...) ได้โดยตรงโดยไม่ต้องเขียนใหม่อินพุต

ขั้นตอนที่ 2 — ปลูกชุดข้อมูล

คุณมีตัวเลือกหลายตัวสำหรับการนำรายการเข้าสู่ชุดข้อมูล Langfuse:

  • เพิ่มรายการด้วยตนเอง ใน UI (ชุดข้อมูล → รายการใหม่)
  • อัปโหลดไฟล์ CSV / JSON ผ่าน UI
  • เปลี่ยนร่องรอยการใช้งานจริงที่ใช้งานอยู่ เป็นรายการชุดข้อมูลโดยตรงจากมุมมองร่องรอย — นี่คือเส้นทางที่ทรงพลังที่สุดเมื่อคุณมีการตรวจสอบที่จับร่องรอยที่น่าสนใจ
  • การปลูกแบบโปรแกรม ผ่าน SDK / CLI — ดีที่สุดสำหรับการโหลดแบบรวมเริ่มต้นเช่นของเรา

สำหรับการอบรมนี้เราใช้เส้นทางโปรแกรมเพราะเรามีไฟล์ JSON ที่ได้รับการคัดสรร:

npm run dataset:seed

เปิด Langfuse → ชุดข้อมูล มุมมองรายการควรแสดงชุดข้อมูล dad-it-support-workshop ใหม่ที่มี 14 รายการและ 0 การรันการทดลอง (จนถึงตอนนี้):

มุมมองรายการชุดข้อมูลใน Langfuse — dad-it-support-workshop ที่มี 14 รายการและไม่มีการรันใด ๆ

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

มุมมองรายการของชุดข้อมูล dad-it-support-workshop — ทั้ง 14 แถวที่มีอินพุตข้อความ คำตอบในอุดมคติ + คำสำคัญที่คาดหวัง และข้อมูลเมตาหมวดหมู่/ความยากลำบาก

สิ่งที่ชุดข้อมูลเริ่มต้นครอบคลุม

  • พื้นฐาน iPhone Bluetooth และกรณีขอบ
  • iPhone Wi-Fi เชื่อมต่อใหม่ + "ฉันไม่เห็นเครือข่าย"
  • จับภาพ + แชร์ WhatsApp
  • ทิศทาง Apple Maps + ขีดจำกัดตำแหน่งสด
  • ข้อความพื้นฐาน
  • นอกเหนือขอบเขต (ยื่นภาษีของฉัน จองรถไฟของฉัน)
  • กรณีจำกัด (รหัสผ่าน ตำแหน่งสด)

หากคุณเพิ่มรายการในภายหลัง ให้ชอบไลค์ที่ตรงกับสัญญาณจริงที่คุณเห็นในการตรวจสอบมากกว่ารายการที่คิดค้นขึ้นจากศูนย์

วิธีตรวจสอบว่าคุณเสร็จสิ้นแล้ว

  • ชุดข้อมูลปรากฏใน Langfuse พร้อมรายการทั้งหมด
  • อินพุตรายการดูเหมือนอาร์เรย์ messages ที่การเปิดใช้งานแชทจริงจะมี
  • คุณสามารถอธิบายโหมดความล้มเหลวที่ชุดข้อมูลครอบคลุม

ห่อ

ชุดข้อมูลคือวิธีที่คุณเขียนลงสิ่งที่ระบบของคุณคาดว่าจะจัดการ ชุดข้อมูลที่ดีให้ความมั่นใจแก่คุณในการปล่อยและเพื่อวนซ้ำโดยไม่ถดถอย คุณสามารถปลูกชุดข้อมูลผ่าน Langfuse CLI หรือทักษะ สร้างมันจากร่องรอยการใช้งานจริงใน UI หรือบำรุงรักษาพวกมันในโค้ดเช่นที่เราทำ — วิธีที่ถูกต้องขึ้นอยู่กับว่าตัวอย่างที่ดีที่สุดของคุณมาจากที่ใด

ต่อไปเราใช้ชุดข้อมูลนี้เพื่อรันการทดลองกับเอเจนต์

สถานะการสิ้นสุด

นี่คือจุดเริ่มต้นสำหรับ 06-experiments

ในหน้านี้

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

TH