From 5dae534f8d88ff3d161f345a602e611c16e17ba0 Mon Sep 17 00:00:00 2001 From: Wassim Chegham <github@wassim.dev> Date: Fri, 15 Nov 2024 20:16:32 +0100 Subject: [PATCH] fix: propagate queryStr to concrete vectorStore (#1495) Co-authored-by: Alex Yang <himself65@outlook.com> --- .changeset/rare-olives-switch.md | 5 +++++ packages/llamaindex/src/indices/vectorStore/index.ts | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 .changeset/rare-olives-switch.md diff --git a/.changeset/rare-olives-switch.md b/.changeset/rare-olives-switch.md new file mode 100644 index 000000000..b90a14af4 --- /dev/null +++ b/.changeset/rare-olives-switch.md @@ -0,0 +1,5 @@ +--- +"llamaindex": patch +--- + +fix: propagate queryStr to concrete vectorStore diff --git a/packages/llamaindex/src/indices/vectorStore/index.ts b/packages/llamaindex/src/indices/vectorStore/index.ts index 994c73951..466f09657 100644 --- a/packages/llamaindex/src/indices/vectorStore/index.ts +++ b/packages/llamaindex/src/indices/vectorStore/index.ts @@ -18,6 +18,7 @@ import { type NodeWithScore, } from "@llamaindex/core/schema"; import type { BaseIndexStore } from "@llamaindex/core/storage/index-store"; +import { extractText } from "@llamaindex/core/utils"; import type { ServiceContext } from "../../ServiceContext.js"; import { nodeParserFromSettingsOrContext } from "../../Settings.js"; import { RetrieverQueryEngine } from "../../engines/query/RetrieverQueryEngine.js"; @@ -449,8 +450,13 @@ export class VectorIndexRetriever extends BaseRetriever { filters?: MetadataFilters, ): Promise<NodeWithScore[]> { // convert string message to multi-modal format + + let queryStr = query; if (typeof query === "string") { - query = [{ type: "text", text: query }]; + queryStr = query; + query = [{ type: "text", text: queryStr }]; + } else { + queryStr = extractText(query); } // overwrite embed model if specified, otherwise use the one from the vector store const embedModel = this.index.embedModel ?? vectorStore.embedModel; @@ -460,6 +466,7 @@ export class VectorIndexRetriever extends BaseRetriever { const queryEmbedding = await embedModel.getQueryEmbedding(item); if (queryEmbedding) { const result = await vectorStore.query({ + queryStr, queryEmbedding, mode: VectorStoreQueryMode.DEFAULT, similarityTopK: this.topK[type]!, -- GitLab