Embeddings
Generate OpenAI-compatible text embeddings through the Nirmos gateway.
Use one string or a batch of strings. The model must advertise the embedding capability.
const response = await nirmos.gateway.embeddings.create({
model: "openai/text-embedding-3-large",
input: [
"Nirmos provides model routing.",
"Managed prompts are versioned.",
],
});
for (const embedding of response.embeddings) {
console.log(embedding.index, embedding.values?.length);
}const response = await client.embeddings.create({
model: "openai/text-embedding-3-large",
input: [
"Nirmos provides model routing.",
"Managed prompts are versioned.",
],
});
for (const embedding of response.data) {
console.log(embedding.index, embedding.embedding.length);
}Dimensions and encoding
const response = await nirmos.gateway.embeddings.create({
model: "openai/text-embedding-3-large",
input: "Vectorize this text",
dimensions: 1024,
encoding: "float",
});const response = await client.embeddings.create({
model: "openai/text-embedding-3-large",
input: "Vectorize this text",
dimensions: 1024,
encoding_format: "float",
});Only set custom dimensions when the selected provider model supports them. encoding: "base64" maps to OpenAI's encoding_format: "base64" and produces embedding.base64 in the normalized Nirmos response.
Nirmos response
type EmbeddingResponse = {
model: string;
embeddings: Array<
| { index: number; values: number[] }
| { index: number; base64: string }
>;
usage: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
};
metadata: RequestMetadata;
};Preserve each index when mapping a batch response back to its source strings.