แอปอัจฉริยะ

การสร้างผู้ช่วยคนขับรถ Formula E บน Android ด้วย ML Kit และ Gemini Nano

ลำโพง

  • Alastair Breeze

    วิศวกรซอฟต์แวร์อาวุโส - สำนักงาน CTO ของ Google Cloud

  • Oli Thompson

    นักวิทยาศาสตร์ข้อมูลระดับเริ่มต้น, Formula E

เกี่ยวกับ

เกี่ยวกับการเสวนา

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

เซสชันทางเทคนิคนี้จะสำรวจสถาปัตยกรรมแบบผสมผสานเชิงทดลองที่รวมฮาร์ดแวร์ Edge และตัวแทนระบบคลาวด์เข้าด้วยกัน เราจะอธิบายการพิสูจน์แนวคิดการวิจัยโดยใช้ Raspberry Pi เพื่อสตรีมการวัดและส่งข้อมูลทางไกลของ CAN Bus, โทรศัพท์ Pixel ที่เรียกใช้ Agent แบบสนทนาในอุปกรณ์ซึ่งขับเคลื่อนโดย ML Kit และ Gemini Nano รวมถึงการเชื่อมต่อระบบคลาวด์แบบ Agent-to-Agent (A2A) สำหรับเวิร์กโฟลว์หลังการแข่งขัน

สรุป

  • สภาพแวดล้อมการแข่งขัน Formula E ท้าทาย Edge AI ด้วยอากาศร้อนจัดและข้อกำหนดเวลาในการตอบสนองต่ำ โทรศัพท์ Pixel โฮสต์ตัวแทนเพื่อตอบคำถามของคนขับที่เดินทางด้วยความเร็วมากกว่า 200 กม./ชม.
  • Android โฮสต์สถาปัตยกรรม Edge โดยใช้ Agent Developer Kit และ Gemini Nano ผ่าน ML Kit ตัวแทน Edge สามารถสนทนากับตัวแทนระบบคลาวด์ได้โดยตรงผ่านโปรโตคอล A2A
  • การผสานรวมยานพาหนะจะกำหนดเส้นทางข้อมูลการตรวจวัดระยะไกลของ CAN Bus แบบสดผ่าน Raspberry Pi เพื่อเผยแพร่ข้อมูล 10 Hz ที่ลดอัตราสุ่มสัญญาณผ่าน MQTT ตัวแทน Android จะรวมข้อมูลนี้เข้ากับข้อมูลเสียงที่ผู้ขับป้อนเพื่อประเมินคำถามและพูดตอบกลับ
  • การทดสอบในสนามแข่งที่กูดวูดพิสูจน์ให้เห็นว่าโทรศัพท์สามารถรับมือกับความร้อนที่รุนแรงได้โดยไม่มีปัญหา การแก้ไขข้อบกพร่องในนาทีสุดท้ายช่วยแก้ปัญหาการเชื่อมต่อบลูทูธกับหมวกกันน็อกของคนขับก่อนที่รถจะวิ่งขึ้นเนิน

Gemini Notebook

หัวข้อ

  • gemini-nano
  • ml-kit
  • on-device-ai
  • ai-agents
  • formula-e

ข้อความถอดเสียง

บทนำ

  • สวัสดี

  • ผมชื่อ Alastair และวันนี้ผมยินดีอย่างยิ่งที่จะได้พูดคุยกับคุณเกี่ยวกับโปรเจ็กต์เล็กๆ ที่เราทำร่วมกับ Formula E เมื่อปีที่แล้ว

  • และวันนี้เรามี Oli มาร่วมพูดคุยเกี่ยวกับสิ่งที่เราทำร่วมกัน

  • ผมทำงานใน Google Cloud ในสำนักงาน CTO และเรามักจะพยายามผลักดันขอบเขตของสิ่งที่เป็นไปได้บนอุปกรณ์เคลื่อนที่ในปัจจุบันและระบบคลาวด์ รวมถึงวิธีที่ทั้งสองอย่างนี้จะทำงานร่วมกันได้

  • เราจะแสดงวิดีโอสั้นๆ ที่จะแนะนำให้คุณทราบว่าเราทำอะไรกันบ้าง

  • รถ Gen 4 มีขุมพลังการแข่งรถถึง 600 กิโลวัตต์

  • พลังงานไฟฟ้าทั้งหมด ระบบขับเคลื่อนสี่ล้อตลอดเวลา

  • ฉันจะอธิบายว่ามันเร็วมาก

  • เราจะใช้ Agent ในโทรศัพท์ Pixel ที่เชื่อมต่อกับข้อมูลการตรวจวัดระยะไกลที่มาจากรถได้ไหม

  • ขณะที่คนขับขับรถขึ้นเนินที่กู๊ดวูด พวกเขาจะพูดคุยกับรถได้จริงๆ

  • เจ๋งใช่ไหมล่ะ

  • Hey Gemma ยางรถของฉันเป็นยังไงบ้าง

  • แรงดันลมยางดูดี อยู่ที่ประมาณ 1.4 บาร์

  • มีโทรศัพท์ที่เสียบเข้ากับ ECU โดยตรง ซึ่งจะอ่านจุดข้อมูลจำนวนมากเกี่ยวกับสิ่งที่ฉันทำในฐานะคนขับ

  • นี่เป็นครั้งแรกที่เกิดเหตุการณ์เช่นนี้ในรถแข่ง

  • ฉันคิดว่าไม่มีที่ไหนที่จะแสดงผลงานได้ดีไปกว่านี้อีกแล้ว

  • Hey Gemma เราพร้อมหรือยัง

  • พร้อมใช้งานทุกเมื่อที่คุณต้องการ

ความท้าทายในการเรียกใช้ Agent ที่ Edge

  • สิ่งที่เราเห็นคือโปรเจ็กต์ที่เราต้องการลองนำเอเจนต์ผู้ช่วยคนขับเข้าไปในห้องนักบินร่วมกับคนขับ

  • และโดยพื้นฐานแล้ว สิ่งที่เราพยายามทำคือการก้าวข้ามขีดจำกัดของสิ่งที่เป็นไปได้ด้วย Agent ที่ Edge เนื่องจากนี่เป็นตัวอย่างที่ดีของความท้าทายที่ยากมาก

  • ความท้าทายที่คุณเห็นในรถแข่งคือความร้อนสูงอย่างเห็นได้ชัด

  • รถแข่งขึ้นชื่อเรื่องความร้อน และนั่นก็เป็นส่วนหนึ่งของความท้าทายที่ยิ่งใหญ่ที่สุด

  • การเชื่อมต่อไม่เสถียร

  • เราจะทำสิ่งนี้ที่งาน Goodwood Festival of Speed ซึ่งเป็นงานที่แฟนๆ มอเตอร์สปอร์ตหลายแสนคนมารวมตัวกันเพื่อชมการแข่งรถขึ้นเขา

  • และอย่างที่คุณพอจะนึกออก เมื่อมีคนหลายแสนคนอยู่ในสนาม การเชื่อมต่อก็อาจเป็นเรื่องที่ท้าทายมาก

  • บลูทูธด้วยเช่นกัน

  • เช่น รถคันนี้เป็นกรงฟาราเดย์ คุณจึงจินตนาการได้ถึงความท้าทายในการเชื่อมต่อกับหมวกกันน็อกของนักแข่งรถ

  • และสุดท้ายคือข้อกำหนดเกี่ยวกับเวลาในการตอบสนองต่ำ

  • คนขับรถรายนี้ขับรถด้วยความเร็วมากกว่า 200 กม./ชม. ดังนั้นจึงเป็นเรื่องสำคัญอย่างยิ่งที่คำตอบที่ได้รับจากตัวแทนผู้ช่วยคนขับจะต้องรวดเร็วและฉับไว

  • และโดยพื้นฐานแล้ว เราสนใจเรื่องนี้มากเพราะเราเชื่อว่าเอเจนต์จะกลายเป็นสิ่งที่พบได้ทั่วไป

  • เราเริ่มเห็นการเปลี่ยนแปลงนี้แล้ว

  • เพราะไม่ได้อยู่ในคอมพิวเตอร์ของเราอีกต่อไป

  • ซึ่งอยู่ในโทรศัพท์ นาฬิกา แว่นตา สมาร์ทโฮม และแม้แต่รถยนต์ของเราในตอนนี้

  • ดังนั้น โดยพื้นฐานแล้ว เราจึงอยากเห็นว่าเราจะทำอะไรได้บ้างในสถานการณ์ที่ยากลำบากเช่นนี้

  • และเมื่อเรากำลังระดมความคิดว่าจะสร้างสิ่งนี้ได้อย่างไร เราจะสร้างไมโครคอมพิวเตอร์ขนาดเล็กที่มีตัวเร่งความเร็วขนาดเล็กเพื่อสร้างโมเดลที่นั่นไหม

  • เราตระหนักได้ทันทีว่าเรามีส่วนประกอบทั้งหมดที่จำเป็นอยู่แล้ว นั่นก็คือ Android

ทำไม Android จึงเป็นโฮสต์ที่เหมาะสมที่สุด

  • Android เป็นโฮสต์ที่สมบูรณ์แบบสำหรับเรื่องนี้เพราะคุณมี ADK ซึ่งเป็น Agent Developer Kit ของเรา

  • นี่เป็นไลบรารีที่ยอดเยี่ยมมากซึ่งช่วยให้คุณสร้าง Agent ลงในแอปพลิเคชันได้โดยตรง

  • มีผู้ใช้หลายพันล้านคน และคุณก็ทราบดีว่ามีอุปกรณ์รูปแบบต่างๆ ที่เราสามารถเรียกใช้โค้ดนี้ได้อย่างง่ายดาย ดังนั้นจึงทดสอบและเผยแพร่โค้ดได้ง่ายมาก

  • เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ที่ช่วยให้คุณแก้ไขข้อบกพร่อง ลองทำสิ่งต่างๆ และค้นหาสิ่งที่ผิดพลาด

  • AI ในอุปกรณ์ โทรศัพท์ Google Pixel มาพร้อมกับ TPU ในตัวโทรศัพท์ ซึ่งได้รับการเพิ่มประสิทธิภาพสำหรับโมเดลในอุปกรณ์ที่อยู่ในโทรศัพท์ ทำให้การใช้ API อย่าง ML Kit เพื่อเข้าถึงโมเดลที่มีประสิทธิภาพสูงเป็นเรื่องง่ายมาก

  • นอกจากนี้ เรายังมีฟีเจอร์ต่างๆ เช่น การอ่านออกเสียงข้อความและการจดจำเสียงพูด ซึ่งเป็น API แบบออฟไลน์โดยสมบูรณ์ที่ช่วยให้คุณได้รับประสบการณ์การสนทนาที่มีประสิทธิภาพอย่างแท้จริง

  • และสุดท้ายคือการเชื่อมต่อ

  • โทรศัพท์สร้างขึ้นเพื่อการเชื่อมต่อ ไม่ว่าจะผ่านเครือข่ายมือถือ, Wi-Fi หรือวิธีอื่นๆ

  • แต่ความท้าทายอย่างหนึ่งคือ Agent ที่ Edge ไม่สามารถทำทุกอย่างได้ แล้ว Agent เหล่านี้จะทำงานร่วมกับ Agent ในระบบคลาวด์ได้อย่างไร

  • แล้วถ้าโซลูชันเป็นแบบผสมผสานล่ะ

  • จะเกิดอะไรขึ้นหาก Agent ที่อยู่ในโทรศัพท์สามารถพูดคุยกับ Agent ในระบบคลาวด์ได้โดยตรงเพื่อดำเนินการที่ซับซ้อนมากขึ้น

  • ลองนึกภาพว่าคนขับต้องการทราบว่าตนเองอยู่ในอันดับที่เท่าไรในการแข่งขัน

  • ตัวรถเองจะไม่รู้ว่าตัวเองอยู่ในตำแหน่งใดในการแข่งขัน แต่เอเจนต์ในระบบคลาวด์อาจรู้

  • และเรามีโปรโตคอลที่เรียกว่า Agent-to-Agent ซึ่งหมายความว่าคุณสามารถสร้าง Agent บน Edge และในระบบคลาวด์ และให้ Agent เหล่านั้นสนทนากันเพื่อดำเนินการที่ซับซ้อนมากขึ้นได้

สถาปัตยกรรมหลักของ Agent

  • แล้วเราสร้างฟีเจอร์นี้ขึ้นมาได้อย่างไร

  • เราจะอธิบายองค์ประกอบของระบบนี้ให้คุณทราบ

  • เริ่มจากชุดสายไฟ

  • ตอนนี้ Harness ที่นี่เป็นแอปพลิเคชัน Android ที่ใช้ Agent Developer Kit สำหรับ Android

  • ส่วนที่ 2 คือโมเดล

  • คุณต้องมีโมเดลเพื่อขับเคลื่อนฟีเจอร์นี้ และสำหรับเรา เราใช้ Gemini Nano ผ่าน ML Kit ซึ่งเป็นโมเดลในอุปกรณ์ที่ทรงพลังอย่างยิ่งและพร้อมให้คุณใช้งานได้ทันที

  • จากนั้นก็ข้อมูล

  • Oli จะพูดถึงเรื่องนี้สักเล็กน้อยในอีกสักครู่ แต่คุณมีข้อมูลที่มาจากรถยนต์ และอาจมีการจดจำเสียงพูดจากคนขับด้วย

  • และสุดท้าย คุณยังมีการดำเนินการที่ตัวแทนทำได้ด้วย

  • ซึ่งอาจเป็นฟีเจอร์อ่านออกเสียงข้อความเพื่อให้สามารถพูดคุยกับคนขับและถามคำถามติดตามผลหรือให้ข้อมูลที่จำเป็น หรือตามที่กล่าวไว้ก่อนหน้านี้ คือการสื่อสารระหว่าง Agent กับ Agent ในระบบคลาวด์เพื่อดำเนินการที่ซับซ้อนมากขึ้น

  • ตอนนี้ฉันขอเชิญ Oli ขึ้นมาบนเวทีเพื่อพูดคุยเล็กน้อยเกี่ยวกับวิธีที่เราทำสิ่งนี้กับ Formula E

การผสานรวมฮาร์ดแวร์และระบบตรวจวัดระยะไกลของยานพาหนะ

  • ขอบคุณ Alastair

  • เรามีส่วนประกอบต่างๆ แล้ว ตอนนี้มาถึงส่วนที่ยากกันบ้าง นั่นคือเราจะผสานรวม AI Agent เข้ากับรถ Formula E ได้อย่างไร

  • โดยเริ่มจาก VCU หรือหน่วยควบคุมยานพาหนะ

  • ตอนนี้เซ็นเซอร์และส่วนประกอบทุกอย่างในรถจะรายงานกลับไปยังคอมพิวเตอร์ผ่านสิ่งที่เรียกว่า CAN Bus

  • และรถยนต์ก็สร้างข้อมูลการวัดระยะไกลหลายพันจุดต่อวินาที เช่น ความเร็ว การเร่งความเร็ว คันเร่ง การเบรก และอื่นๆ

  • ดังนั้น เพื่อที่จะอ่านข้อมูลการวัดและส่งข้อมูลทางไกลนี้ เราจึงตัดสินใจเสียบ Raspberry Pi เข้ากับ VCU ของรถโดยตรงผ่านการเชื่อมต่อ CAN นี้

  • Raspberry Pi ทำงานได้หลายอย่าง

  • ขั้นแรก ระบบจะถอดรหัสสัญญาณดิบ แปลงสัญญาณ และลดอัตราการสุ่มตัวอย่างลงเหลือประมาณ 10 Hz ซึ่งเป็นข้อมูลที่เพียงพอสำหรับผู้ช่วยคนขับ

  • จากนั้น Raspberry Pi จะเผยแพร่ข้อมูลที่ปรับแต่งแล้วนี้ผ่าน MQTT ไปยัง Pixel 10 Pro ที่อยู่ในห้องคนขับของรถ

  • และนี่คืออินพุตหนึ่งที่แอป App Hosting ของเรายอมรับได้

  • ส่วนที่ 2 คือการจดจำคำพูดของ Android

  • ดังนั้นเมื่อคนขับพูด แอปจะแปลงเสียงเป็นข้อความ และ Gemini Nano จะสามารถให้เหตุผลเกี่ยวกับอินพุตทั้ง 2 รายการนี้ได้

  • ตอนนี้ Agent สามารถตัดสินใจได้ 2 อย่าง อย่างแรกคือใช้เครื่องมืออ่านออกเสียงข้อความของ Android เพื่อพูดคุยกับคนขับ

  • และประการที่ 2 ดังที่ Alastair ได้กล่าวไว้ก่อนหน้านี้ อุปกรณ์จะสื่อสารกลับไปยังตัวแทนระบบคลาวด์ผ่านโปรโตคอล A2A ได้

  • ทีนี้ ขั้นตอนการทำงานของ Agent ก็ค่อนข้างง่าย เพียงพูดฮอตเวิร์ด ซึ่งในกรณีนี้คือ "Hey Gemma" ถามคำถาม แล้วรับคำตอบ

  • หลังจากนั้น Agent จะคอยฟังต่ออีกประมาณ 5 วินาทีเพื่อให้คุณถามคำถามต่อเนื่องได้โดยไม่ต้องเริ่มใหม่ เหมือนกับการพูดคุยกับวิศวกรการแข่งขันจริงๆ

  • นอกจากนี้ แอปยังเป็น Agent แบบหลายเทิร์น ซึ่งหมายความว่าแอปจะเข้าถึงประวัติการสนทนาเพื่อให้สนทนาได้เป็นธรรมชาติมากขึ้น

  • คุณอาจคาดหวังว่าโค้ดสำหรับเรื่องนี้จะดูซับซ้อนเล็กน้อยใช่ไหม

การติดตั้งใช้งานด้วย ADK และ ML Kit

  • อันที่จริงเรื่องนี้ไม่ซับซ้อนเลย

  • โค้ด 2-3 บรรทัดแรกจะเรียกใช้ onDeviceModel โดยใช้ ML Kit และรวมเป็น Gemini Nano

    val generativeModel: GenerativeModel = Generation.getClient()
    val onDeviceModel = GenaiPrompt.create(
        generativeModel = generativeModel,
        name = "gemini-nano",
    )
    val agent = LlmAgent(
        name = "race_engineer",
        model = onDeviceModel,
        staticInstruction = /* System prompt */,
        instruction = Instruction {
            /* Dynamic context */
        },
        tools = listOf(
            /* Custom tools */
        )
    )
  • จากนั้นเราจะกำหนด Agent ด้วย ADK

  • ตั้งชื่อและระบุคำสั่ง 2 ประเภท โดยประเภทแรกคือคำสั่งแบบคงที่ ซึ่งเป็นบุคลิกและตัวตนของ Gem

  • ซึ่งอาจรวมถึงข้อมูลต่างๆ เช่น วิธีที่รถสื่อสารกับคนขับและข้อมูลบางอย่างเกี่ยวกับสนามแข่งรถ

  • ส่วนที่ 2 คือคำสั่งแบบไดนามิก

  • ตอนนี้ ระบบจะสร้างข้อมูลนี้ขึ้นมาในทุกคำค้นหาพร้อมข้อมูลสรุปการตรวจวัดระยะไกลล่าสุด เพื่อให้ Agent ทราบอยู่เสมอว่าคนขับกำลังทำอะไรอยู่ ณ ขณะนั้น

  • นอกจากนี้ ยังรวมถึงประวัติการสนทนาปัจจุบันตามที่กล่าวไว้ก่อนหน้านี้ด้วย

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

  • ตอนนี้เรามาดูการสาธิตสั้นๆ เกี่ยวกับการทำงานของ Agent ในอุปกรณ์จำลองที่สำนักงาน Formula E กัน

การสาธิตเครื่องมือจำลอง

  • Gemma ฉันบังคับพวงมาลัยแรงแค่ไหน

  • นุ่มนวลและสุขุม

  • มุมเลี้ยวสูงสุดคือ 48 องศา และคุณหมุนพวงมาลัยเฉลี่ย 11 องศาต่อวินาที

  • Gemma แรง G สูงสุดของฉันคือเท่าไร

  • แรง G สูงสุดคือ 2.2 G ขณะเข้าโค้ง

  • Gemma การวิ่งของฉันเป็นยังไงบ้าง

  • ทำได้ดีมาก Dan

  • ความเร็วสูงสุด 306 กม./ชม. โดยเฉลี่ย 186 กม./ชม. ใน 35 วินาที

  • คุณใช้ความเร็วสูงสุด 58% ของเวลาทั้งหมด และมีแรง G สูงสุดที่ 2.2 G

  • ก็มีเท่านี้

  • นั่นคือ Gemini Nano ในโทรศัพท์ที่กำลังพูดคุยกับคนขับรถ และตอบคำถามแบบเรียลไทม์

  • อุปกรณ์จำลองการขับรถก็เป็นอย่างหนึ่ง แต่รถ Formula E ก็เป็นอีกอย่างหนึ่งโดยสิ้นเชิง

การติดตั้งใช้งานและการทดสอบในสนามแข่งที่กูดวูด

  • แล้วเราจะนำทุกอย่างมารวมกันได้อย่างไร

  • ก่อนอื่นเราต้องเดินทางไปที่ Spark Racing Technology ในปารีส ซึ่งเป็นสถานที่ผลิตรถของเรา

  • นี่คือฉันทางด้านซ้ายที่กำลังต่อสาย Raspberry Pi เข้ากับ VCU จริงของรถ Formula E

  • ทุกอย่างที่เราสร้างขึ้นจนถึงตอนนี้ทำงานบนข้อมูลจำลองและเล่นซ้ำจากเซสชันทดสอบ เราจึงไม่รู้จริงๆ ว่าจะทำงานกับของจริงได้หรือไม่

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

  • ทางด้านขวา คุณจะเห็นระบบที่เสร็จสมบูรณ์ และจะเห็นว่าโทรศัพท์ติดตั้งอยู่ในห้องคนขับจริงๆ ข้างๆ ที่นั่งคนขับ

  • เราจึงพร้อมสำหรับ Goodwood แล้ว

  • แล้วเกิดอะไรขึ้นในวันนั้น

  • จำความท้าทาย 4 อย่างที่ Alastair พูดถึงก่อนหน้านี้ได้ไหม

  • Goodwood ได้ทดสอบรถ 2 คันนี้อย่างจริงจัง

  • อย่างแรกคือความร้อน

  • ในอังกฤษ เรามักจะวางแผนสำหรับสภาพอากาศทุกรูปแบบ ยกเว้นแดดออก

  • ดังนั้น สิ่งที่เราได้มาก็คือหนึ่งในสัปดาห์ที่ร้อนที่สุดเท่าที่เคยมีมา ซึ่งเป็นช่วงที่คลื่นความร้อนพัดผ่านพอดี

  • นี่เป็นเวลาที่เหมาะที่สุดในการใส่คอมพิวเตอร์ไว้ในรถ Formula E

  • แต่จุดหักมุมก็คือ

  • จริงๆ แล้วโทรศัพท์ไม่ได้เป็นอะไร

  • Android ไม่ได้รับผลกระทบเลย

  • ปรากฏว่า Raspberry Pi เป็นอุปกรณ์ที่ทำงานได้ยากที่สุด

  • และเนื่องจากเราไม่สามารถเสียบเข้ากับรถยนต์ได้โดยตรง เราจึงต้องใช้สิ่งที่เรียกว่า UPS ซึ่งหากคุณไม่ทราบ โดยพื้นฐานแล้วจะมีลักษณะเหมือนแบตเตอรี่จำนวนมากที่ติดอยู่ใต้ Pi

  • แต่โชคดีที่เราแก้ไขปัญหานี้ได้ด้วยการเติมน้ำมันเป็นระยะๆ ตลอดทั้งวัน และหากไม่มีการเติมน้ำมัน รถก็อาจขึ้นเนินนั้นไม่ได้โดยไม่มี AI Agent เลย

  • ถัดมาคือบลูทูธ

  • ตอนนั้นเรายังไม่เคยทดสอบกับหมวกกันน็อกของคนขับ ซึ่งเชื่อมต่อกับแอปผ่านบลูทูธ

  • และนั่นก็เป็นเรื่องที่ท้าทายเล็กน้อย

  • ดังนั้น เพื่อทดสอบเรื่องนี้ เราจึงนั่งลงบนพื้นหญ้า และดูเหมือนว่าเรากำลังสนุกกันมากใช่ไหม

  • เราหยิบแล็ปท็อปออกมาและพูดคุยกันอย่างสนุกสนาน

  • ในความเป็นจริงแล้ว ช่วงเวลานั้นน่าจะเป็นช่วงที่เครียดที่สุดช่วงหนึ่งในอาชีพการงานของฉันจนถึงตอนนี้

  • เราพยายามอย่างยิ่งที่จะทำให้โค้ดทำงานได้อย่างราบรื่นและเชื่อมต่อหมวกกันน็อกบลูทูธกับแอปก่อนที่จะขับรถขึ้นเขาในช่วงบ่าย

  • แต่ด้วยการแก้ไขด่วนในนาทีสุดท้ายและเครื่องมือแก้ไขข้อบกพร่องที่ยอดเยี่ยมของ Android เราจึงแก้ไขปัญหาได้ทันเวลา และรถก็วิ่งขึ้นเนินได้โดยที่ AI Agent ทำงานได้อย่างยอดเยี่ยม

  • ตอนนี้ฉันจะส่งต่อให้ Alastair ซึ่งจะพูดคุยกับเราเพิ่มเติมเกี่ยวกับบทเรียนที่ได้จากโปรเจ็กต์นี้

  • ขอขอบคุณ

ประเด็นสำคัญและบทเรียนที่ได้รับ

  • ขอบคุณ Oli

  • เราได้เรียนรู้อะไรจากโปรเจ็กต์นี้บ้าง

  • ข้อแรกคือ Android เป็นโฮสต์ที่สมบูรณ์แบบสำหรับ Agent ของคุณ

  • เราขอแนะนำให้คุณใช้ประโยชน์จากความอเนกประสงค์ของ Android, API ที่มีให้คุณ, โมเดลในอุปกรณ์ และ ADK

  • ลองใช้ดูแล้วคุณจะประหลาดใจว่าประสบการณ์ที่ได้รับจากสิ่งง่ายๆ เช่นนี้มีประสิทธิภาพมากเพียงใด

  • ความยุ่งยากในการผสานรวมยังคงมีอยู่

  • คนส่วนใหญ่ในห้องนี้อาจเคยประสบปัญหานี้มาแล้วในอาชีพการงาน

  • คุณสร้างองค์ประกอบย่อยทั้งหมดแยกกัน แล้วเมื่อถึงเวลาที่ต้องนำมาประกอบเข้าด้วยกัน บางอย่างก็ทำงานได้ไม่ดีนัก

  • และหมวกกันน็อกสำหรับแข่งรถของนักแข่งก็เป็นแบบนี้เลย

  • แต่โชคดีที่เราแก้ไขได้ทันในวันนั้น ซึ่งพิสูจน์ให้เห็นว่าการทดสอบยังคงมีความสำคัญอย่างยิ่ง

  • และสุดท้ายคือ Gemini Nano

  • Gemini Nano เป็นฮีโร่ตัวจริงในเรื่องนี้

  • โมเดลนี้มีประสิทธิภาพมาก ทำงานได้อย่างรวดเร็วบนอุปกรณ์ และทำงานที่ซับซ้อนได้ แต่ไม่ได้ทำได้ทันที

  • ซึ่งมีเหตุผลเบื้องหลังที่น่าสนใจ

  • คุณต้องทำวิศวกรรมพรอมต์ (Prompt Engineering)

  • คุณต้องทดสอบ

  • คุณต้องคิดถึงวิธีที่ต้องการป้อนคำสั่งแบบไดนามิกเทียบกับคำสั่งแบบคงที่

  • คุณต้องคิดถึงเครื่องมือที่จะมอบให้และวิธีที่ดีที่สุดในการสั่งให้โมเดลทำสิ่งนั้น

  • แต่ด้วยการทดสอบและการประเมินที่เหมาะสม คุณจะได้รับประโยชน์มากมายจากโมเดลอย่าง Gemini Nano ในอุปกรณ์โดยตรง

  • ขอบคุณทุกคนมาก

  • เราจะอยู่ที่บูธในภายหลัง คุณจึงสามารถเข้ามาพูดคุยและถามคำถามเราได้

รหัส

ข้อมูลโค้ด

ข้อมูลโค้ด Kotlin ที่ 07:45 ใน "การติดตั้งใช้งานด้วย ADK และ ML Kit"
val generativeModel: GenerativeModel = Generation.getClient()
val onDeviceModel = GenaiPrompt.create(
    generativeModel = generativeModel,
    name = "gemini-nano",
)
val agent = LlmAgent(
    name = "race_engineer",
    model = onDeviceModel,
    staticInstruction = /* System prompt */,
    instruction = Instruction {
        /* Dynamic context */
    },
    tools = listOf(
        /* Custom tools */
    )
)