From 64571002f5b219cb2b9f66d40e2b24fd65232b0c Mon Sep 17 00:00:00 2001
From: Mrinank Bhowmick <77621953+Mrinank-Bhowmick@users.noreply.github.com>
Date: Thu, 9 Oct 2025 23:39:20 +0530
Subject: [PATCH] fixed hardcoded embeddingDims (#3537)
---
.../embedders/models/azure_openai.mdx | 13 ++++++-
.../components/embedders/models/google_AI.mdx | 34 ++++++++++++-------
docs/components/embedders/models/ollama.mdx | 1 +
.../embedders/models/azure_openai.mdx | 15 ++++++--
.../components/embedders/models/google_AI.mdx | 33 ++++++++++++------
.../components/embedders/models/ollama.mdx | 1 +
mem0-ts/src/oss/src/embeddings/azure.ts | 2 ++
mem0-ts/src/oss/src/embeddings/google.ts | 10 ++++--
mem0-ts/src/oss/src/embeddings/ollama.ts | 2 ++
mem0-ts/src/oss/src/embeddings/openai.ts | 2 ++
mem0-ts/src/oss/src/types/index.ts | 1 +
11 files changed, 85 insertions(+), 29 deletions(-)
diff --git a/docs/components/embedders/models/azure_openai.mdx b/docs/components/embedders/models/azure_openai.mdx
index 1cd06a32c..f8f647cfc 100644
--- a/docs/components/embedders/models/azure_openai.mdx
+++ b/docs/components/embedders/models/azure_openai.mdx
@@ -117,9 +117,20 @@ Refer to [Azure Identity troubleshooting tips](https://github.com/Azure/azure-sd
### Config
Here are the parameters available for configuring Azure OpenAI embedder:
-
+
+
| Parameter | Description | Default Value |
| --- | --- | --- |
| `model` | The name of the embedding model to use | `text-embedding-3-small` |
| `embedding_dims` | Dimensions of the embedding model | `1536` |
| `azure_kwargs` | The Azure OpenAI configs | `config_keys` |
+
+
+| Parameter | Description | Default Value |
+| ----------------- | --------------------------------------------- | -------------------------- |
+| `model` | The name of the embedding model to use | `text-embedding-3-small` |
+| `embeddingDims` | Dimensions of the embedding model | `1536` |
+| `apiKey` | Azure OpenAI API key | `None` |
+| `modelProperties` | Object containing endpoint and other settings | `{ endpoint: "",...rest }`|
+
+
diff --git a/docs/components/embedders/models/google_AI.mdx b/docs/components/embedders/models/google_AI.mdx
index 7bdb46be5..bb27ad482 100644
--- a/docs/components/embedders/models/google_AI.mdx
+++ b/docs/components/embedders/models/google_AI.mdx
@@ -38,13 +38,13 @@ import { Memory } from 'mem0ai/oss';
const config = {
embedder: {
- provider: 'google',
- config: {
- apiKey: process.env.GOOGLE_API_KEY || '',
- model: 'text-embedding-004',
- // The output dimensionality is fixed at 768 for Google AI embeddings
+ provider: "google",
+ config: {
+ apiKey: process.env["GOOGLE_API_KEY"],
+ model: "gemini-embedding-001",
+ embeddingDims: 1536,
+ },
},
- },
};
const memory = new Memory(config);
@@ -61,9 +61,19 @@ await memory.add(messages, { userId: "john" });
### Config
Here are the parameters available for configuring Gemini embedder:
-
-| Parameter | Description | Default Value |
-| --- | --- | --- |
-| `model` | The name of the embedding model to use | `models/text-embedding-004` |
-| `embedding_dims` | Dimensions of the embedding model (output_dimensionality will be considered as embedding_dims, so please set embedding_dims accordingly) | `768` |
-| `api_key` | The Google API key | `None` |
+
+
+| Parameter | Description | Default Value |
+| ---------------- | ------------------------------------ | ----------------------- |
+| `model` | The name of the embedding model to use| `models/text-embedding-004` |
+| `embedding_dims` | Dimensions of the embedding model | `1536` |
+| `api_key` | The Google API key | `None` |
+
+
+| Parameter | Description | Default Value |
+| ----------------- | --------------------------------------------- | -------------------------- |
+| `model` | The name of the embedding model to use | `gemini-embedding-001` |
+| `embeddingDims` | Dimensions of the embedding model | `1536` |
+| `apiKey` | Google API key | `None` |
+
+
diff --git a/docs/components/embedders/models/ollama.mdx b/docs/components/embedders/models/ollama.mdx
index 5b3752a81..fc763f179 100644
--- a/docs/components/embedders/models/ollama.mdx
+++ b/docs/components/embedders/models/ollama.mdx
@@ -69,5 +69,6 @@ Here are the parameters available for configuring Ollama embedder:
| --- | --- | --- |
| `model` | The name of the Ollama model to use | `nomic-embed-text:latest` |
| `url` | Base URL for Ollama server | `http://localhost:11434` |
+| `embeddingDims` | Dimensions of the embedding model | 768
\ No newline at end of file
diff --git a/docs/v0x/components/embedders/models/azure_openai.mdx b/docs/v0x/components/embedders/models/azure_openai.mdx
index a095288fa..a5e800092 100644
--- a/docs/v0x/components/embedders/models/azure_openai.mdx
+++ b/docs/v0x/components/embedders/models/azure_openai.mdx
@@ -23,7 +23,7 @@ config = {
"embedder": {
"provider": "azure_openai",
"config": {
- "model": "text-embedding-3-large"
+ "model": "text-embedding-3-large",
"azure_kwargs": {
"api_version": "",
"azure_deployment": "",
@@ -117,9 +117,20 @@ Refer to [Azure Identity troubleshooting tips](https://github.com/Azure/azure-sd
### Config
Here are the parameters available for configuring Azure OpenAI embedder:
-
+
+
| Parameter | Description | Default Value |
| --- | --- | --- |
| `model` | The name of the embedding model to use | `text-embedding-3-small` |
| `embedding_dims` | Dimensions of the embedding model | `1536` |
| `azure_kwargs` | The Azure OpenAI configs | `config_keys` |
+
+
+| Parameter | Description | Default Value |
+| ----------------- | --------------------------------------------- | -------------------------- |
+| `model` | The name of the embedding model to use | `text-embedding-3-small` |
+| `embeddingDims` | Dimensions of the embedding model | `1536` |
+| `apiKey` | Azure OpenAI API key | `None` |
+| `modelProperties` | Object containing endpoint and other settings | `{ endpoint: "",...rest }`|
+
+
diff --git a/docs/v0x/components/embedders/models/google_AI.mdx b/docs/v0x/components/embedders/models/google_AI.mdx
index 9efd41b2e..616335929 100644
--- a/docs/v0x/components/embedders/models/google_AI.mdx
+++ b/docs/v0x/components/embedders/models/google_AI.mdx
@@ -38,13 +38,13 @@ import { Memory } from 'mem0ai/oss';
const config = {
embedder: {
- provider: 'google',
- config: {
- apiKey: process.env.GOOGLE_API_KEY || '',
- model: 'text-embedding-004',
- // The output dimensionality is fixed at 768 for Google AI embeddings
+ provider: "google",
+ config: {
+ apiKey: process.env["GOOGLE_API_KEY"],
+ model: "gemini-embedding-001",
+ embeddingDims: 1536,
+ },
},
- },
};
const memory = new Memory(config);
@@ -62,8 +62,19 @@ await memory.add(messages, { userId: "john" });
Here are the parameters available for configuring Gemini embedder:
-| Parameter | Description | Default Value |
-| --- | --- | --- |
-| `model` | The name of the embedding model to use | `models/text-embedding-004` |
-| `embedding_dims` | Dimensions of the embedding model (output_dimensionality will be considered as embedding_dims, so please set embedding_dims accordingly) | `768` |
-| `api_key` | The Google API key | `None` |
+
+
+| Parameter | Description | Default Value |
+| ---------------- | ------------------------------------ | ----------------------- |
+| `model` | The name of the embedding model to use| `models/text-embedding-004` |
+| `embedding_dims` | Dimensions of the embedding model | `1536` |
+| `api_key` | The Google API key | `None` |
+
+
+| Parameter | Description | Default Value |
+| ----------------- | --------------------------------------------- | -------------------------- |
+| `model` | The name of the embedding model to use | `gemini-embedding-001` |
+| `embeddingDims` | Dimensions of the embedding model | `1536` |
+| `apiKey` | Google API key | `None` |
+
+
diff --git a/docs/v0x/components/embedders/models/ollama.mdx b/docs/v0x/components/embedders/models/ollama.mdx
index 4e1a4d331..8075122ce 100644
--- a/docs/v0x/components/embedders/models/ollama.mdx
+++ b/docs/v0x/components/embedders/models/ollama.mdx
@@ -69,5 +69,6 @@ Here are the parameters available for configuring Ollama embedder:
| --- | --- | --- |
| `model` | The name of the Ollama model to use | `nomic-embed-text:latest` |
| `url` | Base URL for Ollama server | `http://localhost:11434` |
+| `embeddingDims` | Dimensions of the embedding model | 768 |
\ No newline at end of file
diff --git a/mem0-ts/src/oss/src/embeddings/azure.ts b/mem0-ts/src/oss/src/embeddings/azure.ts
index b153fa6e4..41bdc41d8 100644
--- a/mem0-ts/src/oss/src/embeddings/azure.ts
+++ b/mem0-ts/src/oss/src/embeddings/azure.ts
@@ -5,6 +5,7 @@ import { EmbeddingConfig } from "../types";
export class AzureOpenAIEmbedder implements Embedder {
private client: AzureOpenAI;
private model: string;
+ private embeddingDims?: number;
constructor(config: EmbeddingConfig) {
if (!config.apiKey || !config.modelProperties?.endpoint) {
@@ -19,6 +20,7 @@ export class AzureOpenAIEmbedder implements Embedder {
...rest,
});
this.model = config.model || "text-embedding-3-small";
+ this.embeddingDims = config.embeddingDims || 1536;
}
async embed(text: string): Promise {
diff --git a/mem0-ts/src/oss/src/embeddings/google.ts b/mem0-ts/src/oss/src/embeddings/google.ts
index e75da639f..6dcce6d97 100644
--- a/mem0-ts/src/oss/src/embeddings/google.ts
+++ b/mem0-ts/src/oss/src/embeddings/google.ts
@@ -5,17 +5,21 @@ import { EmbeddingConfig } from "../types";
export class GoogleEmbedder implements Embedder {
private google: GoogleGenAI;
private model: string;
+ private embeddingDims?: number;
constructor(config: EmbeddingConfig) {
- this.google = new GoogleGenAI({ apiKey: config.apiKey });
- this.model = config.model || "text-embedding-004";
+ this.google = new GoogleGenAI({
+ apiKey: config.apiKey || process.env.GOOGLE_API_KEY,
+ });
+ this.model = config.model || "gemini-embedding-001";
+ this.embeddingDims = config.embeddingDims || 1536;
}
async embed(text: string): Promise {
const response = await this.google.models.embedContent({
model: this.model,
contents: text,
- config: { outputDimensionality: 768 },
+ config: { outputDimensionality: this.embeddingDims },
});
return response.embeddings![0].values!;
}
diff --git a/mem0-ts/src/oss/src/embeddings/ollama.ts b/mem0-ts/src/oss/src/embeddings/ollama.ts
index a738bd965..41dea7bcf 100644
--- a/mem0-ts/src/oss/src/embeddings/ollama.ts
+++ b/mem0-ts/src/oss/src/embeddings/ollama.ts
@@ -6,6 +6,7 @@ import { logger } from "../utils/logger";
export class OllamaEmbedder implements Embedder {
private ollama: Ollama;
private model: string;
+ private embeddingDims?: number;
// Using this variable to avoid calling the Ollama server multiple times
private initialized: boolean = false;
@@ -14,6 +15,7 @@ export class OllamaEmbedder implements Embedder {
host: config.url || "http://localhost:11434",
});
this.model = config.model || "nomic-embed-text:latest";
+ this.embeddingDims = config.embeddingDims || 768;
this.ensureModelExists().catch((err) => {
logger.error(`Error ensuring model exists: ${err}`);
});
diff --git a/mem0-ts/src/oss/src/embeddings/openai.ts b/mem0-ts/src/oss/src/embeddings/openai.ts
index 4e235b3ae..154172116 100644
--- a/mem0-ts/src/oss/src/embeddings/openai.ts
+++ b/mem0-ts/src/oss/src/embeddings/openai.ts
@@ -5,10 +5,12 @@ import { EmbeddingConfig } from "../types";
export class OpenAIEmbedder implements Embedder {
private openai: OpenAI;
private model: string;
+ private embeddingDims?: number;
constructor(config: EmbeddingConfig) {
this.openai = new OpenAI({ apiKey: config.apiKey });
this.model = config.model || "text-embedding-3-small";
+ this.embeddingDims = config.embeddingDims || 1536;
}
async embed(text: string): Promise {
diff --git a/mem0-ts/src/oss/src/types/index.ts b/mem0-ts/src/oss/src/types/index.ts
index dbc0fa123..5a59ac2ed 100644
--- a/mem0-ts/src/oss/src/types/index.ts
+++ b/mem0-ts/src/oss/src/types/index.ts
@@ -16,6 +16,7 @@ export interface EmbeddingConfig {
apiKey?: string;
model?: string | any;
url?: string;
+ embeddingDims?: number;
modelProperties?: Record;
}