1. การสตรีมแบบ 2 ทางคืออะไร
การสตรีมแบบ 2 ทิศทาง (การสตรีมแบบ 2 ทิศทาง) ช่วยให้แอปพลิเคชันและโมเดล AI สื่อสารแบบ 2 ทางพร้อมกันได้ ซึ่งต่างจากรูปแบบคำขอ-การตอบกลับแบบเดิมที่คุณส่งข้อความที่สมบูรณ์และรอการตอบกลับที่สมบูรณ์ การสตรีมแบบ 2 ทิศทางช่วยให้ทำสิ่งต่อไปนี้ได้
- อินพุตต่อเนื่อง: สตรีมเสียง วิดีโอ หรือข้อความขณะที่บันทึก
- เอาต์พุตแบบเรียลไทม์: รับคำตอบจาก AI เมื่อมีการสร้าง
- การขัดจังหวะอย่างเป็นธรรมชาติ: ผู้ใช้สามารถขัดจังหวะ AI ขณะตอบได้เหมือนกับการสนทนากับมนุษย์

เหตุผลที่เรื่องนี้สำคัญ: การสตรีมแบบ 2 ทิศทางช่วยให้การสนทนากับ AI เป็นไปอย่างเป็นธรรมชาติ AI สามารถตอบกลับในขณะที่คุณยังคงให้บริบท และคุณสามารถขัดจังหวะได้เมื่อได้ยินมากพอแล้ว ซึ่งก็เหมือนกับการพูดคุยกับคน
ADK Gemini Live API Toolkit คืออะไร
Agent Development Kit (ADK) มีการแยกข้อมูลระดับสูงผ่าน Gemini Live API โดยจัดการการเชื่อมต่อที่ซับซ้อนของการสตรีมแบบเรียลไทม์เพื่อให้คุณมุ่งเน้นที่การสร้างแอปพลิเคชันได้

ADK Gemini Live API Toolkit จัดการสิ่งต่อไปนี้
- วงจรการเชื่อมต่อ: การสร้าง การรักษา และการกู้คืนการเชื่อมต่อ WebSocket
- การกำหนดเส้นทางข้อความ: ส่งเสียง ข้อความ และรูปภาพไปยังแฮนเดิลที่เหมาะสม
- สถานะเซสชัน: การคงประวัติการสนทนาไว้เมื่อเชื่อมต่อใหม่
- การดำเนินการเครื่องมือ: การเรียกและการดำเนินการต่อจากการเรียกฟังก์ชันโดยอัตโนมัติ
เหตุใดจึงควรใช้ ADK แทน Live API แบบดิบ
คุณสามารถสร้างแอปบน Gemini Live API ได้โดยตรง แต่ ADK จะจัดการโครงสร้างพื้นฐานที่ซับซ้อนเพื่อให้คุณมุ่งเน้นที่แอปพลิเคชันได้

ความสามารถ | Raw Live API | ADK Gemini Live API Toolkit |
เฟรมเวิร์กของเอเจนต์ | เริ่มสร้างใหม่ | เอเจนต์เดียว/หลายเอเจนต์พร้อมเครื่องมือ การประเมิน ความปลอดภัย |
การดำเนินการเครื่องมือ | การจัดการด้วยตนเอง | การดำเนินการแบบขนานอัตโนมัติ |
การจัดการการเชื่อมต่อ | การเชื่อมต่ออีกครั้งด้วยตนเอง | การกลับมาใช้เซสชันต่ออย่างโปร่งใส |
รูปแบบเหตุการณ์ | โครงสร้างที่กำหนดเอง | ออบเจ็กต์เหตุการณ์แบบรวมและแบบพิมพ์ |
เฟรมเวิร์กแบบไม่พร้อมกัน | การประสานงานด้วยตนเอง | LiveRequestQueue + เครื่องมือสร้าง run_live() |
ความต่อเนื่องของเซสชัน | การติดตั้งใช้งานด้วยตนเอง | SQL, Vertex AI หรือในหน่วยความจำในตัว |
สรุป: ADK ช่วยลดเวลาในการพัฒนาโครงสร้างพื้นฐานจากหลายเดือนเป็นการพัฒนาแอปพลิเคชันเพียงไม่กี่วัน คุณมุ่งเน้นไปที่สิ่งที่เอเจนต์ทำ ไม่ใช่วิธีการทำงานของสตรีมมิง
กรณีการใช้งานในชีวิตจริง
- ฝ่ายบริการลูกค้า: ลูกค้าแสดงเครื่องชงกาแฟที่ชำรุดผ่านกล้องโทรศัพท์ขณะอธิบายปัญหา AI จะระบุโมเดลและจุดที่เกิดข้อผิดพลาด และลูกค้าสามารถขัดจังหวะเพื่อแก้ไขรายละเอียดกลางการสนทนาได้
- อีคอมเมิร์ซ: ผู้เลือกซื้อถือเสื้อผ้าไว้ที่เว็บแคมแล้วถามว่า "หารองเท้าที่เข้ากับกางเกงตัวนี้ให้หน่อย" Agent จะวิเคราะห์สไตล์และโต้ตอบอย่างลื่นไหล: "ขอดูอะไรที่ดูสบายๆ หน่อย" → "รองเท้าผ้าใบเหล่านี้เป็นยังไง" → "เพิ่มรองเท้าสีน้ำเงินไซส์ 10"
- Field Service: ช่างเทคนิคที่สวมแว่นตาอัจฉริยะจะสตรีมมุมมองของตนเองพร้อมกับถามว่า "ฉันได้ยินเสียงแปลกๆ จากคอมเพรสเซอร์ตัวนี้ คุณระบุได้ไหมว่าเสียงนี้คืออะไร" โดย Agent จะให้คำแนะนำแบบทีละขั้นตอนแบบแฮนด์ฟรี
- การดูแลสุขภาพ: ผู้ป่วยแชร์วิดีโอสดเกี่ยวกับสภาพผิว AI จะทำการวิเคราะห์เบื้องต้น ถามคำถามเพื่อขอข้อมูลเพิ่มเติม และแนะนำขั้นตอนถัดไป
- บริการทางการเงิน: ลูกค้าตรวจสอบพอร์ตโฟลิโอของตนในขณะที่ตัวแทนแสดงแผนภูมิและจำลองผลกระทบของการซื้อขาย ลูกค้าสามารถแชร์หน้าจอเพื่อพูดคุยเกี่ยวกับบทความข่าวที่เฉพาะเจาะจงได้
การสาธิต Shopper's Concierge 2: การสาธิต RAG แบบ Agentic แบบเรียลไทม์สำหรับอีคอมเมิร์ซ ซึ่งสร้างขึ้นด้วย ADK Gemini Live API Toolkit และ Vector Search, Embeddings, Feature Store และ Ranking API ของ Vertex AI

ดูข้อมูลเพิ่มเติม: คู่มือนักพัฒนาซอฟต์แวร์
ดูข้อมูลเชิงลึกแบบครอบคลุมได้ที่คู่มือนักพัฒนาซอฟต์แวร์ ADK Gemini Live API Toolkit ซึ่งเป็นซีรีส์ 5 ตอนที่ครอบคลุมตั้งแต่สถาปัตยกรรมไปจนถึงการติดตั้งใช้งานจริง
ส่วน | โฟกัส | สิ่งที่คุณจะได้เรียนรู้ |
มูลนิธิ | สถาปัตยกรรม, แพลตฟอร์ม API แบบสด, วงจร 4 เฟส | |
จากต้นน้ำ | การส่งข้อความ เสียง วิดีโอผ่าน LiveRequestQueue | |
จากปลายน้ำ | การจัดการเหตุการณ์ การดำเนินการเครื่องมือ เวิร์กโฟลว์แบบหลายเอเจนต์ | |
การกำหนดค่า | การจัดการเซสชัน โควต้า การควบคุมการผลิต | |
Multimodal | ข้อกำหนดด้านเสียง สถาปัตยกรรมโมเดล ฟีเจอร์ขั้นสูง |
2. ภาพรวมเวิร์กช็อป
สิ่งที่คุณจะสร้าง
ในเวิร์กช็อปเชิงปฏิบัตินี้ คุณจะได้สร้างแอปพลิเคชัน AI แบบสตรีมแบบ 2 ทางที่สมบูรณ์ตั้งแต่ต้น เมื่อสิ้นสุดการฝึก คุณจะมี AI ที่สั่งงานด้วยเสียงที่ใช้งานได้ซึ่งทำสิ่งต่อไปนี้ได้
- ยอมรับอินพุตข้อความ เสียง และรูปภาพ
- ตอบกลับด้วยข้อความสตรีมมิงหรือคำพูดที่เป็นธรรมชาติ
- รับมือกับการขัดจังหวะอย่างเป็นธรรมชาติ
- ใช้เครื่องมืออย่างเช่น Google Search
ซึ่งต่างจากการอ่านเอกสารประกอบตรงที่คุณจะตรวจสอบแต่ละคอมโพเนนต์ทีละขั้นตอน และทำความเข้าใจว่าแต่ละส่วนทำงานร่วมกันอย่างไรในขณะที่คุณสร้างเพิ่มขึ้นเรื่อยๆ

แนวทางการเรียนรู้
เราใช้แนวทางการสร้างแบบเพิ่มทีละน้อย
- ขั้นตอนที่ 1: เซิร์ฟเวอร์ WebSocket ขั้นต่ำ → การตอบกลับ "Hello World"
- ขั้นตอนที่ 2: เพิ่ม Agent → กำหนดลักษณะการทำงานและเครื่องมือของ AI
- ขั้นตอนที่ 3: การเริ่มต้นแอปพลิเคชัน → บริการ Runner และเซสชัน
- ขั้นตอนที่ 4: การเริ่มต้นเซสชัน → RunConfig และ LiveRequestQueue
- ขั้นตอนที่ 5: งานต้นทาง → การสื่อสารจากไคลเอ็นต์ไปยังคิว
- ขั้นตอนที่ 6: งานปลายทาง → เหตุการณ์ไปยังการสตรีมของไคลเอ็นต์
- ขั้นตอนที่ 7: เพิ่มเสียง → การป้อนข้อมูลด้วยเสียงและการอ่านออกเสียง
- ขั้นตอนที่ 8: เพิ่มอินพุตรูปภาพ → AI แบบมัลติโมดัล
แต่ละขั้นตอนจะต่อยอดจากขั้นตอนก่อนหน้า คุณจะทดสอบหลังจากทำตามแต่ละขั้นตอนเพื่อดูความคืบหน้า
ข้อกำหนดเบื้องต้น
- บัญชี Google Cloud ที่เปิดใช้การเรียกเก็บเงินแล้ว
- มีความรู้พื้นฐานเกี่ยวกับ Python และการเขียนโปรแกรมแบบอะซิงโครนัส (async/await)
- เว็บเบราว์เซอร์ที่มีสิทธิ์เข้าถึงไมโครโฟนและเว็บแคม (แนะนำให้ใช้ Chrome)
เวลาโดยประมาณ
- เวิร์กช็อปฉบับเต็ม: ประมาณ 90 นาที
- เวอร์ชันย่อ (ขั้นตอนที่ 1-4 เท่านั้น): ประมาณ 45 นาที
3. เวิร์กช็อป
เริ่มเวิร์กช็อปโดยทำตามวิธีการที่นี่
https://github.com/kazunori279/adk-streaming-guide/blob/main/workshops/workshop.md
4. สรุปและประเด็นสำคัญ
สิ่งที่คุณสร้าง
คุณสร้างแอปพลิเคชัน AI แบบสตรีมมิงแบบ 2 ทางที่สมบูรณ์ตั้งแต่ต้น แอปพลิเคชันนี้จัดการอินพุตข้อความ เสียง และรูปภาพด้วยการตอบกลับแบบสตรีมมิงแบบเรียลไทม์ ซึ่งเป็นรากฐานในการสร้าง AI แบบสนทนาที่พร้อมใช้งานจริง
คอมโพเนนต์ | สิ่งที่ทำ | Step |
Agent | กำหนดบุคลิกภาพ คำสั่ง และเครื่องมือที่มีให้ใช้งานของ AI (เช่น Google Search) | ขั้นตอนที่ 2 |
SessionService | เก็บประวัติการสนทนาไว้เมื่อเชื่อมต่อใหม่ | ขั้นตอนที่ 3 |
นักวิ่ง | จัดระเบียบวงจรการสตรีม เชื่อมต่อตัวแทนกับ Live API | ขั้นตอนที่ 3 |
RunConfig | กำหนดค่ารูปแบบการตอบกลับ (TEXT/AUDIO), การถอดเสียง และการกลับมาใช้เซสชันต่อ | ขั้นตอนที่ 4 |
LiveRequestQueue | อินเทอร์เฟซแบบรวมสำหรับการส่งข้อความ เสียง และรูปภาพไปยังโมเดล | ขั้นตอนที่ 5 |
run_live() | เครื่องมือสร้างแบบอะซิงโครนัสที่สร้างเหตุการณ์สตรีมมิงจากโมเดล | ขั้นตอนที่ 6 |
send_realtime() | ส่ง Blob เสียง/รูปภาพสำหรับอินพุตการสตรีมอย่างต่อเนื่อง | ขั้นตอนที่ 7-8 |
แหล่งข้อมูล
เรียนรู้ต่อด้วยแหล่งข้อมูลอย่างเป็นทางการเหล่านี้ คู่มือ ADK Gemini Live API Toolkit จะให้ข้อมูลเชิงลึกเกี่ยวกับทุกสิ่งในเวิร์กช็อปนี้
แหล่งข้อมูล | URL |
เอกสารประกอบ ADK | |
คู่มือ ADK Gemini Live API Toolkit | |
Gemini Live API | |
Vertex AI Live API | https://cloud.google.com/vertex-ai/generative-ai/docs/live-api |
ที่เก็บตัวอย่าง ADK |