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.
- package/dist/oss/index.d.mts +3 -3
- package/dist/oss/index.d.ts +3 -3
- package/dist/oss/index.js +45 -13
- package/dist/oss/index.js.map +1 -1
- package/dist/oss/index.mjs +45 -13
- package/dist/oss/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/oss/index.d.mts
CHANGED
|
@@ -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.d.ts
CHANGED
|
@@ -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
|
|
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).
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
5197
|
+
const cleanUpdateResponse = extractJson(updateResponse);
|
|
5166
5198
|
let memoryActions = [];
|
|
5167
5199
|
try {
|
|
5168
5200
|
memoryActions = JSON.parse(cleanUpdateResponse).memory || [];
|