workOnTask method

  1. @override
Future<void> workOnTask(
  1. TaskExecutionContext context
)
override

Implementation

@override
Future<void> workOnTask(TaskExecutionContext context) async {
  try {
    List<List<double>> vectors = await FireRag.instance.embed.embedMultiple(
      await Future.wait(chunks.map(getContent)),
    );

    await Future.wait(
      chunks.mapIndexed((doc, index) => setVector(doc, vectors[index])),
    );
    await FireRag.instance.pushRecordProgress(
      location: recordLocation,
      deltaCoreCompleted: lod == 0 ? chunks.length : 0,
      deltaDistilledCompleted: lod > 0 ? chunks.length : 0,
    );
    context.complete();
  } catch (e, es) {
    if (e.toString().contains("429")) {
      context.backoff();
      return;
    }

    context.fail(e.toString());
    error(es);
  }
}