diff --git a/.changeset/slow-adults-nail.md b/.changeset/slow-adults-nail.md new file mode 100644 index 0000000000..b48f661eb1 --- /dev/null +++ b/.changeset/slow-adults-nail.md @@ -0,0 +1,5 @@ +--- +"llamaindex": patch +--- + +feat: add top k to `asQueryEngine` diff --git a/packages/core/src/indices/vectorStore/index.ts b/packages/core/src/indices/vectorStore/index.ts index 7450c233d2..b81d897afc 100644 --- a/packages/core/src/indices/vectorStore/index.ts +++ b/packages/core/src/indices/vectorStore/index.ts @@ -279,18 +279,29 @@ export class VectorStoreIndex extends BaseIndex { return new VectorIndexRetriever({ index: this, ...options }); } + /** + * Create a RetrieverQueryEngine. + * similarityTopK is only used if no existing retriever is provided. + */ asQueryEngine(options?: { retriever?: BaseRetriever; responseSynthesizer?: BaseSynthesizer; preFilters?: MetadataFilters; nodePostprocessors?: BaseNodePostprocessor[]; + similarityTopK?: number; }): QueryEngine & RetrieverQueryEngine { - const { retriever, responseSynthesizer } = options ?? {}; + const { + retriever, + responseSynthesizer, + preFilters, + nodePostprocessors, + similarityTopK, + } = options ?? {}; return new RetrieverQueryEngine( - retriever ?? this.asRetriever(), + retriever ?? this.asRetriever({ similarityTopK }), responseSynthesizer, - options?.preFilters, - options?.nodePostprocessors, + preFilters, + nodePostprocessors, ); }