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; }