loadModelSpec static method
Loads a model specification from SharedPreferences if it exists
Implementation
static Future<ModelSpec?> loadModelSpec(ModelManagementType type, String expectedName) async {
try {
final prefs = await _prefs;
switch (type) {
case ModelManagementType.inference:
final modelFilename = prefs.getString('installed_model_file_name');
final loraFilename = prefs.getString('installed_lora_file_name');
if (modelFilename != null) {
// Create a basic spec from saved data
return InferenceModelSpec(
name: expectedName,
modelUrl: 'local://$modelFilename', // Placeholder URL
loraUrl: loraFilename != null ? 'local://$loraFilename' : null,
);
}
break;
case ModelManagementType.embedding:
final modelFilename = prefs.getString('embedding_model_file');
final tokenizerFilename = prefs.getString('embedding_tokenizer_file');
if (modelFilename != null && tokenizerFilename != null) {
return EmbeddingModelSpec(
name: expectedName,
modelUrl: 'local://$modelFilename', // Placeholder URL
tokenizerUrl: 'local://$tokenizerFilename',
);
}
break;
}
return null;
} catch (e) {
debugPrint('Failed to load model spec for $type/$expectedName: $e');
return null;
}
}