ModelSelector

class ModelSelector

ModelSelector allows to dynamically select a ModelProvider from a given set of providers.

Summary

Public constructors

ModelSelector(vararg modelProviders: ModelProvider)
ModelSelector(modelProviders: Set<ModelProvider>)

Public functions

suspend ModelProvider

Selects a ModelProvider from the given set based on the availability of model files and accelerators, in the order of NPU, GPU, CPU.

ListenableFuture<ModelProvider>
selectModelFuture(env: Environment, lifecycleOwner: LifecycleOwner)

Returns a future that completes when the model is selected and ready to use.

Public constructors

ModelSelector

ModelSelector(vararg modelProviders: ModelProvider)

ModelSelector

ModelSelector(modelProviders: Set<ModelProvider>)

Public functions

selectModel

suspend fun selectModel(env: Environment): ModelProvider

Selects a ModelProvider from the given set based on the availability of model files and accelerators, in the order of NPU, GPU, CPU.

Returns
ModelProvider

the selected ModelProvider, which is guaranteed to be ready to use.

Throws
java.lang.IllegalStateException

if no model is available.

selectModelFuture

fun selectModelFuture(env: Environment, lifecycleOwner: LifecycleOwner): ListenableFuture<ModelProvider>

Returns a future that completes when the model is selected and ready to use.

NOTE: Kotlin callers should use selectModel instead.