Skip to main content
Embedding providers convert text into high-dimensional vectors for semantic search. RadarOS provides a unified EmbeddingProvider interface with OpenAI and Google implementations.

EmbeddingProvider Interface

interface EmbeddingProvider {
  embed(text: string): Promise<number[]>;
  embedBatch(texts: string[]): Promise<number[][]>;
}

OpenAI Embeddings

npm install openai
import { OpenAIEmbedding } from "@radaros/core";

const embedder = new OpenAIEmbedding({
  apiKey: process.env.OPENAI_API_KEY,  // optional, uses env var by default
  model: "text-embedding-3-small",      // optional, this is the default
});

const vector = await embedder.embed("Hello world");
console.log(vector.length); // 1536

const vectors = await embedder.embedBatch(["Hello", "World"]);
console.log(vectors.length); // 2

Available Models

ModelDimensionsBest For
text-embedding-3-small1536General use, cost-effective
text-embedding-3-large3072Higher accuracy
text-embedding-ada-0021536Legacy
apiKey
string
OpenAI API key. Falls back to OPENAI_API_KEY env var.
model
string
default:"text-embedding-3-small"
Embedding model name.

Google Embeddings

npm install @google/genai
import { GoogleEmbedding } from "@radaros/core";

const embedder = new GoogleEmbedding({
  apiKey: process.env.GOOGLE_API_KEY,  // optional, uses env var by default
  model: "text-embedding-004",         // optional, this is the default
});

const vector = await embedder.embed("Hello world");
const vectors = await embedder.embedBatch(["Hello", "World"]);

Available Models

ModelDimensionsBest For
text-embedding-004768General use
embedding-001768Legacy
apiKey
string
Google API key. Falls back to GOOGLE_API_KEY env var.
model
string
default:"text-embedding-004"
Embedding model name.

Using with KnowledgeBase

Embedding providers are passed to KnowledgeBase via the vector store. Most vector stores accept an EmbeddingProvider in their configuration or the KnowledgeBase handles embedding internally.
import { KnowledgeBase, InMemoryVectorStore, OpenAIEmbedding } from "@radaros/core";

const embedder = new OpenAIEmbedding();
const vectorStore = new InMemoryVectorStore(1536);

const kb = new KnowledgeBase({
  name: "docs",
  vectorStore,
});

RAG Example

See a complete end-to-end RAG implementation using embeddings.