[mob][photos] Decrypt remote embeddings in computer
This commit is contained in:
parent
31dee1249d
commit
3e79c8cf28
|
@ -1,6 +1,7 @@
|
||||||
import "dart:async";
|
import "dart:async";
|
||||||
import "dart:convert";
|
import "dart:convert";
|
||||||
|
|
||||||
|
import "package:computer/computer.dart";
|
||||||
import "package:logging/logging.dart";
|
import "package:logging/logging.dart";
|
||||||
import "package:photos/core/network/network.dart";
|
import "package:photos/core/network/network.dart";
|
||||||
import "package:photos/db/files_db.dart";
|
import "package:photos/db/files_db.dart";
|
||||||
|
@ -16,6 +17,8 @@ import "package:shared_preferences/shared_preferences.dart";
|
||||||
class RemoteFileMLService {
|
class RemoteFileMLService {
|
||||||
RemoteFileMLService._privateConstructor();
|
RemoteFileMLService._privateConstructor();
|
||||||
|
|
||||||
|
static final Computer _computer = Computer.shared();
|
||||||
|
|
||||||
static final RemoteFileMLService instance =
|
static final RemoteFileMLService instance =
|
||||||
RemoteFileMLService._privateConstructor();
|
RemoteFileMLService._privateConstructor();
|
||||||
|
|
||||||
|
@ -107,15 +110,17 @@ class RemoteFileMLService {
|
||||||
final input = EmbeddingsDecoderInput(embedding, fileKey);
|
final input = EmbeddingsDecoderInput(embedding, fileKey);
|
||||||
inputs.add(input);
|
inputs.add(input);
|
||||||
}
|
}
|
||||||
// todo: use compute or isolate
|
return _computer.compute<Map<String, dynamic>, Map<int, FileMl>>(
|
||||||
return decryptFileMLComputer(
|
_decryptFileMLComputer,
|
||||||
{
|
param: {
|
||||||
"inputs": inputs,
|
"inputs": inputs,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Map<int, FileMl>> decryptFileMLComputer(
|
}
|
||||||
|
|
||||||
|
Future<Map<int, FileMl>> _decryptFileMLComputer(
|
||||||
Map<String, dynamic> args,
|
Map<String, dynamic> args,
|
||||||
) async {
|
) async {
|
||||||
final result = <int, FileMl>{};
|
final result = <int, FileMl>{};
|
||||||
|
@ -134,5 +139,4 @@ class RemoteFileMLService {
|
||||||
result[input.embedding.fileID] = decodedEmbedding;
|
result[input.embedding.fileID] = decodedEmbedding;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
|
Loading…
Reference in a new issue