upsertAll method

  1. @override
Future<void> upsertAll(
  1. List<VectorUpsert> upserts
)
override

Implementation

@override
Future<void> upsertAll(List<VectorUpsert> upserts) async {
  List<Future> work = [];
  List<List<double>> vectors = await embedder.embedMultiple(
    upserts.map((u) => u.content).toList(),
  );

  for (int i = 0; i < upserts.length; i++) {
    work.add(
      collection.doc(upserts[i].id).set({
        contentField: upserts[i].content,
        metadataField: upserts[i].metadata,
        vectorField: VectorValue(vector: vectors[i]),
      }),
    );
  }

  await Future.wait(work);
}