แอปอัจฉริยะ

สร้างแอป Android ที่ปลอดภัยและคุ้มค่าด้วย Firebase AI Logic และ Gemini Nano 4

ลำโพง

  • Ankita Saxena

    ผู้จัดการผลิตภัณฑ์

  • Arthur Thompson

    วิศวกรนักพัฒนาซอฟต์แวร์สัมพันธ์

เกี่ยวกับ

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

การสร้าง Generative AI ที่พร้อมใช้งานจริงในแอป Android ไม่ใช่แค่การเชื่อมต่อกับ LLM เท่านั้น แต่ยังต้องมีการรักษาความปลอดภัยระดับองค์กรและการควบคุมต้นทุนด้วย ในเซสชันนี้ คุณจะได้ดูว่า Firebase AI Logic ช่วยให้นักพัฒนาแอปสามารถติดตั้งใช้งานประสบการณ์การใช้งาน AI ที่ปลอดภัยและคำนึงถึงงบประมาณในวงกว้างได้อย่างไร

เราจะพูดถึงตั้งแต่พื้นฐานด้านความปลอดภัยและ Firebase App Check, การจัดการค่าใช้จ่าย, การกำหนดเส้นทางโมเดลแบบไดนามิก ไปจนถึงการใช้ประโยชน์จากความสามารถแบบหลายโมดัล

สรุป

  • Firebase AI Logic จะกำหนดเส้นทางคำขอจาก SDK ของไคลเอ็นต์ไปยัง Gemini API โดยตรงโดยไม่ต้องใช้แบ็กเอนด์ที่กำหนดเอง เทมเพลตพรอมต์ของเซิร์ฟเวอร์จะจัดเก็บพรอมต์ไว้ในระบบคลาวด์เพื่อหลีกเลี่ยงการอัปเดตแอป
  • Firebase App Check ปกป้องทรัพยากรจากการละเมิดโดยตรวจสอบว่าคำขอมาจากแอปของคุณ โดยผสานรวมผู้ให้บริการเอกสารรับรอง เช่น Play Integrity และ reCAPTCHA Enterprise ก่อนที่คุณจะบังคับใช้การตรวจสอบ
  • Gemini Nano 4 ดำเนินการอนุมานในอุปกรณ์เพื่อลดเวลาในการตอบสนองและปกป้องความเป็นส่วนตัวของผู้ใช้ Firebase AI Logic จะจัดการการกำหนดเส้นทางสำรองไปยังระบบคลาวด์เมื่อจำเป็น
  • ขีดจำกัดการใช้จ่ายและทริกเกอร์ Firebase AI Logic ช่วยให้คาดการณ์ค่าใช้จ่ายระบบคลาวด์ได้ Firebase จะหยุดบริการ AI ชั่วคราวโดยอัตโนมัติเมื่อใช้จ่ายครบ 100% และทริกเกอร์จะช่วยให้คุณเรียกใช้ฟังก์ชันที่กำหนดเองก่อนหรือหลังการสร้างได้
  • Gemini Live API ขับเคลื่อนการสตรีมเสียงและวิดีโอแบบสนทนา 2 ทิศทาง SDK ของไคลเอ็นต์จะจัดการการเชื่อมต่อ WebSocket และโปรโตคอลสตรีมมิงที่เกี่ยวข้อง

Gemini Notebook

หัวข้อ

  • firebase-ai-logic
  • gemini-nano
  • firebase-app-check
  • on-device-ai
  • cost-optimization
  • gemini-live-api

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

ข้อมูลเบื้องต้นและภาพรวมของ Firebase AI Logic

  • ยินดีต้อนรับสู่ Android Developer Summit

  • ฉันชื่อ Ankita Saxena เป็นผู้จัดการผลิตภัณฑ์ Firebase

  • และผม Arthur Thompson วิศวกรนักพัฒนาซอฟต์แวร์สัมพันธ์ในทีม Firebase

  • วันนี้เราจะแสดงวิธีเพิ่มฟีเจอร์ Generative ลงในแอป Android

  • โอเค

  • Firebase คืออะไร

  • ยกมือขึ้นสำหรับผู้ที่เคยได้ยินเกี่ยวกับ Firebase

  • อ๋อ ฉันเห็นเยอะเลย

  • เยี่ยมมาก

  • Firebase เป็นแพลตฟอร์มการพัฒนาแอปของ Google

  • Firebase มีแพลตฟอร์มแบบรวมที่ผสานรวมผลิตภัณฑ์กว่า 20 รายการเข้าด้วยกัน คุณจึงไม่ต้องพบกับประสบการณ์ที่กระจัดกระจายซึ่งอาจได้รับจากซอฟต์แวร์อื่นๆ

  • เรามาพูดถึงความท้าทายในการนำ GenAI มาใช้กับแอปบนอุปกรณ์เคลื่อนที่กัน

  • เราพบความท้าทายหลักๆ 3 ประการ

  • อย่างแรกคือการรั่วไหลของคีย์ API ซึ่งใช้เวลาเพียงไม่กี่นาทีในการดึงข้อมูลออกมา

  • ประการที่ 2 การอัปเดตชื่อโมเดล: เราขอแนะนำให้นักพัฒนาแอปไม่ฮาร์ดโค้ดชื่อโมเดลในแอป ไม่เช่นนั้น ทุกครั้งที่มีโมเดลใหม่ คุณจะต้องพุชการเผยแพร่อีกครั้ง

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

  • ขอแนะนำ Firebase AI Logic เป็นโซลูชันหลักในการจัดการกับความท้าทายที่เราได้พูดคุยกัน

  • คุณค่าที่ Firebase AI Logic นำเสนอให้คุณคืออะไร

  • โดยพื้นฐานแล้ว เราจะดูแลแบ็กเอนด์ที่กำหนดเองที่ซับซ้อนทั้งหมด เพื่อให้คุณไม่ต้องพัฒนาแบ็กเอนด์ในฝั่งของคุณ

  • ประการที่ 2 การใช้ SDK ของไคลเอ็นต์ช่วยให้คุณเรียกใช้ Gemini API ได้โดยตรงและปลอดภัยจากแอปบนอุปกรณ์เคลื่อนที่

  • มาดูรายละเอียดและทำความเข้าใจวิธีการทำงานของสถาปัตยกรรมกัน

  • ทางด้านซ้าย เรามี Firebase Client SDK

  • ปัจจุบันเรารองรับ SDK ของไคลเอ็นต์ที่หลากหลาย

  • เราอยากชี้ให้เห็นว่าเรายังรองรับ Kotlin ด้วย

  • เมื่อนักพัฒนาแอปต้องการดำเนินการ AI ทาง SDK จะส่งคำขอไปยัง Firebase AI Logic ซึ่งจะกำหนดเส้นทางคำขออย่างปลอดภัยไปยัง Gemini Developer API หรือ Agent Platform Gemini API

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

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

การสาธิตแอป FriendlyMeals

  • ตอนนี้ก็ถึงเวลาสนุกแล้ว

  • นี่คือการสาธิตที่แสดงแอป FriendlyMeals

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

  • คุณสแกนได้โดยใช้คิวอาร์โค้ดที่นี่

  • มาดูการสาธิตกัน

  • แอป FriendlyMeals ช่วยคุณค้นหาสูตรอาหารตามส่วนผสมที่คุณป้อน

  • ดังนั้นในเวิร์กโฟลว์นี้ คุณจะเห็น 2 วิธีในการบันทึกส่วนประกอบเหล่านั้น

  • วิธีแรกคือป้อนวัตถุดิบที่คุณมี

  • ขั้นที่ 2 คือการถ่ายภาพส่วนผสม

  • ผมจะไปใช้เวิร์กโฟลว์แรก ซึ่งก็คือการป้อนส่วนผสม

  • นั่นคือทั้งหมดที่ฉันหาได้ในตู้เย็น

  • ในขณะที่กำลังสร้างสูตรอาหารนี้ ฉันอยากจะพูดถึงบางสิ่ง

  • ดังนั้นในเบื้องหลัง เราจะเรียกใช้โมเดล Gemini ที่นี่

  • สำหรับกรณีการใช้งานที่เฉพาะเจาะจงนี้ เราจะเรียกใช้ Gemini 3.8 Flash 3 ตัว

  • หากคุณเห็นด้านบน รูปภาพนั้นใช้โมเดล Gemini Nano Banana ซึ่งก็คือ 2.1 Nano Banana เวอร์ชันล่าสุด

  • ก่อนที่จะเจาะลึกเรื่องโค้ด เราอยากเน้นย้ำถึงคุณค่าที่นำเสนอที่คุณจะได้รับผ่าน Firebase AI Logic

  • อย่างแรกคือ SDK แบบ Serverless

  • คุณต้องการเพิ่มฟีเจอร์ AI แต่ไม่ต้องการสร้างแบ็กเอนด์

  • SDK ฝั่งไคลเอ็นต์ของเราจะเข้ามามีบทบาทในส่วนนี้

  • คุณโทรหา Gemini โดยตรงจากแอป Android

  • ข้อที่ 2 คือฟีเจอร์ความปลอดภัยในตัวที่มีประสิทธิภาพ

  • ดังนั้น การเรียกใช้ Gemini ของคุณจึงสามารถใช้ประโยชน์จากสิ่งต่างๆ เช่น Firebase App Check รวมถึงเทมเพลตพรอมต์ของเซิร์ฟเวอร์และอื่นๆ ได้ และเราจะพูดถึงฟีเจอร์ความปลอดภัยเหล่านั้นเพิ่มเติมในภายหลัง

  • ประการที่ 3 คือการรองรับฟีเจอร์ขั้นสูง เช่น อินพุตหลายรูปแบบและการสตรีม

  • สมมติว่าคุณต้องการสร้างแอปที่เพิ่มฟีเจอร์ AI ง่ายๆ เพื่อสร้างเรื่องราวเกี่ยวกับกระเป๋าเป้วิเศษ

    import com.google.firebase.Firebase
    import com.google.firebase.ai.ai
    
    @Composable
    fun MagicBackpackGenerator() {
        var output by remember { mutableStateOf("") }
    
        LaunchedEffect(Unit) {
    
           val model=Firebase.ai.generativeModel("gemini-4-argon")
    
            val response = model.generateContent("Write a story about a magic backpack")
    
            output = response.text.toString()
    
        }
        MagicBackpackUI(output)
    }
  • คุณสามารถเพิ่มฟีเจอร์ AI และเตรียมพร้อมสำหรับการใช้งานจริงได้โดยทำตามขั้นตอนง่ายๆ 3 ขั้นตอนต่อไปนี้

  • เมื่อ Firebase AI Logic ช่วยให้การเพิ่มฟีเจอร์ AI ลงในแอปเป็นเรื่องง่าย คำถามแรกที่คุณควรถามคือคุณจะรักษาความปลอดภัยให้ฟีเจอร์นี้อย่างไร

การรักษาความปลอดภัยและการจัดการพรอมต์

  • มาดูรายละเอียดด้านความปลอดภัยกัน โดยเริ่มจาก Firebase App Check

  • Firebase App Check ช่วยปกป้องข้อมูลและผู้ใช้ของคุณ รวมถึงควบคุมผู้ที่มีสิทธิ์เข้าถึงทรัพยากร API โดยยืนยันว่าคำขอมาจากแอปของคุณ

  • ซึ่งเป็นความปลอดภัยอีกชั้นหนึ่งที่จะช่วยป้องกันไม่ให้แอปของคุณถูกละเมิด

  • ก่อนที่จะเริ่มเขียนโค้ด คุณต้องทำตามขั้นตอน 2-3 ขั้นตอนในคอนโซล Firebase

  • ดังนั้นในส่วน App Check ในคอนโซล Firebase ให้ไปที่ลงทะเบียนแอป Android แล้วเพิ่มผู้ให้บริการเอกสารรับรองที่เกี่ยวข้อง

  • เช่น Play Integrity หรือ reCAPTCHA Enterprise

  • โปรดทราบว่าเมื่อเริ่มตั้งค่า App Check คุณควรเริ่มด้วยโหมดไม่บังคับใช้

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

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

  • โค้ดสำหรับการติดตั้งใช้งาน App Check จะมีลักษณะดังนี้

    class FireTravelApp : Application() {
       lateinit var appContainer: AppContainer
           private set
       override fun onCreate() {
           super.onCreate()
           if (BuildConfig.DEBUG) {
               Firebase.appCheck.installAppCheckProviderFactory(
                   DebugAppCheckProviderFactory.getInstance()
               )
           } else {
               Firebase.appCheck.installAppCheckProviderFactory(
                   PlayIntegrityAppCheckProviderFactory.getInstance()
               )
           }
           appContainer = AppContainer(this)
       }
    }
  • ในคลาสแอปพลิเคชัน คุณจะติดตั้งผู้ให้บริการ App Check

  • ในขั้นตอนการพัฒนา คุณควรใช้ผู้ให้บริการแก้ไขข้อบกพร่องในการพัฒนา จากนั้นเมื่อพร้อมที่จะเข้าสู่เวอร์ชันที่ใช้งานจริง ให้เปลี่ยนไปใช้ Play Integrity หรือ reCAPTCHA Enterprise

  • อย่างไรก็ตาม โปรดทราบว่าคุณจะต้องกำหนดค่า App Check ก่อนที่จะทำการเรียก Firebase อื่นๆ

  • เมื่อสร้างฟีเจอร์ AI นักพัฒนามักจะฮาร์ดโค้ดพรอมต์ลงในโค้ดของแอปโดยตรง แต่วิธีนี้ทำให้เกิดความท้าทายครั้งใหญ่ 2 ประการ

  • ข้อแรก หากต้องมีการปรับปรุงพรอมต์ คุณจะต้องพุชการอัปเดตทั้งหมด

  • ประการที่ 2 ใครก็ตามที่แตกแพ็กเกจแอปของคุณจะมีสิทธิ์เข้าถึงวิศวกรรมพรอมต์ (Prompt Engineering) ที่เป็นกรรมสิทธิ์ของคุณ

  • Firebase AI Logic ใช้เทมเพลตพรอมต์ฝั่งเซิร์ฟเวอร์เพื่อแก้ปัญหานี้

  • ระบบจะจัดเก็บพรอมต์ไว้ในระบบคลาวด์แทนที่จะเก็บไว้ในอุปกรณ์

  • นี่คือมุมมองของเทมเพลตพรอมต์เซิร์ฟเวอร์ในคอนโซล Firebase

  • คุณเขียนเทมเพลตในรูปแบบ .prompt

    ---
    model: 'gemini-3-flash'
    input:
      schema:...
    tools:...
    ---
    {{role "system"}}
    You're a storyteller that tells nice and joyful stories with happy endings.
    
    {{role "user"}}
    Create a story about {{topic}} with the length of {{length}} words in the {{language}} language.
  • คุณตั้งชื่อโมเดลได้ที่นี่

  • โดยคุณจะอัปเดตข้อมูลนี้ได้ทุกเมื่อ

  • คุณไม่จำเป็นต้องพุชการอัปเดตแอปแบบเต็ม

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

  • ขอย้ำอีกครั้งว่าคุณไม่จำเป็นต้องเผยแพร่แอป

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

  • และนี่คือลักษณะของโค้ดใน Kotlin

    val generativeModel = Firebase.ai.templateGenerativeModel()
    
    val response = generativeModel.generateContent("storyteller-v1",
        mapOf(
            "topic" to topic,
            "length" to length,
            "language" to language
        )
    )
    
    output.value = response.text
  • สิ่งที่ควรทราบคือเทมเพลตพรอมต์เซิร์ฟเวอร์อยู่ในเวอร์ชันตัวอย่างแบบสาธารณะ

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

  • ซึ่งจะใช้โทเค็นผู้ใช้ Firebase Auth เพื่อให้สิทธิ์คำขอ

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

แดชบอร์ดการตรวจสอบ AI และการตรวจวัดระยะไกล

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

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

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

  • ข้อความไฮไลต์ที่พูดถึง 2 โหมดที่เราเพิ่งเห็นนั้นพร้อมใช้งานในหน้าต่างเดียวกัน

  • เมื่อเปิดใช้การตรวจสอบ AI ในคอนโซล Firebase แล้ว ระบบจะป้อนข้อมูลนี้ลงในแดชบอร์ดการตรวจสอบ AI โดยตรง

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

  • นอกจากนี้ คุณยังตรวจสอบ Trace Viewer เพื่อดูการติดตามบางอย่างได้ด้วย

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

การอนุมานแบบไฮบริดด้วย Gemini Nano

  • ในคอนโซล Firebase ซึ่งคุณจะดูการตรวจวัดและระดับการเข้าถึงทั้งหมดเกี่ยวกับวิธีการทำงานของฟีเจอร์ AI ได้

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

  • และเมื่อฟีเจอร์ Generative AI กลายเป็นส่วนสำคัญของแอป การพึ่งพาคลาวด์เพียงอย่างเดียว 100% อาจไม่ใช่ตัวเลือกที่เหมาะสม

  • ดังนั้น การใช้ Nano 4 ซึ่งเป็นโมเดลในอุปกรณ์บน Android จะช่วยปลดล็อกสิทธิประโยชน์หลัก 3 ประการที่คุณอาจคุ้นเคยอยู่แล้ว

  • วิธีแรกคือโหมดออฟไลน์

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

  • ค่าใช้จ่าย

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

  • และประการที่ 3 คือความเป็นส่วนตัวของข้อมูล

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

  • ดังนั้น เมื่อใช้ Firebase AI Logic คุณจะตั้งค่าโหมดการอนุมานเหล่านี้และมีกลยุทธ์การกำหนดเส้นทางที่ชัดเจนได้ เช่น PREFER_ON_DEVICE, PREFER_IN_CLOUD หรือ ONLY_ON_DEVICE

  • เมื่อเลือก ONLY_ON_DEVICE SDK จะเข้าถึงโมเดลในอุปกรณ์โดยตรง โดยข้ามระบบคลาวด์ไปเลย

  • มาเปลี่ยนไปใช้โทรศัพท์กัน

  • เราจะไปที่ FriendlyMeals อีกครั้งเพื่อดูความสามารถบางอย่างในอุปกรณ์

  • สิ่งแรกที่เราจะลองทำคือการสร้างสูตรอาหารจากส่วนผสมบางอย่างที่อาจมีอยู่ในตู้เย็น

  • ก่อนหน้านี้ คุณเห็น Ankita ใช้วิธีการแบบแมนนวลโดยพิมพ์ส่วนผสมลงไป แล้วสร้างสูตรอาหาร

  • งั้นลองใช้วิธีอื่นกัน

  • ลองดูตู้เย็นของจริงที่ไม่ได้สร้างขึ้นมานี้

  • มีมะกอกจำนวนมากในตู้เย็นนี้ มาดูกันว่าเราจะได้สูตรอาหารประเภทใด

  • เราจึงอยากชี้ให้เห็นถึง 2-3 ประเด็นในเรื่องนี้

  • ข้อแรกคือรูปภาพจะไม่มีการส่งออกไปนอกอุปกรณ์

  • Nano by Gemma วิเคราะห์รูปภาพในเครื่อง…

  • Nano 4

  • และประการที่ 2 คือความเร็วในการตอบกลับ

  • ระบบจึงสร้างองค์ประกอบขึ้นมา

  • คุณจึงได้รับสิทธิประโยชน์ 2 อย่าง

  • ข้อมูลจะไม่ถูกส่งออกจากอุปกรณ์ และยังช่วยลดเวลาในการตอบสนองได้อย่างมากด้วย

  • เอาล่ะ มาดูกันว่าเราจะได้สูตรอาหารอะไรจากตู้เย็นที่มีมะกอก

  • ดังนั้น ครั้งนี้เราจึงใช้ระบบคลาวด์

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

  • ฉันไม่เห็นแซลมอนในตู้เย็น แต่เห็นแซลมอนในสูตรอาหาร

  • แต่เราขอกลับไปที่สไลด์ก่อน

  • ดังที่เราเห็นในเดโม การสลับไปมาระหว่างโมเดลในเครื่องกับโมเดลในระบบคลาวด์นั้นค่อนข้างตรงไปตรงมา

  • ปัจจุบัน Firebase AI Logic ช่วยให้สามารถอนุมานได้โดยใช้การกำหนดเส้นทางพื้นฐานตามความพร้อมใช้งานของเครือข่าย

  • คุณสามารถมองว่าการจัดการการอนุมานนี้เป็นเหมือนแนวทางป้องกัน

  • ดังนั้น สถาปัตยกรรมจึงมีการรองรับในตัวสำหรับฟีเจอร์ต่างๆ เช่น มัลติโมดัลและสคีมาอินพุตและเอาต์พุต รวมถึงการผสานรวมกับ Gemma อย่างสมบูรณ์ ขออภัย กับ Gemini Nano 4

  • เรามาดูกันว่าหลักเกณฑ์เหล่านี้มีการนำไปใช้อย่างไรในทางปฏิบัติ

  • ดังนั้น การกำหนดเส้นทางแบบไฮบริดจึงไม่จำเป็นต้องสร้างมิดเดิลแวร์ที่ซับซ้อนหรือสร้างตรรกะสำรองจำนวนมากด้วยตนเอง

  • ในแง่ของโค้ด พารามิเตอร์นี้เป็นเพียงพารามิเตอร์เสริม

  • คุณส่งพารามิเตอร์ onDeviceConfig เพื่อตั้งค่าโหมดที่ต้องการ

    import com.google.firebase.Firebase
    import com.google.firebase.ai.ai
    
    @Composable
    fun MagicBackpackGenerator() {
        var output by remember { mutableStateOf("") }
    
        LaunchedEffect(Unit) {
    
            val model = Firebase.ai.generativeModel(modelName = "gemini-3.8-flash",
    onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE))
    
           val response = model.generateContent("Write a story about a magic backpack")
    
            output = response.text.toString()
    
        }
        MagicBackpackUI(output)
    }
  • ในกรณีนี้ SDK จะลองใช้โมเดลในเครื่องก่อน และหากไม่พร้อมใช้งาน ระบบจะเปลี่ยนไปใช้ระบบคลาวด์โดยอัตโนมัติ

ทริกเกอร์การเพิ่มประสิทธิภาพต้นทุนและตรรกะ AI

  • เมื่อเราได้พูดถึงวิธีสร้างแอปที่ปลอดภัยและใช้ประโยชน์จากโมเดลในอุปกรณ์แล้ว เรามาพูดถึงการเพิ่มประสิทธิภาพต้นทุนกัน

  • ฟีเจอร์ Generative สามารถปรับขนาดได้อย่างรวดเร็ว และการเรียกเก็บเงินใน Cloud ก็เช่นกัน

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

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

  • เมื่อมีการเรียกใช้ระบบคลาวด์เหล่านั้น คุณต้องมีมาตรการป้องกันเพื่อให้งบประมาณเป็นไปตามที่คาดการณ์ไว้

  • นี่คือเหตุผลที่ต้องใช้ขีดจำกัดการใช้จ่ายของ Firebase

  • วงเงินใช้จ่ายช่วยให้คุณควบคุมค่าใช้จ่ายสำหรับแอปได้ละเอียดยิ่งขึ้น

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

  • เมื่อการใช้จ่ายถึง 100% แล้ว Firebase จะหยุดบริการ AI ชั่วคราวโดยอัตโนมัติเพื่อป้องกันไม่ให้ค่าใช้จ่ายบานปลาย

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

  • สิ่งที่เราอยากไฮไลต์ในวันนี้คือทริกเกอร์ Firebase AI Logic

  • จะเกิดอะไรขึ้นหากคุณต้องการตรรกะที่กำหนดเองในระหว่างนั้น

  • นั่นคือทริกเกอร์ Firebase AI Logic

  • คุณสามารถเรียกใช้ฟังก์ชันก่อนสร้างเนื้อหา หรือเรียกใช้หลังจากนั้นก็ได้

  • ใช้เพื่อตรวจสอบว่า-- ตรวจสอบผู้ใช้ กรองอินพุต เพิ่มบริบท และปรับการตอบกลับด้วย

ความสามารถของ Gemini Live API และโมเดล

  • ตอนนี้เราได้พูดถึงการเพิ่มประสิทธิภาพต้นทุนและความปลอดภัยแล้ว มาเปลี่ยนหัวข้อไปที่ความสามารถของโมเดลและดูว่า Firebase AI Logic มีอะไรให้บ้าง

  • Firebase AI Logic มีแคตตาล็อกโมเดลและเครื่องมือที่พร้อมใช้งานจริงอย่างครอบคลุมเพื่อขับเคลื่อนประสบการณ์การใช้งานหลายรูปแบบเหล่านี้

  • หากต้องการการให้เหตุผล ข้อความ โค้ด และสื่อความเร็วสูง คุณสามารถใช้ Gemini 4 Argon, Gemini 3.1 Pro, Gemini 3.8 Flash และอื่นๆ ได้

  • นอกจากนี้ คุณยังเชื่อมต่อโมเดลเหล่านี้กับข้อมูลในชีวิตจริงได้โดยใช้การเชื่อมต่อข้อมูลกับ Search และ Maps

  • และสุดท้าย สำหรับเสียง เรามีฟีเจอร์อ่านออกเสียงข้อความที่เป็นธรรมชาติและการสร้างเสียงของ Gemini Live

  • มาเปลี่ยนไปใช้โทรศัพท์อีกครั้งกัน

  • เรามีทั้งของหวานและของคาว

  • ขอโทษที ไม่ใช่รายการนั้น

  • เรามีขนมปังปิ้งซอสมะเขือเทศชีสแบบง่ายๆ เป็นสูตรอาหารของเรา

  • ฟังดูน่าอร่อย

  • และสิ่งแรกที่เราต้องการดูคือ Live API

  • ดังนั้นในกรณีนี้ เราจะใช้วิดีโอที่ส่งกลับมาได้ และฉันสามารถพูดว่า "Gemini ช่วยบอกหน่อยได้ไหมว่ามีส่วนผสมอะไรอยู่บนโต๊ะบ้าง"

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

  • โอเค

  • ฉันเริ่มขั้นตอนแรกของสูตรอาหารเลยได้ไหม

  • ได้

  • ขั้นตอนแรกคือการอุ่นเตาอบหรือเตาย่างให้ร้อนปานกลางถึงสูง

  • ขอขอบคุณ

  • โอเค

  • ในกรณีนี้คือ Live API และการสนทนานั้นจะยังคงเปิดอยู่จนกว่าฉันจะปิด

  • อีกฟีเจอร์หนึ่งที่ผมอยากแสดงให้ดูคือการแปลงเสียงพูดเป็นข้อความ หรือการอ่านออกเสียงข้อความ ขออภัย

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

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

  • ระบบจะสร้างเสียงและส่งเสียงกลับไปยังอุปกรณ์

  • ฉันสามารถเล่น แคชไว้ดูภายหลัง และจะเล่นตามที่เราเห็นที่นี่

  • 1.

  • อุ่นเตาอบหรือเตาย่างให้ร้อนปานกลางถึงสูง

  • 2.

  • วางขนมปัง 2 แผ่นบนถาดอบหรือถาดปิ้งขนมปัง

  • เยี่ยม

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

  • ดังนั้น Firebase AI Logic จึงช่วยให้เราใช้ฟีเจอร์เจ๋งๆ ประเภทนี้ได้ด้วยโค้ดเพียงไม่กี่บรรทัด

  • มาเปลี่ยนกลับไปที่สไลด์กัน

  • ตอนนี้เราได้เห็นการสาธิตวิธีการทำงานของ Gemini Live API แล้ว หากคุณต้องการสร้างประสบการณ์การสนทนาแบบแฮนด์ฟรีด้วยตนเองล่ะ

  • Gemini Live API จะเข้ามาช่วยในส่วนนี้ และช่วยให้คุณสร้างการสนทนาด้วยเสียงแบบ 2 ทิศทางได้

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

  • ใน Kotlin การตั้งค่านี้ดูคุ้นเคยดี

    val model = Firebase.ai.liveModel(
        modelName = "gemini-3.1-flash-live-preview",
        generationConfig = liveGenerationConfig {
            responseModality = ResponseModality.AUDIO
       },
       systemInstruction = "Your main job is to change the color...",
       tools = listOf(Tool.functionDeclarations(listOf(changeColorFunction)))
    )
    
    val session = model.connect(::handler)
    
    session.startAudioConversation(::handler)
    
    session.stopAudioConversation()
  • คุณสร้างอินสแตนซ์โมเดลแบบเรียลไทม์ที่กำหนดค่าสำหรับการตอบกลับด้วยเสียง และเชื่อมต่อกับเซสชันด้วยแฮนเดิลสตรีม

  • ประเด็นสำคัญที่สุดที่เราอยากเน้นย้ำคือ SDK นี้จะจัดการ WebSocket และโปรโตคอลสตรีมมิงทั้งหมดที่อยู่เบื้องหลัง

  • คุณจึงไม่ต้องเขียนโค้ดเอง

  • เขียนบรรทัดต่อ

ทักษะเอเจนต์ Firebase และประเด็นสำคัญ

  • ขณะที่เราสรุปการสาธิตและมองไปยังอนาคตของนักพัฒนาแอป เราขอไฮไลต์เครื่องมืออันทรงพลังอย่างหนึ่งสำหรับเวิร์กโฟลว์ของคุณ นั่นคือทักษะเอเจนต์ Firebase

    # Execute to add agent capabilities to your workspace
    npx skills add firebase/agent-skills
  • นอกจากนี้ สำหรับผู้ที่ใช้ Antigravity และ Android Studio เราได้ผสานรวม Firebase AI Logic เข้ากับขั้นตอนการเตรียมความพร้อมผู้ใช้งานใหม่โดยตรงแล้ว

  • เราขอฝากประเด็นสำคัญ 3 ข้อไว้ให้คุณพิจารณา ได้แก่ เริ่มสร้าง พึ่งพาเครื่องมือเวอร์ชันที่ใช้งานจริงตั้งแต่เนิ่นๆ เช่น เครื่องมือด้านความปลอดภัยที่เราพูดถึงในวันนี้ และข้อที่ 3 คือใช้ทักษะของ Agent ทุกที่ที่ทำได้

  • ขอขอบคุณ

รหัส

ข้อมูลโค้ด

ข้อมูลโค้ด Kotlin ที่นาที 05:14 ใน "เดโมแอป FriendlyMeals"
import com.google.firebase.Firebase
import com.google.firebase.ai.ai

@Composable
fun MagicBackpackGenerator() {
    var output by remember { mutableStateOf("") }

    LaunchedEffect(Unit) {

       val model=Firebase.ai.generativeModel("gemini-4-argon")

        val response = model.generateContent("Write a story about a magic backpack")

        output = response.text.toString()

    }
    MagicBackpackUI(output)
}
ข้อมูลโค้ด Kotlin ที่นาที 07:07 ใน "การจัดการความปลอดภัยและพรอมต์"
class FireTravelApp : Application() {
   lateinit var appContainer: AppContainer
       private set
   override fun onCreate() {
       super.onCreate()
       if (BuildConfig.DEBUG) {
           Firebase.appCheck.installAppCheckProviderFactory(
               DebugAppCheckProviderFactory.getInstance()
           )
       } else {
           Firebase.appCheck.installAppCheckProviderFactory(
               PlayIntegrityAppCheckProviderFactory.getInstance()
           )
       }
       appContainer = AppContainer(this)
   }
}
ข้อมูลโค้ด YAML ที่นาที 08:18 ใน "การจัดการความปลอดภัยและพรอมต์"
---
model: 'gemini-3-flash'
input:
  schema:...
tools:...
---
{{role "system"}}
You're a storyteller that tells nice and joyful stories with happy endings.

{{role "user"}}
Create a story about {{topic}} with the length of {{length}} words in the {{language}} language.
ข้อมูลโค้ด Kotlin ที่นาที 08:54 ใน "การรักษาความปลอดภัยและการจัดการพรอมต์"
val generativeModel = Firebase.ai.templateGenerativeModel()

val response = generativeModel.generateContent("storyteller-v1",
    mapOf(
        "topic" to topic,
        "length" to length,
        "language" to language
    )
)

output.value = response.text
ข้อมูลโค้ด Kotlin ที่ 15:09 ใน "การอนุมานแบบผสมด้วย Gemini Nano"
import com.google.firebase.Firebase
import com.google.firebase.ai.ai

@Composable
fun MagicBackpackGenerator() {
    var output by remember { mutableStateOf("") }

    LaunchedEffect(Unit) {

        val model = Firebase.ai.generativeModel(modelName = "gemini-3.8-flash",
onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE))

       val response = model.generateContent("Write a story about a magic backpack")

        output = response.text.toString()

    }
    MagicBackpackUI(output)
}
ข้อมูลโค้ด Kotlin ที่ 21:02 ใน "Gemini Live API และความสามารถของโมเดล"
val model = Firebase.ai.liveModel(
    modelName = "gemini-3.1-flash-live-preview",
    generationConfig = liveGenerationConfig {
        responseModality = ResponseModality.AUDIO
   },
   systemInstruction = "Your main job is to change the color...",
   tools = listOf(Tool.functionDeclarations(listOf(changeColorFunction)))
)

val session = model.connect(::handler)

session.startAudioConversation(::handler)

session.stopAudioConversation()
Shell snippet ที่ 21:30 ใน "ทักษะเอเจนต์ Firebase และประเด็นสำคัญ"
# Execute to add agent capabilities to your workspace
npx skills add firebase/agent-skills