Các lựa chọn cấu hình cho trải nghiệm kết hợp trong ứng dụng Android


Trang này mô tả các lựa chọn cấu hình sau đây cho trải nghiệm kết hợp:

Đảm bảo rằng bạn đã hoàn tất hướng dẫn bắt đầu xây dựng trải nghiệm kết hợp.

Đặt chế độ suy luận

Các ví dụ trong hướng dẫn bắt đầu sử dụng dùng chế độ PREFER_ON_DEVICE, nhưng đây chỉ là một trong bốn chế độ suy luận có sẵn.

Dưới đây là các chế độ suy luận có sẵn:

  • PREFER_ON_DEVICE: Thử sử dụng mô hình trên thiết bị nếu có và hỗ trợ loại yêu cầu. Nếu không, hãy ghi lại lỗi trên thiết bị rồi tự động quay lại mô hình được lưu trữ trên đám mây.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_ON_DEVICE: Thử sử dụng mô hình trên thiết bị nếu có và hỗ trợ loại yêu cầu. Nếu không, hãy gửi một ngoại lệ.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • PREFER_IN_CLOUD: Thử dùng mô hình được lưu trữ trên đám mây nếu thiết bị đang trực tuyến và nếu mô hình có sẵn. Nếu thiết bị không có mạng, hãy chuyển về mô hình trên thiết bị. Trong tất cả các trường hợp lỗi khác, hãy gửi một ngoại lệ.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_IN_CLOUD: Thử dùng mô hình được lưu trữ trên đám mây nếu thiết bị đang trực tuyến và nếu mô hình có sẵn. Nếu không, hãy gửi một ngoại lệ.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    

Xác định xem bạn đã sử dụng suy luận trên thiết bị hay trong đám mây

Nếu bạn sử dụng chế độ suy luận PREFER_ON_DEVICE hoặc PREFER_IN_CLOUD, thì bạn nên biết chế độ nào đã được dùng cho các yêu cầu nhất định. Thông tin này do thuộc tính inferenceSource của mỗi phản hồi cung cấp.

Khi bạn truy cập vào thuộc tính này, giá trị được trả về sẽ là ON_DEVICE hoặc IN_CLOUD.

Kotlin

// ...

print("You used: ${result.response.inferenceSource}")

print(result.response.text)

Java

// ...

System.out.println("You used: " + result.getResponse().getInferenceSource());

System.out.println(result.getResponse().getText());

Chỉ định một mô hình được lưu trữ trên đám mây để sử dụng

Nhấp vào nhà cung cấp Gemini API để xem nội dung và mã dành riêng cho nhà cung cấp trên trang này.

Nếu suy luận chính hoặc dự phòng của bạn có thể được thực hiện bằng một mô hình được lưu trữ trên đám mây, thì bạn cần chỉ định rõ ràng một mô hình đám mây để sử dụng khi tạo phiên bản generativeModel.

Kotlin

val model = Firebase.ai(backend = GenerativeBackend.googleAI())
    .generativeModel(
        modelName = "MODEL_NAME",
        onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    )

Java

GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .generativeModel(
        "MODEL_NAME",
        new OnDeviceConfig(InferenceMode.PREFER_ON_DEVICE)
    );

GenerativeModelFutures model = GenerativeModelFutures.from(ai);

Tìm tên mô hình cho tất cả các mô hình Gemini được hỗ trợ.

Sử dụng cấu hình mô hình để kiểm soát câu trả lời

Nhấp vào nhà cung cấp Gemini API để xem nội dung và mã dành riêng cho nhà cung cấp trên trang này.

Trong mỗi yêu cầu gửi đến một mô hình, bạn có thể gửi kèm theo một cấu hình mô hình để kiểm soát cách mô hình tạo ra phản hồi. Các mô hình được lưu trữ trên đám mây và mô hình trên thiết bị cung cấp các lựa chọn cấu hình khác nhau (các tham số đám mây so với trên thiết bị).

Đối với các mô hình được lưu trữ trên đám mây, hãy thiết lập cấu hình của các mô hình đó ngay trong cấu hình của mô hình. Tuy nhiên, đối với các mô hình trên thiết bị, hãy thiết lập cấu hình của chúng trong onDeviceConfig.

Cấu hình này được duy trì trong suốt thời gian hoạt động của phiên bản. Nếu bạn muốn sử dụng một cấu hình khác, hãy tạo một phiên bản GenerativeModel mới bằng cấu hình đó.

Sau đây là ví dụ minh hoạ cách thiết lập cấu hình cho các mô hình được lưu trữ trên đám mây và trên thiết bị có thể được dùng nếu bạn đặt chế độ suy luận PREFER_ON_DEVICE:

Kotlin

val model = Firebase.ai(backend = GenerativeBackend.googleAI())
    .generativeModel("MODEL_NAME",
        // Config for cloud-hosted model
        generationConfig = generationConfig {
          temperature = 0.8f,
          topK = 10
        },
        // Config for on-device model
        onDeviceConfig = onDeviceConfig {
          mode = InferenceMode.PREFER_ON_DEVICE,
          temperature = 0.8f,
          topK = 5
        })

Java

// Config for cloud-hosted model
GenerationConfig generationConfig = new GenerationConfig.Builder()
    .setTemperature(0.8f)
    .setTopK(10)
    .build();

// Config for on-device model
OnDeviceConfig onDeviceConfig = new OnDeviceConfig.Builder()
    .setMode(InferenceMode.PREFER_ON_DEVICE)
    .setTemperature(0.8f)
    .setTopK(5)
    .build();

GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .generativeModel(
        "MODEL_NAME",
        generationConfig,
        onDeviceConfig
    );

GenerativeModelFutures model = GenerativeModelFutures.from(ai);