วิศวกรนักพัฒนาซอฟต์แวร์สัมพันธ์
การสร้าง Generative AI ที่พร้อมใช้งานจริงในแอป Android ไม่ใช่แค่การเชื่อมต่อกับ LLM เท่านั้น แต่ยังต้องมีการรักษาความปลอดภัยระดับองค์กรและการควบคุมต้นทุนด้วย ในเซสชันนี้ คุณจะได้ดูว่า Firebase AI Logic ช่วยให้นักพัฒนาแอปสามารถติดตั้งใช้งานประสบการณ์การใช้งาน AI ที่ปลอดภัยและคำนึงถึงงบประมาณในวงกว้างได้อย่างไร
เราจะพูดถึงตั้งแต่พื้นฐานด้านความปลอดภัยและ Firebase App Check, การจัดการค่าใช้จ่าย, การกำหนดเส้นทางโมเดลแบบไดนามิก ไปจนถึงการใช้ประโยชน์จากความสามารถแบบหลายโมดัล
ข้อความถอดเสียง
ยินดีต้อนรับสู่ 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 ช่วยคุณค้นหาสูตรอาหารตามส่วนผสมที่คุณป้อน
ดังนั้นในเวิร์กโฟลว์นี้ คุณจะเห็น 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 และกำหนดค่าอัตราการสุ่มตัวอย่างได้ด้วยการคลิกเพียงครั้งเดียว
Firebase จะบันทึกเมตริก เวลาในการตอบสนอง และจำนวนโทเค็นโดยอัตโนมัติโดยที่คุณไม่ต้องเขียนโค้ดการวิเคราะห์ที่กำหนดเอง
ข้อความไฮไลต์ที่พูดถึง 2 โหมดที่เราเพิ่งเห็นนั้นพร้อมใช้งานในหน้าต่างเดียวกัน
เมื่อเปิดใช้การตรวจสอบ AI ในคอนโซล Firebase แล้ว ระบบจะป้อนข้อมูลนี้ลงในแดชบอร์ดการตรวจสอบ AI โดยตรง
คุณสามารถสังเกตเวลาในการตอบสนองเปอร์เซ็นไทล์ที่ 95, ตรวจหาข้อผิดพลาดที่เพิ่มขึ้นอย่างฉับพลัน และติดตามการใช้โทเค็นในรูปแบบต่างๆ เช่น ข้อความ รูปภาพ และเสียง
นอกจากนี้ คุณยังตรวจสอบ Trace Viewer เพื่อดูการติดตามบางอย่างได้ด้วย
ดังนั้นในกรณีนี้ เนื่องจากเป็นการแสดงให้เห็นถึงความแตกต่างของโมเดลที่เราใช้ คุณจึงเห็นเวลาในการตอบสนองและอัตราความสำเร็จ
ในคอนโซล 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 จะลองใช้โมเดลในเครื่องก่อน และหากไม่พร้อมใช้งาน ระบบจะเปลี่ยนไปใช้ระบบคลาวด์โดยอัตโนมัติ
เมื่อเราได้พูดถึงวิธีสร้างแอปที่ปลอดภัยและใช้ประโยชน์จากโมเดลในอุปกรณ์แล้ว เรามาพูดถึงการเพิ่มประสิทธิภาพต้นทุนกัน
ฟีเจอร์ Generative สามารถปรับขนาดได้อย่างรวดเร็ว และการเรียกเก็บเงินใน Cloud ก็เช่นกัน
ดังนั้น เราจึงต้องมีมาตรการป้องกันที่เหมาะสมเพื่อให้แน่ใจว่าเรามีการควบคุมโครงสร้างพื้นฐานเชิงรุกและฟีเจอร์อัตโนมัติที่เหมาะสม ซึ่งจะช่วยให้คุณคาดการณ์งบประมาณได้และแอปพลิเคชันของคุณมีประสิทธิภาพทางการเงิน
แม้ว่า Arthur จะเพิ่งเน้นย้ำว่าการอนุมานในอุปกรณ์นั้นไม่มีค่าใช้จ่ายใดๆ แต่ก็ยังมีสถานการณ์ที่ต้องใช้การให้เหตุผลที่ซับซ้อนและต้องใช้การสำรองข้อมูล ซึ่งต้องมีการกำหนดเส้นทางไปยังระบบคลาวด์
เมื่อมีการเรียกใช้ระบบคลาวด์เหล่านั้น คุณต้องมีมาตรการป้องกันเพื่อให้งบประมาณเป็นไปตามที่คาดการณ์ไว้
นี่คือเหตุผลที่ต้องใช้ขีดจำกัดการใช้จ่ายของ Firebase
วงเงินใช้จ่ายช่วยให้คุณควบคุมค่าใช้จ่ายสำหรับแอปได้ละเอียดยิ่งขึ้น
ดังนั้น แทนที่จะใช้การตั้งค่างบประมาณทั่วไปทั่วทั้งโปรเจ็กต์และการแจ้งเตือนงบประมาณที่ส่งอีเมลถึงคุณเท่านั้น คุณสามารถกำหนดขีดจำกัดงบประมาณที่เฉพาะเจาะจงสำหรับบริการแต่ละรายการ เช่น Firebase AI Logic ได้
เมื่อการใช้จ่ายถึง 100% แล้ว Firebase จะหยุดบริการ AI ชั่วคราวโดยอัตโนมัติเพื่อป้องกันไม่ให้ค่าใช้จ่ายบานปลาย
นอกเหนือจากขีดจำกัดการใช้จ่ายแบบง่ายๆ แล้ว ยังมีกลยุทธ์การเพิ่มประสิทธิภาพต้นทุนขั้นสูงอีกหลายกลยุทธ์
สิ่งที่เราอยากไฮไลต์ในวันนี้คือทริกเกอร์ Firebase AI Logic
จะเกิดอะไรขึ้นหากคุณต้องการตรรกะที่กำหนดเองในระหว่างนั้น
นั่นคือทริกเกอร์ Firebase AI Logic
คุณสามารถเรียกใช้ฟังก์ชันก่อนสร้างเนื้อหา หรือเรียกใช้หลังจากนั้นก็ได้
ใช้เพื่อตรวจสอบว่า-- ตรวจสอบผู้ใช้ กรองอินพุต เพิ่มบริบท และปรับการตอบกลับด้วย
ตอนนี้เราได้พูดถึงการเพิ่มประสิทธิภาพต้นทุนและความปลอดภัยแล้ว มาเปลี่ยนหัวข้อไปที่ความสามารถของโมเดลและดูว่า 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
# Execute to add agent capabilities to your workspace
npx skills add firebase/agent-skillsนอกจากนี้ สำหรับผู้ที่ใช้ Antigravity และ Android Studio เราได้ผสานรวม Firebase AI Logic เข้ากับขั้นตอนการเตรียมความพร้อมผู้ใช้งานใหม่โดยตรงแล้ว
เราขอฝากประเด็นสำคัญ 3 ข้อไว้ให้คุณพิจารณา ได้แก่ เริ่มสร้าง พึ่งพาเครื่องมือเวอร์ชันที่ใช้งานจริงตั้งแต่เนิ่นๆ เช่น เครื่องมือด้านความปลอดภัยที่เราพูดถึงในวันนี้ และข้อที่ 3 คือใช้ทักษะของ Agent ทุกที่ที่ทำได้
ขอขอบคุณ
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)
}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)
}
}---
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.val generativeModel = Firebase.ai.templateGenerativeModel()
val response = generativeModel.generateContent("storyteller-v1",
mapOf(
"topic" to topic,
"length" to length,
"language" to language
)
)
output.value = response.textimport 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)
}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()# Execute to add agent capabilities to your workspace
npx skills add firebase/agent-skills