loadModelSpec static method

Future<ModelSpec?> loadModelSpec(
  1. ModelManagementType type,
  2. String expectedName
)

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;
  }
}