embed static method

Future<List<double>> embed(
  1. String text
)

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