Method RetrieveAsync
RetrieveAsync(IReadOnlyList<DataSource>, string, float[], int, float, bool, bool, DataFilter, CancellationToken)
Retrieves matching partitions from the given data sources.
public Task<List<PartitionSimilarity>> RetrieveAsync(IReadOnlyList<DataSource> dataSources, string queryText, float[] queryVector, int topK, float minScore, bool forceUniqueDataSource, bool forceUniqueSection, DataFilter filter, CancellationToken cancellationToken)
Parameters
dataSourcesIReadOnlyList<DataSource>The data sources to search.
queryTextstringThe raw query text.
queryVectorfloat[]The query embedding vector, or
nullif RequiresQueryVector isfalse.topKintThe maximum number of candidate results to return.
minScorefloatThe minimum similarity score threshold.
forceUniqueDataSourceboolWhen
true, restricts results to the single most relevant data source.forceUniqueSectionboolWhen
true, restricts results to the single most relevant section.filterDataFilterAn optional filter to exclude specific data sources or sections.
cancellationTokenCancellationTokenA token to cancel the operation.
Returns
- Task<List<PartitionSimilarity>>
A list of PartitionSimilarity objects representing the top matching partitions.
Examples
// Typically called internally by RagEngine, but can be invoked directly
// for advanced scenarios.
IRetrievalStrategy strategy = new VectorRetrievalStrategy();
List<PartitionSimilarity> results = await strategy.RetrieveAsync(
dataSources: ragEngine.DataSources,
queryText: "How does authentication work?",
queryVector: embeddingVector,
topK: 10,
minScore: 0.3f,
forceUniqueDataSource: false,
forceUniqueSection: false,
filter: null,
cancellationToken: CancellationToken.None);