คอมโพเนนต์ React สำหรับควบคุมด้วยเสียงบน OpenAI Realtime API
(github.com/openai)- คอมโพเนนต์ควบคุมด้วยเสียงสำหรับ React/เบราว์เซอร์ ที่สร้างอยู่บน Realtime API
- สามารถสั่งงานได้ด้วยเสียงตั้งแต่การกรอกฟอร์มไปจนถึงการสั่งการทำงานหลากหลายรูปแบบ และสร้างวิดเจ็ตที่ตอบสนองต่อคำสั่งเหล่านั้นได้
- มีแพตเทิร์น tool-constrained UI เพื่อจำกัดให้แอสซิสแทนต์ ทำได้เฉพาะการกระทำที่แอปอนุญาตเท่านั้น
- การเชื่อมต่อเซสชัน, การประมวลผลเสียง, การรันเครื่องมือ, และการประกอบทรานสคริปต์ ถูก ควบคุมแบบรวมศูนย์โดยคอนโทรลเลอร์ตัวเดียว ทำให้นักพัฒนาไม่จำเป็นต้องจัดการ WebRTC หรือโปรโตคอล Realtime โดยตรง
- เมื่อนำไปติดกับแอปเดิม แอปยังคงเป็น แหล่งข้อมูลสถานะเพียงหนึ่งเดียว (source of truth) และเลเยอร์เสียงมีหน้าที่แค่เรียกใช้แฮนด์เลอร์ของแอปที่ถูกจำกัดไว้
- เป็นแพ็กเกจแบบ opinionated ที่ ออกแบบมาเฉพาะสำหรับ UI flow บนเบราว์เซอร์ ไม่ใช่เฟรมเวิร์ก orchestration แบบอเนกประสงค์ และหากต้องการ runtime ที่ไม่ใช่ React หรือ agent orchestration แนะนำให้ใช้ Raw Realtime หรือ
openai-agents-js - มี คู่มือ 9 ขั้นตอน สำหรับการรวมเข้ากับแอปเดิม ตั้งแต่การทำพร็อกซีเอนด์พอยต์
/session→ สร้าง voice adapter wrapper → ลงทะเบียนเครื่องมือ → hoist คอนโทรลเลอร์ → mount วิดเจ็ต - โดยค่าเริ่มต้นคอนโทรลเลอร์ใช้
server_vadและในเซสชันแบบ tool-only จะตั้งค่าinterruptResponse: falseเพื่อไม่ให้การเรียกใช้เครื่องมือที่กำลังทำงานอยู่ถูกยกเลิกด้วยเสียงใหม่ - ในเดโมแอปสามารถดูตัวอย่างการรวมระบบได้หลายแบบ เช่น การสลับธีม, ฟอร์มหลายขั้นตอน, โฟลว์หมากรุกที่แชร์สถานะร่วมกัน, และการทดลอง wake-word
- ไลเซนส์ Apache-2.0
1 ความคิดเห็น
วิดีโอการใช้งานดูได้ที่ https://x.com/OpenAIDevs/status/2048871260512473385
ดูเหมือนว่าจะทำงานได้ดีและค่อนข้างเร็วเลยนะครับ แต่เพราะค่าใช้ API ค่อนข้างเป็นภาระ การใช้งานจริงคงมีข้อจำกัดอยู่บ้าง..
ถ้าสิ่งแบบนี้สามารถทำได้บนโมเดลแบบโลคัลก็น่าจะน่าใช้ทีเดียวครับ