Prompt API cho phép bạn chọn rõ ràng phiên bản Gemini Nano mà ứng dụng của bạn sử dụng. Bằng cách định cấu hình giai đoạn phát hành mô hình và lựa chọn ưu tiên về hiệu suất, bạn có thể truy cập sớm vào các khả năng mới của mô hình hoặc tối ưu hoá ứng dụng cho các hạn chế cụ thể về phần cứng.
Tìm hiểu về cấu hình mô hình
Để chọn một mô hình cụ thể, bạn phải định cấu hình 2 thông số chính trong lớp ModelConfig: giai đoạn phát hành và lựa chọn ưu tiên về mô hình.
Giai đoạn phát hành
Giai đoạn phát hành cho phép bạn chọn giữa mô hình ổn định hoặc mô hình xem trước:
- Ổn định (
ModelReleaseStage.STABLE): Chọn phiên bản mô hình mới nhất đã được kiểm tra đầy đủ và có trên các thiết bị tiêu dùng. Đây là cài đặt mặc định. - Xem trước (
ModelReleaseStage.PREVIEW): Chọn phiên bản mô hình mới nhất ở giai đoạn xem trước. Giai đoạn này cho phép bạn thử nghiệm các tính năng beta hoặc cấu trúc mô hình mới hơn trước khi chúng được triển khai rộng rãi ở giai đoạn ổn định.
Để biết các điều kiện tiên quyết và hướng dẫn đăng ký tham gia bản dùng trước cho nhà phát triển, hãy xem hướng dẫn về Bản dùng trước cho nhà phát triển AICore.
Lựa chọn ưu tiên về mô hình
Lựa chọn ưu tiên về mô hình cho phép bạn chỉ định những đặc điểm hiệu suất quan trọng nhất cho trường hợp sử dụng của mình.
- Đầy đủ (
ModelPreference.FULL): Bạn nên chọn chế độ ưu tiên này khi độ chính xác của mô hình và các chức năng đầy đủ được ưu tiên hơn tốc độ. - Nhanh (
ModelPreference.FAST): Lựa chọn ưu tiên này được đề xuất cho các ứng dụng nhạy cảm với độ trễ và yêu cầu thời gian phản hồi tối thiểu.
Định cấu hình mô hình tạo sinh
Để sử dụng một biến thể mô hình cụ thể, bạn phải xác định một ModelConfig và truyền biến thể đó đến GenerationConfig khi khởi chạy ứng dụng.
Ví dụ sau đây minh hoạ cách định cấu hình ứng dụng để sử dụng mô hình Nhanh từ giai đoạn Xem trước:
Kotlin
// Define the configuration with a specific stage and preference
val previewFastConfig = generationConfig {
modelConfig = modelConfig {
releaseStage = ModelReleaseStage.PREVIEW
preference = ModelPreference.FAST
}
}
// Initialize the GenerativeModel with the configuration
val generativeModel = Generation.getClient(previewFastConfig)
Java
// Define the configuration with a specific stage and preference
GenerationConfig previewFastConfig = new GenerationConfig.Builder()
.setModelConfig(new ModelConfig.Builder()
.setReleaseStage(ModelReleaseStage.PREVIEW)
.setPreference(ModelPreference.FAST)
.build())
.build();
// Initialize the GenerativeModel with the configuration
GenerativeModel generativeModel = Generation.INSTANCE.getClient(previewFastConfig);
Kiểm tra phạm vi cung cấp của mô hình
Không phải thiết bị nào cũng hỗ trợ mọi tổ hợp giai đoạn phát hành và lựa chọn ưu tiên về mô hình. Các mô hình xem trước chỉ có trong danh sách thiết bị được hỗ trợ trong hướng dẫn về Bản dùng trước AICore cho nhà phát triển.
API này không cung cấp phương thức liệt kê trước tất cả các cấu hình mô hình hiện có. Thay vào đó, hãy khởi tạo ứng dụng khách bằng cấu hình mong muốn, rồi xác minh trạng thái của ứng dụng khách.
- Khởi động ứng dụng: Tạo phiên bản
GenerativeModelbằngModelConfigmà bạn muốn. Kiểm tra trạng thái: Gọi phương thức
checkStatus()trên thực thể để xác minh rằng biến thể mô hình cụ thể có trên thiết bị.
Kotlin
val generativeModel = Generation.getClient(previewFastConfig)
// Verify that the specific preview model is available
val status = generativeModel.checkStatus()
when (status) {
FeatureStatus.UNAVAILABLE -> {
// Specified preview model is not available on this device
}
FeatureStatus.DOWNLOADABLE -> {
// Specified preview model is available for this device, but not downloaded yet.
// Model may be downloaded through the AICore app or by calling generativeModel.download()
}
FeatureStatus.AVAILABLE -> {
// Proceed with inference
}
FeatureStatus.DOWNLOADING -> {
// Specified preview model is downloading
}
}
Java
GenerativeModel generativeModel = Generation.INSTANCE.getClient(previewFastConfig);
// For Java, use GenerativeModelFutures if you prefer ListenableFuture
GenerativeModelFutures generativeModelFutures = GenerativeModelFutures.from(generativeModel);
Futures.addCallback(
generativeModelFutures.checkStatus(),
new FutureCallback<Integer>() {
@Override
public void onSuccess(Integer status) {
if (status == FeatureStatus.AVAILABLE) {
// Proceed with inference
} else if (status == FeatureStatus.DOWNLOADING) {
// Specified preview model is downloading
} else if (status == FeatureStatus.DOWNLOADABLE) {
// Specified preview model is available for this device, but not downloaded yet.
// Call generativeModelFutures.download(callback) or use the AICore app.
} else if (status == FeatureStatus.UNAVAILABLE) {
// Specified preview model is not available on this device
}
}
@Override
public void onFailure(Throwable t) {
// Handle failure
}
},
ContextCompat.getMainExecutor(context));
Để đảm bảo khả năng tương thích với các cấu hình có thể có trong tương lai, SDK được thiết kế để tránh gửi GenAiException trong quá trình khởi tạo ứng dụng, chỉ dựa vào phương thức checkStatus() để xác minh trạng thái sẵn có.
Các phương pháp hay nhất
- Triển khai các chiến lược dự phòng: Vì không phải thiết bị nào cũng có sẵn các mô hình xem trước, nên bạn phải luôn triển khai một chiến lược dự phòng. Nếu
checkStatus()trả vềfalsecho một cấu hình xem trước, ứng dụng của bạn sẽ chuyển vềModelReleaseStage.STABLEvàModelPreference.FULLmột cách thích hợp. - Sử dụng các giai đoạn phát hành mô hình cho quá trình phát triển và sản xuất: Sử dụng giai đoạn Xem trước trong quá trình phát triển và kiểm thử nội bộ để đánh giá các điểm cải tiến sắp tới của mô hình. Chuyển sang phiên bản Ổn định cho các bản phát hành công khai trong quy trình sản xuất để đảm bảo người dùng có được trải nghiệm nhất quán.
Vấn đề đã biết
- Đối với một số thiết bị ở giai đoạn phát hành bản xem trước, các thiết bị này sẽ không hỗ trợ nhiều đề xuất trong đầu ra và sẽ trả về lỗi nếu
candidateCountđược đặt lớn hơn 1. Hãy xem Tài liệu tham khảo API để biết thêm thông tin. - Một số cách triển khai không hỗ trợ nhiều mẫu. Hiệu suất sẽ chậm hơn so với bản phát hành chính thức.