embed static method
Convert text to an embedding vector.
The inference runs entirely on the background worker isolate so this call never blocks the UI thread.
Implementation
static Future<List<double>> embed(String text) async {
final sendPort = _workerSendPort;
if (sendPort == null) {
throw Exception("EmbeddingService not initialized. Call init() first.");
}
final replyPort = ReceivePort();
sendPort.send({
'cmd': 'embed',
'text': text,
'debugMode': debugMode,
'replyPort': replyPort.sendPort,
});
final result = await replyPort.first;
replyPort.close();
if (result is Map && result['error'] != null) {
throw Exception(result['error']);
}
final embedding = (result as List).cast<double>();
_dimensionState.validateAndRemember(embedding.length);
return embedding;
}