[mob] Fix: use DB to identify indexed fileIDs

This commit is contained in:
Neeraj Gupta
2024-05-14 16:25:44 +05:30
parent 43b318c1c7
commit d6599f178b
2 changed files with 15 additions and 1 deletions

View File

@@ -63,6 +63,19 @@ class EmbeddingsDB {
return _convertToEmbeddings(results);
}
// Get FileIDs for a specific model
Future<Set<int>> getFileIDs(Model model) async {
final db = await _database;
final results = await db.getAll(
'SELECT $columnFileID FROM $tableName WHERE $columnModel = ?',
[modelToInt(model)!],
);
if (results.isEmpty) {
return <int>{};
}
return results.map((e) => e[columnFileID] as int).toSet();
}
Future<void> put(Embedding embedding) async {
final db = await _database;
await db.execute(

View File

@@ -225,7 +225,8 @@ class SemanticSearchService {
Future<List<int>> _getFileIDsToBeIndexed() async {
final uploadedFileIDs = await FilesDB.instance
.getOwnedFileIDs(Configuration.instance.getUserID()!);
final embeddedFileIDs = _cachedEmbeddings.map((e) => e.fileID).toSet();
final embeddedFileIDs =
await EmbeddingsDB.instance.getFileIDs(_currentModel);
uploadedFileIDs.removeWhere(
(id) => embeddedFileIDs.contains(id),
);