retrieve method

Future<List<RagSource>> retrieve(
  1. String question, {
  2. int? k,
  3. Filter? filter,
})

The chunks most relevant to question.

Implementation

Future<List<RagSource>> retrieve(
  String question, {
  int? k,
  Filter? filter,
}) async {
  if (k != null && k <= 0) {
    throw ArgumentError.value(k, 'k', 'must be positive');
  }
  final vector = await embedder.embedOne(
    question,
    purpose: EmbedPurpose.query,
  );
  final hits = await store.query(
    CollectionQuery(
      vector: vector,
      text: hybrid ? question : null,
      filter: filter,
      k: k ?? this.k,
      mmr: mmr,
    ),
  );
  return [for (var i = 0; i < hits.length; i++) RagSource(i + 1, hits[i])];
}