mem0ai 2.4.4 → 2.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -484,7 +484,7 @@ interface Embedder {
484
484
  declare class OpenAIEmbedder implements Embedder {
485
485
  private openai;
486
486
  private model;
487
- private embeddingDims?;
487
+ private embeddingDims;
488
488
  constructor(config: EmbeddingConfig);
489
489
  embed(text: string): Promise<number[]>;
490
490
  embedBatch(texts: string[]): Promise<number[][]>;
@@ -513,7 +513,7 @@ declare class LMStudioEmbedder implements Embedder {
513
513
  declare class GoogleEmbedder implements Embedder {
514
514
  private google;
515
515
  private model;
516
- private embeddingDims?;
516
+ private embeddingDims;
517
517
  constructor(config: EmbeddingConfig);
518
518
  embed(text: string): Promise<number[]>;
519
519
  embedBatch(texts: string[]): Promise<number[][]>;
@@ -522,7 +522,7 @@ declare class GoogleEmbedder implements Embedder {
522
522
  declare class AzureOpenAIEmbedder implements Embedder {
523
523
  private client;
524
524
  private model;
525
- private embeddingDims?;
525
+ private embeddingDims;
526
526
  constructor(config: EmbeddingConfig);
527
527
  embed(text: string): Promise<number[]>;
528
528
  embedBatch(texts: string[]): Promise<number[][]>;
@@ -484,7 +484,7 @@ interface Embedder {
484
484
  declare class OpenAIEmbedder implements Embedder {
485
485
  private openai;
486
486
  private model;
487
- private embeddingDims?;
487
+ private embeddingDims;
488
488
  constructor(config: EmbeddingConfig);
489
489
  embed(text: string): Promise<number[]>;
490
490
  embedBatch(texts: string[]): Promise<number[][]>;
@@ -513,7 +513,7 @@ declare class LMStudioEmbedder implements Embedder {
513
513
  declare class GoogleEmbedder implements Embedder {
514
514
  private google;
515
515
  private model;
516
- private embeddingDims?;
516
+ private embeddingDims;
517
517
  constructor(config: EmbeddingConfig);
518
518
  embed(text: string): Promise<number[]>;
519
519
  embedBatch(texts: string[]): Promise<number[][]>;
@@ -522,7 +522,7 @@ declare class GoogleEmbedder implements Embedder {
522
522
  declare class AzureOpenAIEmbedder implements Embedder {
523
523
  private client;
524
524
  private model;
525
- private embeddingDims?;
525
+ private embeddingDims;
526
526
  constructor(config: EmbeddingConfig);
527
527
  embed(text: string): Promise<number[]>;
528
528
  embedBatch(texts: string[]): Promise<number[][]>;
package/dist/oss/index.js CHANGED
@@ -132,19 +132,25 @@ var OpenAIEmbedder = class {
132
132
  baseURL: config.baseURL || config.url
133
133
  });
134
134
  this.model = config.model || "text-embedding-3-small";
135
- this.embeddingDims = config.embeddingDims || 1536;
135
+ this.embeddingDims = config.embeddingDims;
136
136
  }
137
137
  async embed(text) {
138
138
  const response = await this.openai.embeddings.create({
139
139
  model: this.model,
140
- input: text
140
+ input: text,
141
+ ...this.embeddingDims !== void 0 && {
142
+ dimensions: this.embeddingDims
143
+ }
141
144
  });
142
145
  return response.data[0].embedding;
143
146
  }
144
147
  async embedBatch(texts) {
145
148
  const response = await this.openai.embeddings.create({
146
149
  model: this.model,
147
- input: texts
150
+ input: texts,
151
+ ...this.embeddingDims !== void 0 && {
152
+ dimensions: this.embeddingDims
153
+ }
148
154
  });
149
155
  return response.data.map((item) => item.embedding);
150
156
  }
@@ -2074,7 +2080,7 @@ See the SQL migration instructions in the code comments.`
2074
2080
  }
2075
2081
  async get(vectorId) {
2076
2082
  try {
2077
- const { data, error } = await this.client.from(this.tableName).select("*").eq("id", vectorId).single();
2083
+ const { data, error } = await this.client.from(this.tableName).select("*").eq("id", vectorId).maybeSingle();
2078
2084
  if (error) throw error;
2079
2085
  if (!data) return null;
2080
2086
  return {
@@ -2334,13 +2340,15 @@ var GoogleEmbedder = class {
2334
2340
  apiKey: config.apiKey || process.env.GOOGLE_API_KEY
2335
2341
  });
2336
2342
  this.model = config.model || "gemini-embedding-001";
2337
- this.embeddingDims = config.embeddingDims || 1536;
2343
+ this.embeddingDims = config.embeddingDims;
2338
2344
  }
2339
2345
  async embed(text) {
2340
2346
  const response = await this.google.models.embedContent({
2341
2347
  model: this.model,
2342
2348
  contents: text,
2343
- config: { outputDimensionality: this.embeddingDims }
2349
+ ...this.embeddingDims !== void 0 && {
2350
+ config: { outputDimensionality: this.embeddingDims }
2351
+ }
2344
2352
  });
2345
2353
  return response.embeddings[0].values;
2346
2354
  }
@@ -2348,7 +2356,9 @@ var GoogleEmbedder = class {
2348
2356
  const response = await this.google.models.embedContent({
2349
2357
  model: this.model,
2350
2358
  contents: texts,
2351
- config: { outputDimensionality: this.embeddingDims }
2359
+ ...this.embeddingDims !== void 0 && {
2360
+ config: { outputDimensionality: this.embeddingDims }
2361
+ }
2352
2362
  });
2353
2363
  return response.embeddings.map((item) => item.values);
2354
2364
  }
@@ -2490,19 +2500,25 @@ var AzureOpenAIEmbedder = class {
2490
2500
  ...rest
2491
2501
  });
2492
2502
  this.model = config.model || "text-embedding-3-small";
2493
- this.embeddingDims = config.embeddingDims || 1536;
2503
+ this.embeddingDims = config.embeddingDims;
2494
2504
  }
2495
2505
  async embed(text) {
2496
2506
  const response = await this.client.embeddings.create({
2497
2507
  model: this.model,
2498
- input: text
2508
+ input: text,
2509
+ ...this.embeddingDims !== void 0 && {
2510
+ dimensions: this.embeddingDims
2511
+ }
2499
2512
  });
2500
2513
  return response.data[0].embedding;
2501
2514
  }
2502
2515
  async embedBatch(texts) {
2503
2516
  const response = await this.client.embeddings.create({
2504
2517
  model: this.model,
2505
- input: texts
2518
+ input: texts,
2519
+ ...this.embeddingDims !== void 0 && {
2520
+ dimensions: this.embeddingDims
2521
+ }
2506
2522
  });
2507
2523
  return response.data.map((item) => item.embedding);
2508
2524
  }
@@ -2764,7 +2780,23 @@ function getUpdateMemoryMessages(retrievedOldMemory, newRetrievedFacts) {
2764
2780
  Do not return anything except the JSON format.`;
2765
2781
  }
2766
2782
  function removeCodeBlocks(text) {
2767
- return text.replace(/```(?:\w+)?\n?([\s\S]*?)(?:```|$)/g, "$1").trim();
2783
+ const stripped = text.replace(/```(?:\w+)?\n?([\s\S]*?)(?:```|$)/g, "$1").trim();
2784
+ return stripped.replace(/<think>[\s\S]*?<\/think>/g, "").trim();
2785
+ }
2786
+ function extractJson(text) {
2787
+ const cleaned = removeCodeBlocks(text);
2788
+ const trimmed = cleaned.trim();
2789
+ const firstBrace = trimmed.indexOf("{");
2790
+ const lastBrace = trimmed.lastIndexOf("}");
2791
+ if (firstBrace !== -1 && lastBrace > firstBrace) {
2792
+ return trimmed.substring(firstBrace, lastBrace + 1);
2793
+ }
2794
+ const firstBracket = trimmed.indexOf("[");
2795
+ const lastBracket = trimmed.lastIndexOf("]");
2796
+ if (firstBracket !== -1 && lastBracket > firstBracket) {
2797
+ return trimmed.substring(firstBracket, lastBracket + 1);
2798
+ }
2799
+ return trimmed;
2768
2800
  }
2769
2801
 
2770
2802
  // src/oss/src/graphs/tools.ts
@@ -5122,7 +5154,7 @@ ${parsedMessages}`
5122
5154
  ],
5123
5155
  { type: "json_object" }
5124
5156
  );
5125
- const cleanResponse = removeCodeBlocks(response);
5157
+ const cleanResponse = extractJson(response);
5126
5158
  let facts = [];
5127
5159
  try {
5128
5160
  const parsed = FactRetrievalSchema.parse(JSON.parse(cleanResponse));
@@ -5162,7 +5194,7 @@ ${parsedMessages}`
5162
5194
  [{ role: "user", content: updatePrompt }],
5163
5195
  { type: "json_object" }
5164
5196
  );
5165
- const cleanUpdateResponse = removeCodeBlocks(updateResponse);
5197
+ const cleanUpdateResponse = extractJson(updateResponse);
5166
5198
  let memoryActions = [];
5167
5199
  try {
5168
5200
  memoryActions = JSON.parse(cleanUpdateResponse).memory || [];