In-memory vector store implementation.

Uses cosine similarity for vector search and stores all documents in memory. Suitable for development, testing, and small-scale applications.

For production use with large datasets, consider using persistent vector stores like Pinecone, Weaviate, or Chroma.

const store = new InMemoryVectorStore(llmProvider, 'text-embedding-3-small');

await store.add([
{ id: '1', content: 'AI agents are autonomous entities' },
{ id: '2', content: 'Machine learning powers modern AI' }
]);

const results = await store.search({
query: 'What are AI agents?',
limit: 3
});

Implements

  • VectorStore

Constructors

Methods

  • Add documents to the vector store

    Parameters

    • documents: Document[]

      Documents to add (embeddings will be generated if not provided)

    Returns Promise<number>

    Number of documents added

  • Search for similar documents

    Parameters

    • query: VectorSearchQuery

      Search query

    Returns Promise<VectorSearchResult[]>

    Matching documents with similarity scores

  • Get a document by ID

    Parameters

    • id: string

      Document ID

    Returns Promise<null | Document>

    The document or null if not found

  • Update a document

    Parameters

    • id: string

      Document ID

    • document: Partial<Document>

      Updated document

    Returns Promise<boolean>

    true if updated, false if not found

  • Delete a document

    Parameters

    • id: string

      Document ID

    Returns Promise<boolean>

    true if deleted, false if not found

  • Delete multiple documents matching a filter

    Parameters

    • filter: MetadataFilter

      Metadata filter

    Returns Promise<number>

    Number of documents deleted

  • List all documents (optionally filtered)

    Parameters

    • Optionalfilter: MetadataFilter

      Optional metadata filter

    Returns Promise<Document[]>

    All matching documents