API ของ GenAI ใน ML Kit ใช้ประโยชน์จากความสามารถของ Gemini Nano เพื่อช่วยให้แอปของคุณ ทำงานต่างๆ ได้ API เหล่านี้มอบคุณภาพที่พร้อมใช้งานสำหรับกรณีการใช้งานยอดนิยม ผ่านอินเทอร์เฟซระดับสูง API ของ GenAI ใน ML Kit สร้างขึ้นบนAICore ซึ่งเป็นบริการของระบบ Android ที่ช่วยให้ดำเนินการโมเดลพื้นฐานของ GenAI ในอุปกรณ์ได้ เพื่ออำนวยความสะดวกในการใช้งานฟีเจอร์ต่างๆ เช่น ฟังก์ชันการทำงานของแอปที่ได้รับการปรับปรุงและ ความเป็นส่วนตัวของผู้ใช้ที่ดีขึ้นด้วยการประมวลผลข้อมูลในเครื่อง
ข้อกำหนดในการให้บริการเพิ่มเติมของ ML Kit GenAI API มีผลบังคับใช้กับการใช้ GenAI API นักพัฒนาแอปมีหน้าที่รับผิดชอบต่อความปลอดภัยของไคลเอ็นต์ API และ ประสบการณ์ของผู้ใช้แอปของตนแต่เพียงผู้เดียว
ฟีเจอร์หลัก
API ของ GenAI ใน ML Kit รองรับฟีเจอร์ต่อไปนี้
- การสรุป: สรุปบทความหรือการสนทนาในแชทเป็นรายการหัวข้อย่อย
- การพิสูจน์อักษร: ปรับแต่งเนื้อหาสั้นๆ โดยการแก้ไขไวยากรณ์และข้อผิดพลาด ด้านการสะกด
- การเขียนใหม่: เขียนข้อความสั้นๆ ใหม่ในโทนหรือสไตล์ต่างๆ
- คำอธิบายรูปภาพ: สร้างคำอธิบายสั้นๆ ของรูปภาพที่กำหนด
- พรอมต์: สร้างเนื้อหาข้อความตามพรอมต์ข้อความเท่านั้นหรือพรอมต์มัลติโมดัลที่กำหนดเอง
ประโยชน์ของ GenAI API
API ของ GenAI จะทำงานบนอุปกรณ์ทั้งหมดเช่นเดียวกับฟีเจอร์อื่นๆ ของ ML Kit ที่มีอยู่ จึงมีประโยชน์ดังนี้
- ระบบจะประมวลผลข้อมูลอินพุต การอนุมาน และเอาต์พุตภายในเครื่อง
- ฟังก์ชันการทำงานจะยังคงเหมือนเดิมแม้จะไม่มีการเชื่อมต่ออินเทอร์เน็ตที่เสถียร
- ไม่มีค่าใช้จ่ายเพิ่มเติมของเซิร์ฟเวอร์สำหรับการเรียก API แต่ละครั้ง
นอกจากนี้ เนื่องจาก GenAI API สร้างขึ้นบน AICore และขับเคลื่อนโดย Gemini Nano ทุกแอปจึงใช้โมเดล Gemini Nano ที่แชร์ซึ่งอยู่ในอุปกรณ์ได้ ซึ่งจะช่วยให้ไม่ต้องรอการดาวน์โหลดโมเดลหากมีอยู่ในอุปกรณ์อยู่แล้ว และช่วยประหยัดพื้นที่เก็บข้อมูลด้วย ดูข้อมูลเพิ่มเติม เกี่ยวกับวิธีที่ AICore แยกคำขอเพื่อปกป้องความเป็นส่วนตัว
การสตรีมเทียบกับการไม่สตรีม
API ของ GenAI ใน ML Kit มีทั้งตัวเลือกการสตรีมและไม่ใช่การสตรีมสำหรับการรับผลลัพธ์ Streaming API จะส่งการตอบกลับทีละรายการเมื่อมีการสร้างขึ้น ทำให้ข้อมูลไหลเวียนอย่างต่อเนื่อง ในทางตรงกันข้าม API ที่ไม่ใช่แบบสตรีมจะรอจนกว่าการตอบกลับทั้งหมดจะเสร็จสมบูรณ์ก่อนที่จะส่งคืนเป็นบล็อกเดียว
เลือก API การสตรีมสำหรับคำตอบที่ยาว เนื่องจากจะช่วยให้ได้รับความคิดเห็นเบื้องต้นได้เร็วขึ้น API ที่ไม่ใช่แบบสตรีมมิงเหมาะสำหรับคำตอบสั้นๆ หรือเมื่อ ประมวลผลผลลัพธ์เป็นกลุ่ม
การรองรับอุปกรณ์
API เฉพาะฟีเจอร์ GenAI (การสรุป การพิสูจน์อักษร การเขียนใหม่ และ คำอธิบายรูปภาพ) มีการรองรับอุปกรณ์ที่แตกต่างจาก Prompt API ตามที่อธิบายไว้ ในส่วนต่อไปนี้
การรองรับอุปกรณ์ API เฉพาะฟีเจอร์
API การสรุป การพิสูจน์อักษร การเขียนใหม่ และ คำอธิบายรูปภาพพร้อมใช้งานในอุปกรณ์ต่อไปนี้ โดยมีแผนที่จะขยายการรองรับไปยังอุปกรณ์อื่นๆ
- Google: Pixel 10, Pixel 10 Pro, Pixel 10 Pro XL, Pixel 10 Pro Fold, Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, Pixel 9 Pro Fold
- Honor: Honor 400 Pro, Magic 6 Pro, Magic 6 RSR, Magic 7, Magic 7 Pro, Magic V3, Magic V5
- iQOO: iQOO 13
- Motorola: Razr 60 Ultra
- OnePlus: OnePlus 13, OnePlus 13s, OnePlus Pad 3
- OPPO: Find N5, Find X8, Find X8 Pro, Reno 14 Pro
- POCO: POCO F7 Ultra, POCO X7 Pro
- realme: realme GT 7 Pro, realme GT 7T
- Samsung: Galaxy S25, Galaxy S25+, Galaxy S25 Ultra, Galaxy Z Fold7
- vivo: vivo X200, vivo X200 Pro, vivo X Fold3 Pro, vivo X Fold5
- Xiaomi: Xiaomi 15 Ultra, Xiaomi 15, Xiaomi 15T Pro, Xiaomi 15T, Xiaomi Pad mini
ความพร้อมใช้งานของการรองรับภาษาที่เฉพาะเจาะจงอาจแตกต่างกันไปตามการกำหนดค่าของอุปกรณ์นั้นๆ และโมเดลที่ดาวน์โหลดลงในอุปกรณ์
การรองรับอุปกรณ์สำหรับ Prompt API
ปัจจุบัน Prompt API รองรับอุปกรณ์ต่อไปนี้
nano-v2 |
|
nano-v3 |
|
ดึงข้อมูลเวอร์ชัน Gemini Nano
Gemini Nano เวอร์ชันต่างๆ จะทำงานในอุปกรณ์ที่แตกต่างกัน หากต้องการกลับไปใช้ Gemini Nano เวอร์ชันในอุปกรณ์ ให้ใช้ getBaseModelName()
โควต้าต่อแอปพลิเคชัน
AICore บังคับใช้โควต้าการอนุมานต่อแอป การส่งคำขอ GenAI API มากเกินไปในช่วงเวลาสั้นๆ จะส่งผลให้ได้รับคำตอบ ErrorCode.BUSY
เมื่อได้รับข้อผิดพลาดดังกล่าว ให้พิจารณาใช้ Exponential Backoff เพื่อ
ลองส่งคำขออีกครั้ง นอกจากนี้ ErrorCode.PER_APP_BATTERY_USE_QUOTA_EXCEEDED อาจ
แสดงขึ้นหากแอปใช้โควต้าที่มีระยะเวลานานเกินไป (เช่น โควต้าต่อวัน)
การใช้งานในเบื้องหลัง
อนุญาตให้ใช้การอนุมานของ GenAI API เฉพาะเมื่อแอปเป็นแอปพลิเคชันที่ทำงานอยู่เบื้องหน้าสูงสุด
การใช้ API เมื่อแอปไม่ได้ทำงานอยู่เบื้องหน้า รวมถึง
การใช้บริการที่ทำงานอยู่เบื้องหน้า จะส่งผลให้เกิดการตอบกลับ ErrorCode.BACKGROUND_USE_BLOCKED
โค้ดตัวอย่าง
หากต้องการรับรหัสนี้ ให้ดูตัวอย่างต่อไปนี้