Nirmos
TypeScript SDKGateway

Embeddings

Generate normalized vector embeddings through Nirmos Gateway.

Use nirmos.gateway.embeddings.create with one string or a batch of strings.

const response = await nirmos.gateway.embeddings.create({
  model: "openai/text-embedding-3-small",
  input: [
    "Nirmos provides model routing.",
    "Managed prompts can change without redeployment.",
  ],
});

for (const embedding of response.embeddings) {
  console.log(embedding.index, embedding.values?.length);
}

Dimensions

Models that support reduced dimensions accept dimensions:

const response = await nirmos.gateway.embeddings.create({
  model: "openai/text-embedding-3-large",
  input: "Vectorize this text",
  dimensions: 1024,
});

Check model capabilities before setting a custom dimension.

Base64 encoding

const response = await nirmos.gateway.embeddings.create({
  model: "openai/text-embedding-3-small",
  input: "Compact transport",
  encoding: "base64",
});

console.log(response.embeddings[0]?.base64);

An embedding contains either values or base64.

Response and usage

type EmbeddingResponse = {
  model: string;
  embeddings: Array<
    { index: number; values: number[] } | { index: number; base64: string }
  >;
  usage: {
    inputTokens: number;
    outputTokens: number;
    totalTokens: number;
  };
  metadata: RequestMetadata;
};

Use batching when the selected model and application latency budget allow it. Preserve each index when mapping vectors back to source inputs.

On this page