loadFromNetwork method
Load a model from the network.
Tip: you can get a LanguageModelDescription via loadModelsList and use LanguageModelDescription.url.
Implementation
Future<String> loadFromNetwork(
final String modelUrl, {
final bool forceReload = false,
}) async {
final modelName = path.basenameWithoutExtension(modelUrl);
if (!forceReload && await isModelAlreadyLoaded(modelName)) {
final modelPathValue = await modelPath(modelName);
log('Model already loaded to $modelPathValue', name: 'ModelLoader');
return modelPathValue;
}
final start = DateTime.now();
final bytes = await httpClient
.get(Uri.parse(modelUrl))
.then((final response) => response.bodyBytes);
final decompressionPath = await _extractModel(bytes);
final decompressedModelRoot = path.join(decompressionPath, modelName);
log(
'Model loaded to $decompressedModelRoot in '
'${DateTime.now().difference(start).inMilliseconds}ms',
name: 'ModelLoader',
);
return decompressedModelRoot;
}