@retrivora-ai/rag-engine 0.4.1 → 0.4.2

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MongoDBProvider
3
- } from "./chunk-MIG2VGPL.mjs";
3
+ } from "./chunk-IWHCAQEA.mjs";
4
4
  import "./chunk-IMP6FUCY.mjs";
5
5
  import "./chunk-FWCSY2DS.mjs";
6
6
  export {
@@ -1378,7 +1378,7 @@ var ProviderRegistry = class {
1378
1378
  return new PostgreSQLProvider(config);
1379
1379
  }
1380
1380
  case "mongodb": {
1381
- const { MongoDBProvider } = await import("./MongoDBProvider-HMCEDIHH.mjs");
1381
+ const { MongoDBProvider } = await import("./MongoDBProvider-ZKW34AEL.mjs");
1382
1382
  return new MongoDBProvider(config);
1383
1383
  }
1384
1384
  case "milvus": {
@@ -65,18 +65,20 @@ var MongoDBProvider = class extends BaseVectorProvider {
65
65
  },
66
66
  {
67
67
  $project: {
68
- score: { $meta: "vectorSearchScore" },
69
- content: `$${this.contentKey}`,
70
- metadata: `$${this.metadataKey}`
68
+ _id: 1,
69
+ [this.contentKey]: 1,
70
+ [this.metadataKey]: 1,
71
+ namespace: 1,
72
+ score: { $meta: "vectorSearchScore" }
71
73
  }
72
74
  }
73
75
  ];
74
76
  const results = await this.collection.aggregate(pipeline).toArray();
75
77
  return results.map((res) => ({
76
- id: res["_id"].toString(),
77
- score: res["score"],
78
- content: res["content"],
79
- metadata: res["metadata"]
78
+ id: res._id,
79
+ content: res[this.contentKey],
80
+ metadata: res[this.metadataKey],
81
+ score: res.score
80
82
  }));
81
83
  }
82
84
  async delete(id, namespace) {
@@ -86,11 +88,10 @@ var MongoDBProvider = class extends BaseVectorProvider {
86
88
  await this.collection.deleteMany({ namespace });
87
89
  }
88
90
  /**
89
- * MongoDB Atlas Vector Search requires specific filter syntax.
90
- * Metadata fields must be prefixed with the metadata key (e.g. metadata.field).
91
+ * Sanitise and flatten filter for MongoDB.
92
+ * Strips internal engine fields and keywords.
91
93
  */
92
94
  sanitizeFilter(filter) {
93
- if (!filter) return {};
94
95
  const sanitized = super.sanitizeFilter(filter);
95
96
  const mongoFilter = {};
96
97
  for (const [key, value] of Object.entries(sanitized)) {
@@ -433,18 +433,20 @@ var init_MongoDBProvider = __esm({
433
433
  },
434
434
  {
435
435
  $project: {
436
- score: { $meta: "vectorSearchScore" },
437
- content: `$${this.contentKey}`,
438
- metadata: `$${this.metadataKey}`
436
+ _id: 1,
437
+ [this.contentKey]: 1,
438
+ [this.metadataKey]: 1,
439
+ namespace: 1,
440
+ score: { $meta: "vectorSearchScore" }
439
441
  }
440
442
  }
441
443
  ];
442
444
  const results = await this.collection.aggregate(pipeline).toArray();
443
445
  return results.map((res) => ({
444
- id: res["_id"].toString(),
445
- score: res["score"],
446
- content: res["content"],
447
- metadata: res["metadata"]
446
+ id: res._id,
447
+ content: res[this.contentKey],
448
+ metadata: res[this.metadataKey],
449
+ score: res.score
448
450
  }));
449
451
  }
450
452
  async delete(id, namespace) {
@@ -454,11 +456,10 @@ var init_MongoDBProvider = __esm({
454
456
  await this.collection.deleteMany({ namespace });
455
457
  }
456
458
  /**
457
- * MongoDB Atlas Vector Search requires specific filter syntax.
458
- * Metadata fields must be prefixed with the metadata key (e.g. metadata.field).
459
+ * Sanitise and flatten filter for MongoDB.
460
+ * Strips internal engine fields and keywords.
459
461
  */
460
462
  sanitizeFilter(filter) {
461
- if (!filter) return {};
462
463
  const sanitized = super.sanitizeFilter(filter);
463
464
  const mongoFilter = {};
464
465
  for (const [key, value] of Object.entries(sanitized)) {
@@ -3,7 +3,7 @@ import {
3
3
  createHealthHandler,
4
4
  createIngestHandler,
5
5
  createUploadHandler
6
- } from "../chunk-7MIY23YT.mjs";
6
+ } from "../chunk-2RLRKGHG.mjs";
7
7
  import "../chunk-EDLTMSNY.mjs";
8
8
  import "../chunk-FWCSY2DS.mjs";
9
9
  export {
package/dist/server.d.mts CHANGED
@@ -753,8 +753,8 @@ declare class MongoDBProvider extends BaseVectorProvider {
753
753
  delete(id: string | number, namespace?: string): Promise<void>;
754
754
  deleteNamespace(namespace: string): Promise<void>;
755
755
  /**
756
- * MongoDB Atlas Vector Search requires specific filter syntax.
757
- * Metadata fields must be prefixed with the metadata key (e.g. metadata.field).
756
+ * Sanitise and flatten filter for MongoDB.
757
+ * Strips internal engine fields and keywords.
758
758
  */
759
759
  protected sanitizeFilter(filter?: Record<string, unknown>): Record<string, unknown>;
760
760
  ping(): Promise<boolean>;
package/dist/server.d.ts CHANGED
@@ -753,8 +753,8 @@ declare class MongoDBProvider extends BaseVectorProvider {
753
753
  delete(id: string | number, namespace?: string): Promise<void>;
754
754
  deleteNamespace(namespace: string): Promise<void>;
755
755
  /**
756
- * MongoDB Atlas Vector Search requires specific filter syntax.
757
- * Metadata fields must be prefixed with the metadata key (e.g. metadata.field).
756
+ * Sanitise and flatten filter for MongoDB.
757
+ * Strips internal engine fields and keywords.
758
758
  */
759
759
  protected sanitizeFilter(filter?: Record<string, unknown>): Record<string, unknown>;
760
760
  ping(): Promise<boolean>;
package/dist/server.js CHANGED
@@ -445,18 +445,20 @@ var init_MongoDBProvider = __esm({
445
445
  },
446
446
  {
447
447
  $project: {
448
- score: { $meta: "vectorSearchScore" },
449
- content: `$${this.contentKey}`,
450
- metadata: `$${this.metadataKey}`
448
+ _id: 1,
449
+ [this.contentKey]: 1,
450
+ [this.metadataKey]: 1,
451
+ namespace: 1,
452
+ score: { $meta: "vectorSearchScore" }
451
453
  }
452
454
  }
453
455
  ];
454
456
  const results = await this.collection.aggregate(pipeline).toArray();
455
457
  return results.map((res) => ({
456
- id: res["_id"].toString(),
457
- score: res["score"],
458
- content: res["content"],
459
- metadata: res["metadata"]
458
+ id: res._id,
459
+ content: res[this.contentKey],
460
+ metadata: res[this.metadataKey],
461
+ score: res.score
460
462
  }));
461
463
  }
462
464
  async delete(id, namespace) {
@@ -466,11 +468,10 @@ var init_MongoDBProvider = __esm({
466
468
  await this.collection.deleteMany({ namespace });
467
469
  }
468
470
  /**
469
- * MongoDB Atlas Vector Search requires specific filter syntax.
470
- * Metadata fields must be prefixed with the metadata key (e.g. metadata.field).
471
+ * Sanitise and flatten filter for MongoDB.
472
+ * Strips internal engine fields and keywords.
471
473
  */
472
474
  sanitizeFilter(filter) {
473
- if (!filter) return {};
474
475
  const sanitized = super.sanitizeFilter(filter);
475
476
  const mongoFilter = {};
476
477
  for (const [key, value] of Object.entries(sanitized)) {
package/dist/server.mjs CHANGED
@@ -34,7 +34,7 @@ import {
34
34
  createIngestHandler,
35
35
  createUploadHandler,
36
36
  getRagConfig
37
- } from "./chunk-7MIY23YT.mjs";
37
+ } from "./chunk-2RLRKGHG.mjs";
38
38
  import "./chunk-EDLTMSNY.mjs";
39
39
  import {
40
40
  PineconeProvider
@@ -44,7 +44,7 @@ import {
44
44
  } from "./chunk-LJWWPTWE.mjs";
45
45
  import {
46
46
  MongoDBProvider
47
- } from "./chunk-MIG2VGPL.mjs";
47
+ } from "./chunk-IWHCAQEA.mjs";
48
48
  import {
49
49
  MilvusProvider
50
50
  } from "./chunk-3QWAK3RZ.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@retrivora-ai/rag-engine",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Retrivora AI is a plug-and-play AI engine for RAG chat experiences — generic vector DB + LLM provider, embeddable or standalone.",
5
5
  "author": "Abhinav Alkuchi",
6
6
  "license": "MIT",
@@ -83,18 +83,22 @@ export class MongoDBProvider extends BaseVectorProvider {
83
83
  },
84
84
  {
85
85
  $project: {
86
+ _id: 1,
87
+ [this.contentKey]: 1,
88
+ [this.metadataKey]: 1,
89
+ namespace: 1,
86
90
  score: { $meta: 'vectorSearchScore' },
87
- content: `$${this.contentKey}`,
88
- metadata: `$${this.metadataKey}`,
89
91
  },
90
92
  },
91
93
  ];
94
+
92
95
  const results = await this.collection!.aggregate(pipeline).toArray();
93
- return results.map((res: Record<string, unknown>) => ({
94
- id: res['_id']!.toString(),
95
- score: res['score'] as number,
96
- content: res['content'] as string,
97
- metadata: res['metadata'] as Record<string, unknown>,
96
+
97
+ return results.map((res: any) => ({
98
+ id: res._id,
99
+ content: res[this.contentKey],
100
+ metadata: res[this.metadataKey],
101
+ score: res.score,
98
102
  }));
99
103
  }
100
104
 
@@ -107,16 +111,15 @@ export class MongoDBProvider extends BaseVectorProvider {
107
111
  }
108
112
 
109
113
  /**
110
- * MongoDB Atlas Vector Search requires specific filter syntax.
111
- * Metadata fields must be prefixed with the metadata key (e.g. metadata.field).
114
+ * Sanitise and flatten filter for MongoDB.
115
+ * Strips internal engine fields and keywords.
112
116
  */
113
- protected override sanitizeFilter(filter?: Record<string, unknown>): Record<string, unknown> {
114
- if (!filter) return {};
117
+ protected sanitizeFilter(filter?: Record<string, unknown>): Record<string, unknown> {
115
118
  const sanitized = super.sanitizeFilter(filter);
116
119
  const mongoFilter: Record<string, unknown> = {};
117
120
 
118
121
  for (const [key, value] of Object.entries(sanitized)) {
119
- // Skip internal engine fields and generic keywords
122
+ // Skip internal engine fields and generic keywords that don't exist in metadata
120
123
  if (key.startsWith('__') || key === 'keywords' || key === 'queryText') continue;
121
124
 
122
125
  // If the key is already a special key, keep it (e.g. namespace)
@@ -127,6 +130,7 @@ export class MongoDBProvider extends BaseVectorProvider {
127
130
  mongoFilter[`${this.metadataKey}.${key}`] = value;
128
131
  }
129
132
  }
133
+
130
134
  return mongoFilter;
131
135
  }
132
136