generateEmbeddings method

  1. @override
Future<List<List<double>>> generateEmbeddings(
  1. List<String> texts, {
  2. TaskType taskType = TaskType.retrievalQuery,
})
override

Generate embedding vectors for multiple texts.

taskType controls the prefix applied before embedding.

Implementation

@override
Future<List<List<double>>> generateEmbeddings(
  List<String> texts, {
  TaskType taskType = TaskType.retrievalQuery,
}) async {
  _assertNotClosed();
  await _ensureInitialized();

  try {
    if (taskType == TaskType.retrievalDocument) {
      final results = <List<double>>[];
      for (final text in texts) {
        results.add(await LiteRTWebEmbeddings.generateDocumentEmbedding(text));
      }
      return results;
    }
    final embeddings = await LiteRTWebEmbeddings.generateEmbeddings(texts);
    if (kDebugMode) {
      debugPrint('✅ Generated ${embeddings.length} embeddings');
    }
    return embeddings;
  } catch (e) {
    if (kDebugMode) {
      debugPrint('❌ Failed to generate embeddings: $e');
    }
    rethrow;
  }
}