diff --git a/mobile/lib/db/ml/clip_db.dart b/mobile/lib/db/ml/clip_db.dart index c5509081a4..3ac64477ec 100644 --- a/mobile/lib/db/ml/clip_db.dart +++ b/mobile/lib/db/ml/clip_db.dart @@ -1,6 +1,7 @@ import "dart:io"; import "dart:typed_data"; +import "package:logging/logging.dart"; import "package:photos/core/event_bus.dart"; import "package:photos/db/ml/db.dart"; import "package:photos/db/ml/db_fields.dart"; @@ -19,6 +20,7 @@ extension ClipDB on MLDataDB { } Future> getAllClipVectors() async { + Logger("ClipDB").info("reading all embeddings from DB"); final db = await MLDataDB.instance.asyncDB; final results = await db.getAll('SELECT * FROM $clipTable'); return _convertToVectors(results); diff --git a/mobile/lib/db/ml/db.dart b/mobile/lib/db/ml/db.dart index 0d4b0c2772..89c4860506 100644 --- a/mobile/lib/db/ml/db.dart +++ b/mobile/lib/db/ml/db.dart @@ -30,6 +30,8 @@ class MLDataDB { static const _databaseName = "ente.ml.db"; + static Logger get logger => _logger; + // static const _databaseVersion = 1; MLDataDB._privateConstructor(); diff --git a/mobile/lib/services/machine_learning/semantic_search/semantic_search_service.dart b/mobile/lib/services/machine_learning/semantic_search/semantic_search_service.dart index 8885829743..e6eb268f52 100644 --- a/mobile/lib/services/machine_learning/semantic_search/semantic_search_service.dart +++ b/mobile/lib/services/machine_learning/semantic_search/semantic_search_service.dart @@ -108,8 +108,12 @@ class SemanticSearchService { } Future> getClipVectors() async { - _logger.info("Pulling cached clip embeddings"); + if (_cachedImageEmbeddingVectors != null) { + return _cachedImageEmbeddingVectors!; + } _cachedImageEmbeddingVectors ??= MLDataDB.instance.getAllClipVectors(); + _logger.info("read all embeddings from DB"); + return _cachedImageEmbeddingVectors!; }