ExamplesRAGInsert Embedding in Upstash

Insert Embedding in Upstash

After generating embeddings, you need to store them in a vector database for similarity search. The UpstashVector class provides methods to create collections and insert embeddings into Upstash Vector, a serverless vector database. This example shows how to store embeddings in Upstash for later retrieval.

import { openai } from "@ai-sdk/openai";
import { UpstashVector } from '@mastra/upstash';
import { MDocument } from '@mastra/rag';
import { embedMany } from 'ai';
 
const doc = MDocument.fromText('Your text content...');
 
const chunks = await doc.chunk();
 
const { embeddings } = await embedMany({
  values: chunks.map(chunk => chunk.text),
  model: openai.embedding('text-embedding-3-small'),
});
 
const upstash = new UpstashVector({
  url: process.env.UPSTASH_URL,
  token: process.env.UPSTASH_TOKEN,
});
 
await upstash.createIndex('test_collection', 1536);
 
await upstash.upsert(
  'test_collection',
  embeddings,
  chunks?.map(chunk => ({ text: chunk.text })),
);