วงจรชีวิตของเซสชัน
เซสชันคือหน่วยการทำงานหลักใน Whisperer: ช่วงเวลาที่ไคลเอนต์รับฟังการประชุม ถอดเสียงคำพูด และรับคำตอบจาก LLM การเข้าใจวงจรชีวิตจะช่วยให้คุณใช้การเริ่ม/หยุดชั่วคราวได้อย่างถูกต้อง ตีความสถานะต่าง ๆ ในแดชบอร์ด และแก้ไขปัญหาได้
เมื่อใดควรอ่านบทความนี้
อ่านบทความนี้หากคุณต้องการเข้าใจ:
- สิ่งที่เกิดขึ้นกับข้อมูลของคุณในแต่ละช่วงของการประชุม
- ทำไมบางครั้งคำตอบถึงล่าช้า และสตริปต์ถูกบันทึกเมื่อใด
- การเชื่อมต่อระหว่างไคลเอนต์กับเซิร์ฟเวอร์ทำงานอย่างไร
ช่วงต่าง ๆ ของเซสชัน
1. เริ่ม
การกดปุ่ม "เริ่ม" (หรือปุ่มลัดบนแป้นพิมพ์) จะทำให้ไคลเอนต์เข้าสู่โหมดทำงาน:
- ไคลเอนต์เปิดการเชื่อมต่อไปยังเซิร์ฟเวอร์และส่งตัวระบุอุปกรณ์พร้อมโทเคน
- เซิร์ฟเวอร์ตรวจสอบการสมัครสมาชิกและโควตานาที หากผ่านการตรวจสอบ เซิร์ฟเวอร์จะยืนยันการเริ่มเซสชันและคืนค่าตัวระบุเซสชัน
- ไคลเอนต์เปิดใช้งานการรับเสียงและเริ่มบันทึก
2. การบันทึก (สตรีมมิ่ง)
เสียงจะถูกส่งเป็นชิ้นสั้น ๆ ทุก ~0.8 วินาที แต่ละชิ้นจะถูกระบุผู้พูด: ผู้ใช้หรือคู่สนทนา
เซิร์ฟเวอร์จะบัฟเฟอร์ชิ้นเสียงและส่งไปประมวลผลการรู้จำเสียง สตริปต์จะถูกส่งกลับไปยังไคลเอนต์แบบเรียลไทม์และแสดงใน LiveTranscriptStrip
3. คำขอและคำตอบ
เมื่อผู้ใช้กด "ถาม" (หรือปุ่มลัดบนแป้นพิมพ์) ไคลเอนต์จะส่งเฟรม ask พร้อมบริบทของสตริปต์ปัจจุบัน
เซิร์ฟเวอร์จะประกอบ system prompt (role prompt → บริบทผู้ใช้ → RAG จากฐานความรู้) แล้วสอบถามไปยัง LLM คำตอบจะสตรีมเข้ามา: ข้อความจะปรากฏขณะที่ถูกสร้างขึ้นและแสดงทันทีใน AnswerArea พร้อมรองรับ Markdown และการแบ่งหน้า (หากมีหลายคำตอบ)
4. หยุดชั่วคราว
การกด "หยุดชั่วคราว" จะหยุดการรับเสียง แต่การเชื่อมต่อ WebSocket ยังคงเปิดอยู่ ตัวจับเวลาเซสชันจะหยุดชั่วคราว กลับมาทำงานต่อโดยกด "ดำเนินต่อ"
5. สิ้นสุด
การกด "หยุด" หรือปิดไคลเอนต์:
- ไคลเอนต์ส่งเฟรม
session.end - เซิร์ฟเวอร์เขียนสตริปต์ที่บัฟเฟอร์ไว้และรายการคำตอบที่เสร็จสมบูรณ์ลงในฐานข้อมูล
- WebSocket ปิด
- ในแดชบอร์ดบนเว็บ เซสชันจะปรากฏในส่วน ประวัติ พร้อมสตริปต์เต็มและการวิเคราะห์
📸 [ภาพหน้าจอ: แผง Whisperer ในโหมดบันทึก — เห็น LiveTranscriptStrip และปุ่มควบคุม]
การจัดเก็บข้อมูล
โดยค่าเริ่มต้น สตริปต์และคำตอบจาก LLM จะถูกบันทึกลงในฐานข้อมูลและสามารถเข้าถึงได้ในแดชบอร์ด หากเปิดใช้ โหมดไม่บันทึกล็อก (no-logs) ข้อมูลจะถูกลบหลังจากเซสชันสิ้นสุด — แต่นาทีที่ใช้ไปจะยังคงถูกนับ
ข้อผิดพลาดที่พบบ่อย
| ข้อผิดพลาด | สาเหตุ | วิธีแก้ |
|---|---|---|
| เซสชันไม่เริ่ม | อีเมลยังไม่ได้รับการยืนยันหรือไม่มีการสมัครสมาชิกที่ใช้งานอยู่ | ตรวจสอบสถานะบัญชีและโควตา |
| "ไม่ได้ยินเสียงอีกฝ่าย" | ยังไม่ได้ให้สิทธิ์บันทึกหน้าจอ (macOS) หรือไม่สามารถรับเสียงระบบได้ (Windows) | สิทธิ์ macOS / Windows |
| สตริปต์ไม่ปรากฏ | การเชื่อมต่ออินเทอร์เน็ตไม่ดีหรือ WebSocket หลุด | ตรวจสอบเครือข่ายของคุณ; เริ่มเซสชันใหม่ |
| คำตอบจาก LLM ใช้เวลานานเกินไป | ผู้ให้บริการ AI ทำงานหนักเกินไปหรือเลือกใช้โมเดลที่ช้า | เปลี่ยนโมเดลในการตั้งค่า |
แนวทางปฏิบัติที่ดีที่สุด
- หยุดเซสชันอย่างชัดเจน ด้วยปุ่ม "หยุด" — เพื่อรับประกันว่าข้อมูลจะถูกเขียนลงในประวัติ
- หยุดชั่วคราว ในช่วงพักยาว ๆ ระหว่างการประชุม — ตัวจับเวลาจะหยุดและไม่เสียนาทีไปเปล่า ๆ
- ใช้โหมดไม่บันทึกล็อก (no-logs) สำหรับการประชุมที่เป็นความลับซึ่งไม่ต้องการให้จัดเก็บสตริปต์