Repository: run-llama/LlamaIndexTS
Pull request #1911: feat: qdrant search params
Author: login: anubhavrana
Created: 2025-05-06T18:39:16Z | Merged: 2025-05-13T02:50:23Z

This PR adds functionality to allow users to pass additional search params when using the `query` method of `QdrantVectorStore`.

## Major Changes

- Add `qdrant_search_params` as options when using the `query` method in `QdrantVectorStore`. 
- Update implementation of vector store and vector index to allow for search params.
- Create an example that uses search params when querying a `Qdrant` vector store.
- Tests incorporating search params.

## Minor Changes

- Typo in `Qdrant` example readme.
- Add a line in `docs` to mention setting search parameters.

closes #1910 

Linked issue #1910: Allow for search params when querying using `Qdrant` vector store.
## The Problem

We are using `Qdrant` as our vector store and recently have updated our collection to use quantization in order to reduce memory utilization and improve response times. Here are the relevant docs: https://qdrant.tech/documentation/guides/quantization/ 

When working with quantized vectors, `Qdrant` allows for search parameters to enable `rescoring` and `oversampling`, which improves accuracy while querying quantized vectors. 

Additionally these search parameters allow one to control other index specific parameters while performing `search` or `query` requests. More info on [query](https://api.qdrant.tech/v-1-13-x/api-reference/search/query-points#request.body.params) and [search](https://api.qdrant.tech/v-1-13-x/api-reference/search/points#request.body.params)

## Proposed Solution

Allow for these params to be set when using the `QdrantVectorStore` object and using the `query` method 

Diff:
diff --git a/.changeset/silver-taxis-call.md b/.changeset/silver-taxis-call.md
new file mode 100644
index 0000000000..6f8d297f77
--- /dev/null
+++ b/.changeset/silver-taxis-call.md
@@ -0,0 +1,8 @@
+---
+"@llamaindex/doc": patch
+"@llamaindex/examples": patch
+"@llamaindex/core": patch
+"@llamaindex/qdrant": patch
+---
+
+Add functionality for search params when querying Qdrant vector store.
diff --git a/apps/next/src/content/docs/llamaindex/modules/data/stores/vector_stores/qdrant.mdx b/apps/next/src/content/docs/llamaindex/modules/data/stores/vector_stores/qdrant.mdx
index 18c4fab1fa..9f75608f24 100644
--- a/apps/next/src/content/docs/llamaindex/modules/data/stores/vector_stores/qdrant.mdx
+++ b/apps/next/src/content/docs/llamaindex/modules/data/stores/vector_stores/qdrant.mdx
@@ -88,7 +88,7 @@ async function main() {
 
   const response = await queryEngine.query({
     query: "What did the author do in college?",
-  });
+  }); // Additional filters and params can be passed as options
 
   // Output response
   console.log(response.toString());
diff --git a/examples/storage/qdrantdb/README.md b/examples/storage/qdrantdb/README.md
index 1782d06885..bfc762fa00 100644
--- a/examples/storage/qdrantdb/README.md
+++ b/examples/storage/qdrantdb/README.md
@@ -5,7 +5,11 @@ How to run `examples/qdrantdb/preFilters.ts`:
 Add your OpenAI API Key into a file called `.env` in the parent folder of this directory. It should look like this:
 
 ```
-OPEN_API_KEY=sk-you-key
+OPENAI_API_KEY=sk-you-key
 ```
 
 Now, open a new terminal window and inside `examples`, run `npx tsx qdrantdb/preFilters.ts`.
+
+## Notes
+
+- You should have a Qdrant instance running locally.
diff --git a/examples/storage/qdrantdb/searchParams.ts b/examples/storage/qdrantdb/searchParams.ts
new file mode 100644
index 0000000000..b7c54a7274
--- /dev/null
+++ b/examples/storage/qdrantdb/searchParams.ts
@@ -0,0 +1,60 @@
+import { QdrantVectorStore } from "@llamaindex/qdrant";
+import * as dotenv from "dotenv";
+import {
+  Document,
+  MetadataMode,
+  NodeWithScore,
+  Settings,
+  VectorStoreIndex,
+  storageContextFromDefaults,
+} from "llamaindex";
+
+// Update callback manager
+Settings.callbackManager.on("retrieve-end", (event) => {
+  const { nodes } = event.detail;
+  console.log(
+    "The retrieved nodes are:",
+    nodes.map((node: NodeWithScore) => node.node.getContent(MetadataMode.NONE)),
+  );
+});
+
+dotenv.config();
+
+const collectionName = "dog_colors";
+const qdrantUrl = "http://127.0.0.1:6333";
+
+async function main() {
+  try {
+    const vectorStore = new QdrantVectorStore({
+      url: qdrantUrl,
+      collectionName,
+    });
+    const ctx = await storageContextFromDefaults({ vectorStore });
+
+    const docs = [
+      new Document({
+        text: "The dog is brown",
+      }),
+    ];
+
+    const index = await VectorStoreIndex.fromDocuments(docs, {
+      storageContext: ctx,
+    });
+
+    const queryEngine = index.asQueryEngine({
+      customParams: {
+        hnsw_ef: 10,
+        exact: true,
+        indexed_only: true,
+      },
+    });
+    const response = await queryEngine.query({
+      query: "What is the color of the dog?",
+    });
+    console.log(response.toString());
+  } catch (error) {
+    console.error(error);
+  }
+}
+
+void main();
diff --git a/packages/core/src/retriever/index.ts b/packages/core/src/retriever/index.ts
index 176a98c82d..a68d5a323e 100644
--- a/packages/core/src/retriever/index.ts
+++ b/packages/core/src/retriever/index.ts
@@ -8,6 +8,7 @@ import { BaseNode, IndexNode, type NodeWithScore, ObjectType } from "../schema";
 export type RetrieveParams = {
   query: MessageContent;
   preFilters?: unknown;
+  customParams?: unknown;
 };
 
 export type RetrieveStartEvent = {
diff --git a/packages/core/src/vector-store/index.ts b/packages/core/src/vector-store/index.ts
index c884c2d3b5..4dfaa625b2 100644
--- a/packages/core/src/vector-store/index.ts
+++ b/packages/core/src/vector-store/index.ts
@@ -83,7 +83,7 @@ export interface VectorStoreInfo {
   contentInfo: string;
 }
 
-export interface VectorStoreQuery {
+export interface VectorStoreQuery<T = unknown> {
   queryEmbedding?: number[];
   similarityTopK: number;
   docIds?: string[];
@@ -92,6 +92,7 @@ export interface VectorStoreQuery {
   alpha?: number;
   filters?: MetadataFilters | undefined;
   mmrThreshold?: number;
+  customParams?: T | undefined;
 }
 
 // Supported types of vector stores (for each modality)
@@ -103,7 +104,7 @@ export type VectorStoreBaseParams = {
   embeddingModel?: BaseEmbedding | undefined;
 };
 
-export abstract class BaseVectorStore<Client = unknown> {
+export abstract class BaseVectorStore<Client = unknown, T = unknown> {
   embedModel: BaseEmbedding;
   abstract storesText: boolean;
   isEmbeddingQuery?: boolean;
@@ -111,7 +112,7 @@ export abstract class BaseVectorStore<Client = unknown> {
   abstract add(embeddingResults: BaseNode[]): Promise<string[]>;
   abstract delete(refDocId: string, deleteOptions?: object): Promise<void>;
   abstract query(
-    query: VectorStoreQuery,
+    query: VectorStoreQuery<T>,
     options?: object,
   ): Promise<VectorStoreQueryResult>;
 
diff --git a/packages/llamaindex/src/indices/vectorStore/index.ts b/packages/llamaindex/src/indices/vectorStore/index.ts
index 47688bc1cf..42e56a6b77 100644
--- a/packages/llamaindex/src/indices/vectorStore/index.ts
+++ b/packages/llamaindex/src/indices/vectorStore/index.ts
@@ -65,6 +65,7 @@ export type VectorIndexChatEngineOptions = {
   retriever?: BaseRetriever;
   similarityTopK?: number;
   preFilters?: MetadataFilters;
+  customParams?: unknown;
 } & Omit<ContextChatEngineOptions, "retriever">;
 
 /**
@@ -285,6 +286,7 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> {
     retriever?: BaseRetriever;
     responseSynthesizer?: BaseSynthesizer;
     preFilters?: MetadataFilters;
+    customParams?: unknown;
     nodePostprocessors?: BaseNodePostprocessor[];
     similarityTopK?: number;
   }): RetrieverQueryEngine {
@@ -292,11 +294,17 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> {
       retriever,
       responseSynthesizer,
       preFilters,
+      customParams,
       nodePostprocessors,
       similarityTopK,
     } = options ?? {};
     return new RetrieverQueryEngine(
-      retriever ?? this.asRetriever({ similarityTopK, filters: preFilters }),
+      retriever ??
+        this.asRetriever({
+          similarityTopK,
+          filters: preFilters,
+          customParams: customParams ?? undefined,
+        }),
       responseSynthesizer,
       nodePostprocessors,
     );
@@ -312,11 +320,17 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> {
       retriever,
       similarityTopK,
       preFilters,
+      customParams,
       ...contextChatEngineOptions
     } = options;
     return new ContextChatEngine({
       retriever:
-        retriever ?? this.asRetriever({ similarityTopK, filters: preFilters }),
+        retriever ??
+        this.asRetriever({
+          similarityTopK,
+          filters: preFilters,
+          customParams: customParams ?? undefined,
+        }),
       ...contextChatEngineOptions,
     });
   }
@@ -407,6 +421,7 @@ export type VectorIndexRetrieverOptions = {
   index: VectorStoreIndex;
   filters?: MetadataFilters | undefined;
   mode?: VectorStoreQueryMode;
+  customParams?: unknown | undefined;
 } & (
   | {
       topK?: TopKMap | undefined;
@@ -422,7 +437,7 @@ export class VectorIndexRetriever extends BaseRetriever {
 
   filters?: MetadataFilters | undefined;
   queryMode?: VectorStoreQueryMode | undefined;
-
+  customParams?: unknown | undefined;
   constructor(options: VectorIndexRetrieverOptions) {
     super();
     this.index = options.index;
@@ -440,6 +455,7 @@ export class VectorIndexRetriever extends BaseRetriever {
       };
     }
     this.filters = options.filters;
+    this.customParams = options.customParams;
   }
 
   /**
@@ -468,6 +484,7 @@ export class VectorIndexRetriever extends BaseRetriever {
     type: ModalityType,
     vectorStore: BaseVectorStore,
     filters?: MetadataFilters,
+    customParams?: unknown,
   ): Promise<NodeWithScore[]> {
     // convert string message to multi-modal format
 
@@ -491,6 +508,7 @@ export class VectorIndexRetriever extends BaseRetriever {
           mode: this.queryMode ?? VectorStoreQueryMode.DEFAULT,
           similarityTopK: this.topK[type]!,
           filters: this.filters ?? filters ?? undefined,
+          customParams: this.customParams ?? customParams ?? undefined,
         });
         nodes = nodes.concat(this.buildNodeListFromQueryResult(result));
       }
diff --git a/packages/providers/storage/qdrant/src/QdrantVectorStore.ts b/packages/providers/storage/qdrant/src/QdrantVectorStore.ts
index 93e86ba2d7..b2a7eca763 100644
--- a/packages/providers/storage/qdrant/src/QdrantVectorStore.ts
+++ b/packages/providers/storage/qdrant/src/QdrantVectorStore.ts
@@ -18,6 +18,7 @@ import { QdrantClient } from "@qdrant/js-client-rest";
 
 type QdrantFilter = Schemas["Filter"];
 type QdrantMustConditions = QdrantFilter["must"];
+type QdrantSearchParams = Schemas["SearchParams"];
 
 type PointStruct = {
   id: string;
@@ -268,19 +269,24 @@ export class QdrantVectorStore extends BaseVectorStore {
   /**
    * Queries the vector store for the closest matching data to the query embeddings.
    * @param query The VectorStoreQuery to be used
-   * @param options Required by VectorStore interface.  Currently ignored.
+   * @param options Required by VectorStore interface.
    * @returns Zero or more Document instances with data from the vector store.
    */
   async query(
-    query: VectorStoreQuery,
+    query: VectorStoreQuery<QdrantSearchParams | undefined>,
     options?: object,
   ): Promise<VectorStoreQueryResult> {
     const qdrantFilters =
       options && "qdrant_filters" in options
         ? options.qdrant_filters
         : undefined;
+    const qdrantSearchParams =
+      options && "qdrant_search_params" in options
+        ? options.qdrant_search_params
+        : undefined;
 
     let queryFilters: QdrantFilter | undefined;
+    let searchParams: QdrantSearchParams | undefined;
 
     if (!query.queryEmbedding) {
       throw new Error("No query embedding provided");
@@ -292,10 +298,17 @@ export class QdrantVectorStore extends BaseVectorStore {
       queryFilters = buildQueryFilter(query);
     }
 
+    if (qdrantSearchParams) {
+      searchParams = qdrantSearchParams;
+    } else {
+      searchParams = buildSearchParams(query);
+    }
+
     const result = (await this.db.search(this.collectionName, {
       vector: query.queryEmbedding,
       limit: query.similarityTopK,
       ...(queryFilters && { filter: queryFilters }),
+      ...(searchParams && { params: searchParams }),
     })) as Array<QuerySearchResult>;
 
     return this.parseToQueryResult(result);
@@ -325,6 +338,18 @@ function buildQueryFilter(query: VectorStoreQuery): QdrantFilter | undefined {
   return { must: mustConditions };
 }
 
+function buildSearchParams(
+  query: VectorStoreQuery<QdrantSearchParams | undefined>,
+): QdrantSearchParams | undefined {
+  if (!query.docIds && !query.queryStr && !query.customParams) return undefined;
+
+  if (query.customParams) {
+    return query.customParams;
+  }
+
+  return undefined;
+}
+
 /**
  * Converts metadata filters to Qdrant-compatible filters
  * @param subFilters The metadata filters to be converted
diff --git a/packages/providers/storage/qdrant/tests/QdrantVectorStore.test.ts b/packages/providers/storage/qdrant/tests/QdrantVectorStore.test.ts
index 9b492c20ba..0ce92a346e 100644
--- a/packages/providers/storage/qdrant/tests/QdrantVectorStore.test.ts
+++ b/packages/providers/storage/qdrant/tests/QdrantVectorStore.test.ts
@@ -138,5 +138,35 @@ describe("QdrantVectorStore", () => {
         expect(searchResult.similarities).toEqual([0.1]);
       });
     });
+
+    describe("[QdrantVectorStore] search with params", () => {
+      it("should search in the vector store", async () => {
+        mockQdrantClient.search.mockResolvedValue([
+          {
+            id: "1",
+            score: 0.1,
+            version: 1,
+            payload: { _node_content: JSON.stringify({ text: "hello world" }) },
+          },
+        ]);
+
+        const searchResult = await store.query(
+          {
+            queryEmbedding: [0.1, 0.2],
+            similarityTopK: 1,
+            mode: VectorStoreQueryMode.DEFAULT,
+          },
+          {
+            customParams: {
+              hnsw_ef: 10,
+            },
+          },
+        );
+
+        expect(mockQdrantClient.search).toHaveBeenCalled();
+        expect(searchResult.ids).toEqual(["1"]);
+        expect(searchResult.similarities).toEqual([0.1]);
+      });
+    });
   });
 });


Reviews:
user: login: marcusschiesser
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-07T08:45:52Z
user: login: marcusschiesser
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-09T08:26:58Z

Review comments:
diff_hunk: @@ -72,6 +72,20 @@ export interface MetadataFilters {
   condition?: `${FilterCondition}`; // and, or
 }
 
+export interface SearchParams {
path: packages/core/src/vector-store/index.ts
user: login: marcusschiesser
body: move to qdrant provider (as it's qdrant specific)
created_at: 2025-05-07T08:36:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -92,6 +106,7 @@ export interface VectorStoreQuery {
   alpha?: number;
   filters?: MetadataFilters | undefined;
   mmrThreshold?: number;
+  qdrant_search_params?: SearchParams | undefined;
path: packages/core/src/vector-store/index.ts
user: login: marcusschiesser
body: as this is provider specific, this must be either unknown or a generic type, e.g.
```suggestion
  customParams?: T | undefined;
```
we're doing this already for ToolCallLLMs, see:
https://github.com/run-llama/LlamaIndexTS/blob/main/packages/providers/anthropic/src/llm.ts
created_at: 2025-05-07T08:45:50Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,6 +8,7 @@ import { BaseNode, IndexNode, type NodeWithScore, ObjectType } from "../schema";
 export type RetrieveParams = {
   query: MessageContent;
   preFilters?: unknown;
+  qdrant_search_params?: unknown;
path: packages/core/src/retriever/index.ts
user: login: marcusschiesser
body: should be also `customParams` 
created_at: 2025-05-09T08:20:25Z
author_association: CONTRIBUTOR
diff_hunk: @@ -39,6 +39,7 @@ import { storageContextFromDefaults } from "../../storage/StorageContext.js";
 import type {
   BaseVectorStore,
   MetadataFilters,
+  SearchParams,
path: packages/llamaindex/src/indices/vectorStore/index.ts
user: login: marcusschiesser
body: where is this defined?
created_at: 2025-05-09T08:25:39Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,6 +8,7 @@ import { BaseNode, IndexNode, type NodeWithScore, ObjectType } from "../schema";
 export type RetrieveParams = {
   query: MessageContent;
   preFilters?: unknown;
+  qdrant_search_params?: unknown;
path: packages/core/src/retriever/index.ts
user: login: marcusschiesser
body: or maybe `customSearch`?
created_at: 2025-05-09T08:26:56Z
author_association: CONTRIBUTOR

PR comments:
user: login: vercel[bot]
created_at: 2025-05-06T18:39:21Z
body: @anubhavrana is attempting to deploy a commit to the **LlamaIndex** Team on [Vercel](https://vercel.com).

A member of the Team first needs to [authorize it](https://vercel.com/git/authorize?team=LlamaIndex&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%225cb5741f07b3d764f219e539ace4b87a7231106a%22%7D%2C%22id%22%3A%22QmPfQAxtkSG5kHTepGz1VA2xaiwgjsdUndXTbJAbQJirAQ%22%2C%22org%22%3A%22run-llama%22%2C%22prId%22%3A1911%2C%22repo%22%3A%22LlamaIndexTS%22%7D).


author_association: NONE
user: login: changeset-bot[bot]
created_at: 2025-05-06T18:39:21Z
body: ###  🦋  Changeset detected

Latest commit: f0e7bd9edc74a5c1cb5df75ef4668ade6655cdb0

**The changes in this PR will be included in the next version bump.**



Not sure what this means? [Click here  to learn what changesets are](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).

[Click here if you're a maintainer who wants to add another changeset to this PR](https://github.com/anubhavrana/LlamaIndexTS/new/feature/qdrant-search-params?filename=.changeset/thirty-geese-report.md&value=---%0A%22%40fake-scope%2Ffake-pkg%22%3A%20patch%0A---%0A%0Afeat%3A%20qdrant%20search%20params%0A)


author_association: NONE
user: login: pkg-pr-new[bot]
created_at: 2025-05-10T03:59:32Z
body: 
[Open in StackBlitz](https://pkg.pr.new/template/b9390b27-f4ba-46e9-bb72-7fe5043d4730)


<details><summary><b>@llamaindex/autotool</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/autotool@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/cloud</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/cloud@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/core</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/core@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/env</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/env@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/experimental</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/experimental@1911
```

</p></details>
      
    

<details><summary><b>llamaindex</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/llamaindex@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/node-parser</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/node-parser@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/readers</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/readers@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/tools</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/tools@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/wasm-tools</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/wasm-tools@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/workflow</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/workflow@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/anthropic</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/anthropic@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/assemblyai</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/assemblyai@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/aws</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/aws@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/clip</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/clip@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/cohere</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/cohere@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/deepinfra</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/deepinfra@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/deepseek</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/deepseek@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/discord</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/discord@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/fireworks</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/fireworks@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/google</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/google@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/groq</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/groq@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/huggingface</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/huggingface@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/jinaai</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/jinaai@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/mistral</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/mistral@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/mixedbread</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/mixedbread@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/notion</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/notion@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/ollama</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/ollama@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/openai</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/openai@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/perplexity</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/perplexity@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/portkey-ai</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/portkey-ai@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/replicate</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/replicate@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/together</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/together@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/vercel</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/vercel@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/vllm</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/vllm@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/voyage-ai</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/voyage-ai@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/astra</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/astra@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/azure</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/azure@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/chroma</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/chroma@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/elastic-search</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/elastic-search@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/firestore</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/firestore@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/milvus</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/milvus@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/mongodb</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/mongodb@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/pinecone</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/pinecone@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/postgres</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/postgres@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/qdrant</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/qdrant@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/supabase</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/supabase@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/upstash</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/upstash@1911
```

</p></details>
      
    

<details><summary><b>@llamaindex/weaviate</b></summary><p>

```
npm i https://pkg.pr.new/run-llama/LlamaIndexTS/@llamaindex/weaviate@1911
```

</p></details>
      
    

_commit: <a href="https://github.com/run-llama/LlamaIndexTS/runs/42101130065"><code>f0e7bd9</code></a>_

author_association: NONE
user: login: marcusschiesser
created_at: 2025-05-12T04:06:26Z
body: @anubhavrana please update branch and check failing tests
author_association: CONTRIBUTOR
user: login: anubhavrana
created_at: 2025-05-12T21:52:05Z
body: > @anubhavrana please update branch and check failing tests

Branch updated and I did push a commit to fix the failing tests. When you have a minute if you could re trigger the actions/checks that'd be great!
author_association: CONTRIBUTOR
user: login: marcusschiesser
created_at: 2025-05-13T02:50:38Z
body: thanks @anubhavrana 
author_association: CONTRIBUTOR