คุณสามารถสร้างแอป Android และฟีเจอร์ที่ทำงานด้วยระบบ AI โดยใช้การอนุมานแบบไฮบริดด้วย Firebase AI Logic การอนุมานแบบผสมช่วยให้สามารถเรียกใช้การอนุมานโดยใช้โมเดลในอุปกรณ์เมื่อพร้อมใช้งาน และเปลี่ยนไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้อย่างราบรื่น (และในทางกลับกัน)
หน้านี้อธิบายวิธีเริ่มต้นใช้งาน SDK ของไคลเอ็นต์ รวมถึงแสดงตัวเลือกการกำหนดค่าและความสามารถเพิ่มเติม
โปรดทราบว่าระบบรองรับการอนุมานในอุปกรณ์ผ่าน Firebase AI Logic สำหรับ แอป Android ที่ใช้ Firebase AI Logic SDK เวอร์ชัน 17.10.0 ขึ้นไป (BoM เวอร์ชัน 34.10.0 ขึ้นไป) และ ทำงานในอุปกรณ์ที่เฉพาะเจาะจง ซึ่งอยู่ในบังคับข้อกำหนดของ ML Kit รวมถึงข้อกำหนดเฉพาะสำหรับแง่มุม Gen AI ของ ML Kit
กรณีการใช้งานที่แนะนำและความสามารถที่รองรับ
กรณีการใช้งานที่แนะนำ
การใช้โมเดลในอุปกรณ์สำหรับการอนุมานมีข้อดีดังนี้
- ความเป็นส่วนตัวที่ดียิ่งขึ้น
- บริบทเฉพาะรายการ
- การอนุมานโดยไม่มีค่าใช้จ่าย
- ฟังก์ชันการทำงานแบบออฟไลน์
การใช้ฟังก์ชันการทำงานแบบไฮบริดมีข้อดีดังนี้
- เข้าถึงกลุ่มเป้าหมายได้มากขึ้นโดยรองรับความพร้อมใช้งานของโมเดลในอุปกรณ์และการเชื่อมต่ออินเทอร์เน็ต
ความสามารถและฟีเจอร์ที่รองรับสำหรับการอนุมานในอุปกรณ์
การอนุมานในอุปกรณ์รองรับเฉพาะการสร้างข้อความแบบเทิร์นเดียว (ไม่ใช่แชท) โดยมีเอาต์พุตแบบสตรีมมิงหรือไม่สตรีมมิง โดยรองรับความสามารถในการสร้างข้อความต่อไปนี้
การสร้างข้อความจากอินพุตข้อความและรูปภาพ โดยเฉพาะ รูปภาพบิตแมปเดียวเป็นอินพุต
อย่าลืมตรวจสอบรายการฟีเจอร์ที่ยังไม่พร้อมใช้งานสำหรับการอนุมานในอุปกรณ์ที่ด้านล่างของหน้านี้
ก่อนเริ่มต้น
ข้อควรทราบมีดังนี้
API ที่รองรับ:
การอนุมานในระบบคลาวด์จะใช้ผู้ให้บริการ Gemini API ที่คุณเลือก (Gemini Developer API หรือ Agent Platform Gemini API (formerly Vertex AI))
การอนุมานในอุปกรณ์ใช้ Prompt API จาก ML Kit ซึ่งอยู่ในเวอร์ชันเบต้าและพร้อมใช้งานในอุปกรณ์บางรุ่นเท่านั้น
หน้านี้จะอธิบายวิธีเริ่มต้นใช้งาน
หลังจากตั้งค่ามาตรฐานนี้เสร็จแล้ว ให้ดูตัวเลือกและความสามารถในการกำหนดค่าเพิ่มเติม
อุปกรณ์ Android ที่รองรับและโมเดลในอุปกรณ์
สำหรับการอนุมานในอุปกรณ์ (ซึ่งใช้ Prompt API จาก ML Kit) คุณสามารถดูรายการอุปกรณ์ที่รองรับและโมเดลในอุปกรณ์ได้ในเอกสารประกอบของ ML Kit
เริ่มต้นใช้งาน
ขั้นตอนการเริ่มต้นใช้งานเหล่านี้อธิบายการตั้งค่าทั่วไปที่จำเป็นสำหรับคำขอพรอมต์ที่รองรับ ที่คุณต้องการส่ง
ขั้นตอนที่ 1: ตั้งค่าโปรเจ็กต์ Firebase และเชื่อมต่อแอปกับ Firebase
ลงชื่อเข้าใช้คอนโซล Firebase แล้วเลือกโปรเจ็กต์ Firebase
ในคอนโซล Firebase ให้ไปที่บริการ AI > AI Logic
คลิกเริ่มต้นใช้งานเพื่อเปิดตัวเวิร์กโฟลว์แบบมีคำแนะนำที่จะช่วยคุณตั้งค่า API ที่จำเป็น และทรัพยากรสำหรับโปรเจ็กต์
หากได้รับข้อความแจ้ง ให้ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนแอปและเพิ่ม การกำหนดค่า Firebase ลงในแอป
เมื่อระบบขอให้เลือก "ผู้ให้บริการ Gemini API" เราขอแนะนำให้เลือก Gemini Developer API ซึ่งจะช่วยให้คุณเริ่มต้นใช้งานได้อย่างรวดเร็วโดยไม่มีค่าใช้จ่าย
คุณสามารถตั้งค่า Agent Platform Gemini API (formerly Vertex AI) (และข้อกำหนดสำหรับการเรียกเก็บเงิน) ได้ทุกเมื่อในภายหลัง
ทําตามขั้นตอนในเวิร์กโฟลว์เพื่อตั้งค่า API ที่จําเป็นและบริการที่เกี่ยวข้อง สําหรับ Firebase AI Logic
ตั้งแต่ต้นเดือนกรกฎาคม 2026 เป็นต้นไป ขั้นตอนนี้ของเวิร์กโฟลว์จะบังคับใช้ Firebase App Check สำหรับ AI Logic โดยอัตโนมัติ ซึ่งเป็นบริการสำคัญที่ช่วยปกป้อง Gemini API เมื่อมีการเข้าถึงโดยตรงจากแอปของคุณ ในการเริ่มต้นใช้งาน (ดูขั้นตอนในคู่มือนี้) คุณจะต้องกำหนดค่าApp Check ผู้ให้บริการแก้ไขข้อบกพร่องสำหรับการพัฒนาในเครื่องเมื่อมีการบังคับใช้ App Check
ไปยังขั้นตอนถัดไปในคู่มือนี้เพื่อเพิ่ม SDK ที่จำเป็นลงในแอป
ขั้นตอนที่ 2: เพิ่ม SDK ที่จำเป็น
Firebase AI Logic SDK สำหรับ Android (firebase-aifirebase-ai-ondevice
ในไฟล์ Gradle ของโมดูล (ระดับแอป) (เช่น <project>/<app-module>/build.gradle.kts) ให้เพิ่มทรัพยากร Dependency สำหรับไลบรารี Firebase AI Logic และ App Check สำหรับ Android ดังนี้
Kotlin
dependencies { // ... other androidx dependencies // Add the dependencies for the Firebase AI Logic and App Check libraries // Note that the on-device SDK is not yet included in the Firebase Android BoM implementation("com.google.firebase:firebase-ai:18.0.0") implementation("com.google.firebase:firebase-ai-ondevice:16.0.0-beta06") implementation("com.google.firebase:firebase-appcheck-debug:20.0.0") }
Java
สำหรับ Java คุณต้องเพิ่มไลบรารีอีก 2 รายการ
dependencies { // ... other androidx dependencies // Add the dependencies for the Firebase AI Logic and App Check libraries // Note that the on-device SDK is not yet included in the Firebase Android BoM implementation("com.google.firebase:firebase-ai:18.0.0") implementation("com.google.firebase:firebase-ai-ondevice:16.0.0-beta06") implementation("com.google.firebase:firebase-appcheck-debug:20.0.0") // Required for one-shot operations (to use `ListenableFuture` from Guava Android) implementation("com.google.guava:guava:31.0.1-android") // Required for streaming operations (to use `Publisher` from Reactive Streams) implementation("org.reactivestreams:reactive-streams:1.0.4") }
ขั้นตอนที่ 3: กำหนดค่าผู้ให้บริการแก้ไขข้อบกพร่อง App Check สำหรับการพัฒนาในเครื่อง
ตั้งแต่ต้นเดือนกรกฎาคม 2026 เป็นต้นไป Firebase App Check จะได้รับการบังคับใช้โดยอัตโนมัติเพื่อปกป้อง Gemini API โดยเป็นส่วนหนึ่งของเวิร์กโฟลว์การตั้งค่าที่มีคำแนะนำสำหรับ AI Logic ในคอนโซล สำหรับการพัฒนาในเครื่อง คุณต้องกำหนดค่าApp Check ผู้ให้บริการแก้ไขข้อบกพร่องเพื่อข้ามการรับรองในขณะที่ยังคงบังคับใช้ App Check
ในบิลด์การแก้ไขข้อบกพร่อง ให้กำหนดค่า App Check เพื่อใช้โรงงานผู้ให้บริการแก้ไขข้อบกพร่อง ดังนี้
Kotlin
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้
เรียกใช้แอปในโปรแกรมจำลองหรือในอุปกรณ์ทดสอบ
มองหาโทเค็นการแก้ไขข้อบกพร่อง App Check ในบันทึก เช่น
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678คัดลอกโทเค็น (เช่น
123a4567-b89c-12d3-e456-789012345678)
ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้
ในคอนโซล Firebase ให้ไปที่แท็บความปลอดภัย > App Check > แอป
ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง
ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง
ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่เอกสารประกอบอย่างเป็นทางการของ App Check
ขั้นตอนที่ 4: ตรวจสอบว่าโมเดลในอุปกรณ์พร้อมใช้งานหรือไม่
ใช้
FirebaseAIOnDevice
เพื่อตรวจสอบว่าโมเดลในอุปกรณ์พร้อมใช้งานหรือไม่ และดาวน์โหลดโมเดลหากยังไม่พร้อมใช้งาน
เมื่อดาวน์โหลดแล้ว AICore จะอัปเดตโมเดลให้โดยอัตโนมัติ ดูรายละเอียดเพิ่มเติมเกี่ยวกับ AICore และการจัดการการดาวน์โหลดโมเดลในอุปกรณ์ได้ที่ หมายเหตุหลังตัวอย่างโค้ด
Kotlin
val status = FirebaseAIOnDevice.checkStatus()
when (status) {
OnDeviceModelStatus.UNAVAILABLE -> {
Log.w(TAG, "On-device model is unavailable")
}
OnDeviceModelStatus.DOWNLOADABLE -> {
FirebaseAIOnDevice.download().collect { status ->
when (status) {
is DownloadStatus.DownloadStarted ->
Log.w(TAG, "Starting download - ${status.bytesToDownload}")
is DownloadStatus.DownloadInProgress ->
Log.w(TAG, "Download in progress ${status.totalBytesDownloaded} bytes downloaded")
is DownloadStatus.DownloadCompleted ->
Log.w(TAG, "On-device model download complete")
is DownloadStatus.DownloadFailed ->
Log.e(TAG, "Download failed ${status}")
}
}
}
OnDeviceModelStatus.DOWNLOADING -> {
Log.w(TAG, "On-device model is being downloaded")
}
OnDeviceModelStatus.AVAILABLE -> {
Log.w(TAG, "On-device model is available")
}
}
Java
Checking for, downloading, and warming up the model is not yet available for Java.
However, all other APIs and interactions in this guide are available for Java.
โปรดทราบข้อมูลต่อไปนี้เกี่ยวกับการดาวน์โหลดโมเดลในอุปกรณ์
ระยะเวลาที่ใช้ในการดาวน์โหลดโมเดลในอุปกรณ์ขึ้นอยู่กับหลายปัจจัย รวมถึงเครือข่ายของคุณ
หากโค้ดของคุณใช้โมเดลในอุปกรณ์สำหรับการอนุมานหลักหรือการอนุมานสำรอง โปรดตรวจสอบว่าได้ดาวน์โหลดโมเดลตั้งแต่ช่วงแรกๆ ของวงจรแอป เพื่อให้โมเดลในอุปกรณ์พร้อมใช้งานก่อนที่ผู้ใช้ปลายทางจะพบโค้ดในแอป
หากโมเดลในอุปกรณ์ไม่พร้อมใช้งานเมื่อมีการส่งคำขอการอนุมานในอุปกรณ์ SDK จะไม่เรียกใช้การดาวน์โหลดโมเดลในอุปกรณ์โดยอัตโนมัติ SDK จะเปลี่ยนกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์หรือแสดงข้อยกเว้น (ดูรายละเอียดเกี่ยวกับลักษณะการทำงานของโหมดการอนุมาน)
AICore (บริการของระบบ Android) จะจัดการให้คุณว่าโมเดลและเวอร์ชันใดที่ดาวน์โหลดมา คอยอัปเดตโมเดลอยู่เสมอ ฯลฯ โปรดทราบว่าอุปกรณ์จะดาวน์โหลดโมเดลเพียงโมเดลเดียว ดังนั้นหากแอปอื่นในอุปกรณ์ดาวน์โหลดโมเดลในอุปกรณ์สำเร็จก่อนหน้านี้ การตรวจสอบนี้จะแสดงผลว่าโมเดลพร้อมใช้งาน
การเพิ่มประสิทธิภาพเวลาในการตอบสนอง
หากต้องการเพิ่มประสิทธิภาพสำหรับการเรียกใช้การอนุมานครั้งแรก คุณสามารถให้แอปเรียกใช้
onDeviceExtension?.warmUp()
(ปัจจุบันใช้ได้กับ Kotlin เท่านั้น) ซึ่งจะโหลดโมเดลในอุปกรณ์ลงในหน่วยความจำและเริ่มต้นคอมโพเนนต์รันไทม์
ขั้นตอนที่ 5: เริ่มต้นบริการและสร้างอินสแตนซ์โมเดล
|
คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและโค้ดเฉพาะของผู้ให้บริการในหน้านี้ |
ตั้งค่าต่อไปนี้ก่อนส่งคำขอพรอมต์ไปยังโมเดล
เริ่มต้นบริการสำหรับผู้ให้บริการ API ที่คุณเลือก
สร้างอินสแตนซ์
GenerativeModelและตั้งค่าmodeเป็นค่าใดค่าหนึ่งต่อไปนี้ คำอธิบายที่นี่เป็นเพียงภาพรวม แต่คุณสามารถดูรายละเอียดเกี่ยวกับลักษณะการทำงานของโหมดเหล่านี้ได้ในตั้งค่าโหมดการอนุมานPREFER_ON_DEVICE: พยายามใช้โมเดลในอุปกรณ์ หากไม่ได้ ให้กลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ONLY_ON_DEVICE: พยายามใช้โมเดลในอุปกรณ์ มิฉะนั้น throw an exceptionPREFER_IN_CLOUD: พยายามใช้โมเดลที่โฮสต์ในระบบคลาวด์ ไม่เช่นนั้นให้เปลี่ยนไปใช้โมเดลในอุปกรณ์ONLY_IN_CLOUD: พยายามใช้โมเดลที่โฮสต์ในระบบคลาวด์ ไม่เช่นนั้นให้แสดงข้อยกเว้น
Kotlin
// Using this SDK to access on-device inference is an Experimental release and requires opt-in
@OptIn(PublicPreviewAPI::class)
// ...
// Initialize the Gemini Developer API backend service
// Create a GenerativeModel instance with a model that supports your use case
// Set the inference mode (like PREFER_ON_DEVICE to use the on-device model if available)
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
modelName = "CLOUD_MODEL_NAME",
onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
)
Java
// Initialize the Gemini Developer API backend service
// Create a GenerativeModel instance with a model that supports your use case
// Set the inference mode (like PREFER_ON_DEVICE to use the on-device model if available)
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"CLOUD_MODEL_NAME",
new OnDeviceConfig(InferenceMode.PREFER_ON_DEVICE)
);
// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
ขั้นตอนที่ 6: ส่งคำขอพรอมต์ไปยังโมเดล
ส่วนนี้จะแสดงวิธีส่งอินพุตประเภทต่างๆ เพื่อสร้างเอาต์พุตประเภทต่างๆ ซึ่งรวมถึง
สร้างข้อความจากอินพุตที่เป็นข้อความเท่านั้น
| ก่อนลองใช้ตัวอย่างนี้ โปรดตรวจสอบว่าคุณได้ทำตามส่วนเริ่มต้นใช้งานของคู่มือนี้แล้ว |
คุณสามารถใช้
generateContent()
เพื่อสร้างข้อความจากพรอมต์ที่มีข้อความได้ดังนี้
Kotlin
// Imports + initialization of Gemini API backend service + creation of model instance
// Provide a prompt that contains text
val prompt = "Write a story about a magic backpack."
// To generate text output, call generateContent with the text input
val response = model.generateContent(prompt)
print(response.text)
Java
// Imports + initialization of Gemini API backend service + creation of model instance
// Provide a prompt that contains text
Content prompt = new Content.Builder()
.addText("Write a story about a magic backpack.")
.build();
// To generate text output, call generateContent with the text input
ListenableFuture<GenerateContentResponse> response = model.generateContent(prompt);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
โปรดทราบว่า Firebase AI Logic ยังรองรับการสตรีมคำตอบที่เป็นข้อความโดยใช้
generateContentStream
(แทน generateContent) ด้วย
สร้างข้อความที่สร้างขึ้นจากอินพุตข้อความและรูปภาพ (หลายรูปแบบ)
| ก่อนที่จะลองใช้ตัวอย่างนี้ โปรดตรวจสอบว่าคุณได้ทำตามส่วน เริ่มต้นใช้งานของคู่มือนี้แล้ว |
คุณสามารถใช้
generateContent()
เพื่อสร้างข้อความที่สร้างขึ้นจากพรอมต์ที่มีข้อความและไฟล์ภาพ (บิตแมปเท่านั้น) สูงสุด 1 ไฟล์ โดยระบุ mimeType ของไฟล์อินพุตแต่ละไฟล์และตัวไฟล์เอง
Kotlin
// Imports + initialization of Gemini API backend service + creation of model instance
// Loads an image from the app/res/drawable/ directory
val bitmap: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.sparky)
// Provide a prompt that includes the image specified above and text
val prompt = content {
image(bitmap)
text("What developer tool is this mascot from?")
}
// To generate text output, call generateContent with the prompt
val response = model.generateContent(prompt)
print(response.text)
Java
// Imports + initialization of Gemini API backend service + creation of model instance
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sparky);
// Provide a prompt that includes the image specified above and text
Content content = new Content.Builder()
.addImage(bitmap)
.addText("What developer tool is this mascot from?")
.build();
// To generate text output, call generateContent with the prompt
ListenableFuture<GenerateContentResponse> response = model.generateContent(content);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
โปรดทราบว่า Firebase AI Logic ยังรองรับการสตรีมคำตอบที่เป็นข้อความโดยใช้
generateContentStream
(แทน generateContent) ด้วย
คุณทำอะไรได้อีกบ้าง
คุณสามารถใช้ตัวเลือกและความสามารถในการกำหนดค่าเพิ่มเติมต่างๆ สำหรับประสบการณ์การใช้งานแบบผสมได้ดังนี้
ฟีเจอร์ที่ยังไม่พร้อมใช้งานสำหรับการอนุมานในอุปกรณ์
เนื่องจากเป็นรุ่นทดลอง ความสามารถบางอย่างของโมเดลระบบคลาวด์จึงไม่พร้อมใช้งานสำหรับการอนุมานในอุปกรณ์ ฟีเจอร์ต่อไปนี้ยังไม่พร้อมใช้งานสำหรับการอนุมานในอุปกรณ์ (แต่โดยปกติแล้วจะพร้อมใช้งานสำหรับการอนุมานในระบบคลาวด์)
กำลังสร้างรูปภาพ
- สามารถกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
แต่โหมด
ONLY_ON_DEVICEจะส่งข้อยกเว้น
- สามารถกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
แต่โหมด
การสร้างข้อความที่สร้างขึ้นจากประเภทอินพุตไฟล์ภาพอื่นๆ นอกเหนือจากบิตแมป (รูปภาพที่โหลดลงในหน่วยความจำ)
- สามารถใช้โมเดลที่โฮสต์ในระบบคลาวด์แทนได้ แต่โหมด
ONLY_ON_DEVICEจะแสดงข้อยกเว้น
- สามารถใช้โมเดลที่โฮสต์ในระบบคลาวด์แทนได้ แต่โหมด
การสร้างข้อความที่สร้างขึ้นจากอินพุตไฟล์รูปภาพเท่านั้น สำหรับการอนุมานในอุปกรณ์ คุณต้องระบุข้อความเป็นส่วนหนึ่งของคำขอแบบหลายโมดัล
- สามารถกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
แต่โหมด
ONLY_ON_DEVICEจะส่งข้อยกเว้น
- สามารถกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
แต่โหมด
การสร้างข้อความที่สร้างขึ้นจากอินพุตไฟล์ภาพมากกว่า 1 ไฟล์
- สามารถกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
แต่โหมด
ONLY_ON_DEVICEจะส่งข้อยกเว้น
- สามารถกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
แต่โหมด
การสร้างข้อความจากอินพุตเสียง วิดีโอ และเอกสาร (เช่น PDF)
- สามารถกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
แต่โหมด
ONLY_ON_DEVICEจะส่งข้อยกเว้น
- สามารถกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
แต่โหมด
การระบุไฟล์โดยใช้ URL ในคำขอแบบหลายโมดัล สำหรับการอนุมานในอุปกรณ์ คุณต้องระบุรูปภาพเดียวเป็นบิตแมป
- หากคุณระบุ URL ของไฟล์โดยใช้
fileData(FileDataPart) ระบบจะเปลี่ยนไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้ (โหมดONLY_ON_DEVICEจะทำให้เกิดข้อยกเว้น) - หากคุณฝัง URL โดยตรงในพรอมต์ข้อความ ระบบจะไม่เปลี่ยนไปใช้โมเดลที่โฮสต์ในระบบคลาวด์โดยอัตโนมัติ (โมเดลในอุปกรณ์จะไม่สนใจ URL ที่ฝังอยู่)
- หากคุณระบุ URL ของไฟล์โดยใช้
การส่งคำขอที่มีโทเค็นเกิน 4,000 รายการ (หรือประมาณ 3,000 คำในภาษาอังกฤษ)
- สามารถกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
แต่โหมด
ONLY_ON_DEVICEจะส่งข้อยกเว้น
- สามารถกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
แต่โหมด
แชทแบบต่อเนื่อง
- ไม่เปลี่ยนกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์โดยอัตโนมัติ (การอนุมานในอุปกรณ์จะเชื่อมโยงประวัติพรอมต์เป็นพรอมต์ข้อความเดียว เนื่องจากโมเดลในอุปกรณ์ไม่แยกความแตกต่างระหว่างบทบาทและมองเห็นประวัติเป็นข้อความเดียว จึงไม่แม่นยำเท่าโมเดลที่โฮสต์ในระบบคลาวด์)
- หากต้องการใช้แชทแบบหลายรอบ เราขอแนะนำให้ใช้โหมด
ONLY_IN_CLOUD
การจัดหาเครื่องมือให้โมเดลเพื่อช่วยสร้างคำตอบ (เช่น การเรียกใช้ฟังก์ชัน การเรียกใช้โค้ด บริบท URL การอ้างอิงข้อมูลใน
Google Search และการอ้างอิงข้อมูลในGoogle Maps )- ไม่เปลี่ยนไปใช้โมเดลที่โฮสต์ในระบบคลาวด์โดยอัตโนมัติ หากต้องการใช้เครื่องมือ เราขอแนะนำให้ใช้โหมด
ONLY_IN_CLOUD
- ไม่เปลี่ยนไปใช้โมเดลที่โฮสต์ในระบบคลาวด์โดยอัตโนมัติ หากต้องการใช้เครื่องมือ เราขอแนะนำให้ใช้โหมด
การตรวจสอบ AI ในคอนโซล Firebaseไม่แสดงข้อมูลใดๆ สำหรับ การอนุมานในอุปกรณ์ (รวมถึงบันทึกในอุปกรณ์) อย่างไรก็ตาม การอนุมานที่ใช้โมเดลที่โฮสต์ในระบบคลาวด์จะตรวจสอบได้เช่นเดียวกับการอนุมานอื่นๆ ผ่าน Firebase AI Logic
ข้อจำกัดเพิ่มเติม
นอกเหนือจากที่กล่าวมาข้างต้นแล้ว การอนุมานในอุปกรณ์ยังมีข้อจำกัดต่อไปนี้ (ดูข้อมูลเพิ่มเติมในเอกสารประกอบของ ML Kit)
ผู้ใช้ปลายทางของแอปต้องใช้อุปกรณ์ที่รองรับสำหรับการอนุมานในอุปกรณ์
แอปของคุณจะเรียกใช้การอนุมานในอุปกรณ์ได้ก็ต่อเมื่อแอปทำงานอยู่เบื้องหน้าเท่านั้น
เฉพาะภาษาอังกฤษและภาษาเกาหลีเท่านั้นที่ได้รับการตรวจสอบแล้วว่าใช้ได้กับการอนุมานในอุปกรณ์
ขีดจำกัดโทเค็นสูงสุดสำหรับคำขอการอนุมานในอุปกรณ์ทั้งหมดคือ 4000 โทเค็น หากคำขอของคุณอาจเกินขีดจำกัดนี้ ให้กำหนดค่าโหมดการอนุมานที่ใช้โมเดลที่โฮสต์ในระบบคลาวด์ได้
เราขอแนะนำให้หลีกเลี่ยงกรณีการใช้งานการอนุมานในอุปกรณ์ที่ต้องใช้เอาต์พุตยาว (มากกว่า 256 โทเค็น)
AICore (บริการของระบบ Android ที่จัดการโมเดลในอุปกรณ์) จะบังคับใช้โควต้าการอนุมานต่อแอป การส่งคำขอ API มากเกินไปในระยะเวลาสั้นๆ จะส่งผลให้เกิดการตอบกลับ
ErrorCode.BUSYหากได้รับข้อผิดพลาดนี้ ให้พิจารณาใช้ Exponential Backoff เพื่อลองส่งคำขออีกครั้ง นอกจากนี้ErrorCode.PER_APP_BATTERY_USE_QUOTA_EXCEEDEDยังอาจถูกส่งคืนหากแอป ใช้โควต้าแบบระยะยาวเกิน (เช่น โควต้าต่อวัน)
แสดงความคิดเห็นเกี่ยวกับประสบการณ์การใช้งาน Firebase AI Logic