@vectorstores/core
v0.1.6
Published
vectorstores Core Module
Downloads
1,355
Readme
Context engineering made easy: Vectorstores provides a unified interface for connecting data to your AI application. It supports ingestion of data from various sources, loading it into vector databases and querying it later on.
Lightweight: Only 77.5kb (gzip) - vectorstores is designed to be minimal and focused.
It plays nicely with existing AI frameworks like Vercel AI SDK, see the Vercel integration guide for more details.
It's based on a fork of LLamaIndexTS, so you can use it as a drop-in replacement for LLamaIndexTS in your existing projects. Compared to LamaIndexTS, vectorstores is more lightweight as it just focuses on vector databases and provides a unified interface for working with them.
Compatibility
Multiple JS Environment Support
vectorstores supports multiple JS environments, including:
- Node.js >= 20 ✅
- Deno ✅
- Bun ✅
- Nitro ✅
- Vercel Edge Runtime ✅ (with some limitations)
- Cloudflare Workers ✅ (with some limitations)
Getting started
npm install @vectorstores/coreSetup in Node.js, Deno, Bun, TypeScript...?
See the docs: Installation
Your first (minimal) retrieval example
npm init -y
npm install @vectorstores/core openai
npm install -D typescript tsx @types/node
export OPENAI_API_KEY=your-api-key-hereimport { Document, Settings, VectorStoreIndex } from "@vectorstores/core";
import { OpenAI } from "openai";
const openai = new OpenAI();
Settings.embedFunc = async (input) => {
const { data } = await openai.embeddings.create({
model: "text-embedding-3-small",
input,
});
return data.map((d) => d.embedding);
};
const document = new Document({ text: "Machine learning is..." });
const index = await VectorStoreIndex.fromDocuments([document]);
const retriever = index.asRetriever();
const results = await retriever.retrieve({
query: "What is machine learning?",
});
console.log(results[0]?.node.text);Adding provider packages
In most cases, you'll also need to install provider packages to use vectorstores. These are for adding file readers for ingestion or for storing documents in vector databases.
For example, to use the Weaviate vector database, you would install the following package:
npm install @vectorstores/weaviateExamples (local + StackBlitz)
- Run locally: Examples
- Try in your browser: StackBlitz
Contributing
Please see our contributing guide for more information.
