UNPKG

mastra-browser-rag

Version:

The Retrieval-Augmented Generation (RAG) module contains document processing and embedding utilities.

49 lines (44 loc) 1.17 kB
import type { MastraVector, QueryResult } from '@mastra/core/vector'; import type { VectorFilter } from '@mastra/core/vector/filter'; import { embed } from 'ai'; import type { EmbeddingModel } from 'ai'; interface VectorQuerySearchParams { indexName: string; vectorStore: MastraVector; queryText: string; model: EmbeddingModel<string>; queryFilter?: VectorFilter; topK: number; includeVectors?: boolean; maxRetries?: number; } interface VectorQuerySearchResult { results: QueryResult[]; queryEmbedding: number[]; } // Helper function to handle vector query search export const vectorQuerySearch = async ({ indexName, vectorStore, queryText, model, queryFilter, topK, includeVectors = false, maxRetries = 2, }: VectorQuerySearchParams): Promise<VectorQuerySearchResult> => { const { embedding } = await embed({ value: queryText, model, maxRetries, }); // Get relevant chunks from the vector database const results = await vectorStore.query({ indexName, queryVector: embedding, topK, filter: queryFilter, includeVector: includeVectors, }); return { results, queryEmbedding: embedding }; };