@retrivora-ai/rag-engine 0.1.7 → 0.1.9

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.
Files changed (63) hide show
  1. package/dist/{ChromaDBProvider-QNI7UCX4.mjs → ChromaDBProvider-T7TK3ONZ.mjs} +2 -2
  2. package/dist/{MilvusProvider-OO6QGZDZ.mjs → MilvusProvider-Y5FV5EAE.mjs} +2 -2
  3. package/dist/{MongoDBProvider-WWVJG3WT.mjs → MongoDBProvider-QHMGD2LZ.mjs} +2 -2
  4. package/dist/{PineconeProvider-ZRAFNFEC.mjs → PineconeProvider-A47MRRYJ.mjs} +2 -2
  5. package/dist/{PostgreSQLProvider-ZNXA67IM.mjs → PostgreSQLProvider-PJ5ER5Z4.mjs} +1 -1
  6. package/dist/{QdrantProvider-VAED5VA7.mjs → QdrantProvider-OLPJK7CY.mjs} +2 -2
  7. package/dist/{RagConfig-hBGXJmSx.d.mts → RagConfig-D_rSf8ep.d.mts} +1 -1
  8. package/dist/{RagConfig-hBGXJmSx.d.ts → RagConfig-D_rSf8ep.d.ts} +1 -1
  9. package/dist/{RedisProvider-ASONNYBI.mjs → RedisProvider-ANEJ3BHR.mjs} +2 -2
  10. package/dist/UniversalVectorProvider-QJIV2AJJ.mjs +9 -0
  11. package/dist/{WeaviateProvider-PSDCUGC7.mjs → WeaviateProvider-WIK2QN23.mjs} +2 -2
  12. package/dist/{chunk-7YQWGERZ.mjs → chunk-2VR5ZMXV.mjs} +740 -193
  13. package/dist/{chunk-QEYVWVT5.mjs → chunk-5HXNKSCR.mjs} +1 -1
  14. package/dist/{chunk-ZM6TYIDH.mjs → chunk-BMHJTWSU.mjs} +4 -2
  15. package/dist/{chunk-UKDXCXW7.mjs → chunk-EDLTMSNY.mjs} +1 -1
  16. package/dist/{chunk-I4E63NIC.mjs → chunk-FWCSY2DS.mjs} +14 -1
  17. package/dist/{chunk-VPNRDXIA.mjs → chunk-HOMXEE3M.mjs} +17 -11
  18. package/dist/{chunk-V75V7BT2.mjs → chunk-RUKZC3ON.mjs} +3 -3
  19. package/dist/{chunk-7NXI6ZWX.mjs → chunk-VEJNRS4B.mjs} +9 -6
  20. package/dist/{chunk-HUGLYKD6.mjs → chunk-VKE5ZW7Y.mjs} +28 -10
  21. package/dist/chunk-VV2ML6TM.mjs +156 -0
  22. package/dist/{chunk-CWQQHAF6.mjs → chunk-W2PQR3UK.mjs} +4 -6
  23. package/dist/handlers/index.d.mts +2 -2
  24. package/dist/handlers/index.d.ts +2 -2
  25. package/dist/handlers/index.js +877 -625
  26. package/dist/handlers/index.mjs +3 -4
  27. package/dist/index-BJ8CUArE.d.mts +114 -0
  28. package/dist/index-DtNprGGj.d.ts +114 -0
  29. package/dist/index.d.mts +2 -2
  30. package/dist/index.d.ts +2 -2
  31. package/dist/index.js +67 -58
  32. package/dist/index.mjs +74 -47
  33. package/dist/server.d.mts +601 -17
  34. package/dist/server.d.ts +601 -17
  35. package/dist/server.js +1426 -708
  36. package/dist/server.mjs +429 -18
  37. package/package.json +11 -2
  38. package/src/app/constants.tsx +220 -0
  39. package/src/app/page.tsx +193 -363
  40. package/src/app/types.ts +30 -0
  41. package/src/components/ChatWindow.tsx +3 -11
  42. package/src/config/ConfigBuilder.ts +373 -0
  43. package/src/config/EmbeddingStrategy.ts +147 -0
  44. package/src/config/serverConfig.ts +51 -18
  45. package/src/core/ConfigValidator.ts +67 -50
  46. package/src/core/Pipeline.ts +28 -26
  47. package/src/core/PluginManager.ts +277 -0
  48. package/src/core/ProviderHealthCheck.ts +75 -139
  49. package/src/core/ProviderRegistry.ts +38 -15
  50. package/src/providers/vectordb/ChromaDBProvider.ts +37 -12
  51. package/src/providers/vectordb/MilvusProvider.ts +25 -10
  52. package/src/providers/vectordb/MultiTablePostgresProvider.ts +164 -0
  53. package/src/providers/vectordb/PineconeProvider.ts +17 -2
  54. package/src/providers/vectordb/QdrantProvider.ts +3 -6
  55. package/src/providers/vectordb/RedisProvider.ts +34 -11
  56. package/src/providers/vectordb/UniversalVectorProvider.ts +220 -0
  57. package/src/providers/vectordb/WeaviateProvider.ts +17 -10
  58. package/src/server.ts +29 -10
  59. package/dist/LLMFactory-JFOY2V4X.mjs +0 -8
  60. package/dist/chunk-JI6VD5TJ.mjs +0 -387
  61. package/dist/index-Bx182KKn.d.ts +0 -64
  62. package/dist/index-Ck2pt7-8.d.mts +0 -64
  63. package/src/test-refactor.ts +0 -59
package/dist/server.mjs CHANGED
@@ -1,70 +1,481 @@
1
- import {
2
- QdrantProvider
3
- } from "./chunk-CWQQHAF6.mjs";
4
1
  import {
5
2
  ChromaDBProvider
6
- } from "./chunk-HUGLYKD6.mjs";
3
+ } from "./chunk-VKE5ZW7Y.mjs";
7
4
  import {
8
5
  RedisProvider
9
- } from "./chunk-VPNRDXIA.mjs";
6
+ } from "./chunk-HOMXEE3M.mjs";
10
7
  import {
11
8
  WeaviateProvider
12
- } from "./chunk-V75V7BT2.mjs";
9
+ } from "./chunk-RUKZC3ON.mjs";
10
+ import {
11
+ UniversalVectorProvider
12
+ } from "./chunk-VV2ML6TM.mjs";
13
13
  import {
14
+ AnthropicProvider,
15
+ BatchProcessor,
14
16
  ConfigResolver,
17
+ ConfigValidator,
15
18
  DocumentChunker,
19
+ DocumentParser,
20
+ EmbeddingStrategy,
21
+ EmbeddingStrategyResolver,
22
+ LLMFactory,
23
+ LLM_PROFILES,
24
+ OllamaProvider,
25
+ OpenAIProvider,
16
26
  Pipeline,
27
+ ProviderHealthCheck,
17
28
  ProviderRegistry,
29
+ UniversalLLMAdapter,
30
+ VECTOR_PROFILES,
18
31
  VectorPlugin,
19
32
  createChatHandler,
20
33
  createHealthHandler,
21
34
  createIngestHandler,
22
35
  createUploadHandler,
23
36
  getRagConfig
24
- } from "./chunk-7YQWGERZ.mjs";
25
- import {
26
- AnthropicProvider,
27
- LLMFactory,
28
- OllamaProvider,
29
- OpenAIProvider
30
- } from "./chunk-JI6VD5TJ.mjs";
31
- import "./chunk-UKDXCXW7.mjs";
37
+ } from "./chunk-2VR5ZMXV.mjs";
38
+ import "./chunk-EDLTMSNY.mjs";
32
39
  import {
33
40
  PineconeProvider
34
- } from "./chunk-ZM6TYIDH.mjs";
41
+ } from "./chunk-BMHJTWSU.mjs";
35
42
  import {
36
43
  PostgreSQLProvider
37
44
  } from "./chunk-IUTAZ7QR.mjs";
38
45
  import {
39
46
  MongoDBProvider
40
- } from "./chunk-QEYVWVT5.mjs";
47
+ } from "./chunk-5HXNKSCR.mjs";
41
48
  import {
42
49
  MilvusProvider
43
- } from "./chunk-7NXI6ZWX.mjs";
50
+ } from "./chunk-VEJNRS4B.mjs";
51
+ import {
52
+ QdrantProvider
53
+ } from "./chunk-W2PQR3UK.mjs";
44
54
  import {
45
55
  BaseVectorProvider
46
56
  } from "./chunk-VOIWNO5O.mjs";
47
- import "./chunk-I4E63NIC.mjs";
57
+ import {
58
+ __objRest,
59
+ __spreadProps,
60
+ __spreadValues
61
+ } from "./chunk-FWCSY2DS.mjs";
62
+
63
+ // src/config/ConfigBuilder.ts
64
+ var ConfigBuilder = class {
65
+ constructor() {
66
+ this.config = {
67
+ projectId: "default-project",
68
+ rag: {
69
+ chunkSize: 1e3,
70
+ chunkOverlap: 200,
71
+ topK: 5
72
+ }
73
+ };
74
+ }
75
+ /**
76
+ * Set the project/application ID for namespacing
77
+ */
78
+ projectId(id) {
79
+ this.config.projectId = id;
80
+ return this;
81
+ }
82
+ /**
83
+ * Configure the vector database provider
84
+ */
85
+ vectorDb(provider, options) {
86
+ var _a;
87
+ if (provider === "auto") {
88
+ this.config.vectorDb = this.autoDetectVectorDb();
89
+ } else {
90
+ this.config.vectorDb = {
91
+ provider,
92
+ indexName: (_a = options == null ? void 0 : options.indexName) != null ? _a : "default",
93
+ options: __spreadValues({}, options)
94
+ };
95
+ }
96
+ return this;
97
+ }
98
+ /**
99
+ * Configure the LLM provider for chat
100
+ */
101
+ llm(provider, model, apiKey, options) {
102
+ var _a, _b;
103
+ if (provider === "auto") {
104
+ this.config.llm = this.autoDetectLLM();
105
+ } else {
106
+ this.config.llm = {
107
+ provider,
108
+ model: model != null ? model : "default-model",
109
+ apiKey,
110
+ systemPrompt: options == null ? void 0 : options.systemPrompt,
111
+ maxTokens: (_a = options == null ? void 0 : options.maxTokens) != null ? _a : 1024,
112
+ temperature: (_b = options == null ? void 0 : options.temperature) != null ? _b : 0.7,
113
+ baseUrl: options == null ? void 0 : options.baseUrl,
114
+ options
115
+ };
116
+ }
117
+ return this;
118
+ }
119
+ /**
120
+ * Configure the embedding provider
121
+ */
122
+ embedding(provider, model, apiKey, options) {
123
+ if (provider === "auto") {
124
+ this.config.embedding = this.autoDetectEmbedding();
125
+ } else {
126
+ this.config.embedding = {
127
+ provider,
128
+ model: model != null ? model : "default-embedding",
129
+ apiKey,
130
+ baseUrl: options == null ? void 0 : options.baseUrl,
131
+ options
132
+ };
133
+ }
134
+ return this;
135
+ }
136
+ /**
137
+ * Set RAG-specific parameters
138
+ */
139
+ rag(options) {
140
+ var _a;
141
+ this.config.rag = __spreadValues(__spreadValues({}, (_a = this.config.rag) != null ? _a : {}), options);
142
+ return this;
143
+ }
144
+ /**
145
+ * Set UI/UX parameters
146
+ */
147
+ ui(options) {
148
+ this.config.ui = options;
149
+ return this;
150
+ }
151
+ /**
152
+ * Build and return the configuration
153
+ */
154
+ build() {
155
+ const finalConfig = this.config;
156
+ return finalConfig;
157
+ }
158
+ /**
159
+ * Build and return as JSON for serialization
160
+ */
161
+ toJSON() {
162
+ return JSON.stringify(this.build());
163
+ }
164
+ // ============================================================================
165
+ // Private helper methods for auto-detection
166
+ // ============================================================================
167
+ autoDetectVectorDb() {
168
+ if (process.env.PINECONE_API_KEY && process.env.PINECONE_INDEX) {
169
+ return {
170
+ provider: "pinecone",
171
+ indexName: process.env.PINECONE_INDEX,
172
+ options: { apiKey: process.env.PINECONE_API_KEY }
173
+ };
174
+ }
175
+ if (process.env.QDRANT_URL) {
176
+ return {
177
+ provider: "qdrant",
178
+ indexName: process.env.QDRANT_COLLECTION || "documents",
179
+ options: {
180
+ url: process.env.QDRANT_URL,
181
+ apiKey: process.env.QDRANT_API_KEY
182
+ }
183
+ };
184
+ }
185
+ if (process.env.DATABASE_URL) {
186
+ return {
187
+ provider: "postgresql",
188
+ indexName: process.env.PG_TABLE || "documents",
189
+ options: {
190
+ connectionString: process.env.DATABASE_URL
191
+ }
192
+ };
193
+ }
194
+ if (process.env.MONGODB_URI) {
195
+ return {
196
+ provider: "mongodb",
197
+ indexName: process.env.MONGODB_COLLECTION || "documents",
198
+ options: {
199
+ uri: process.env.MONGODB_URI,
200
+ database: process.env.MONGODB_DB || "ai_db",
201
+ collection: process.env.MONGODB_COLLECTION || "documents"
202
+ }
203
+ };
204
+ }
205
+ if (process.env.REDIS_URL) {
206
+ return {
207
+ provider: "redis",
208
+ indexName: process.env.REDIS_INDEX || "documents",
209
+ options: {
210
+ url: process.env.REDIS_URL
211
+ }
212
+ };
213
+ }
214
+ return {
215
+ provider: "qdrant",
216
+ indexName: "documents",
217
+ options: {
218
+ url: process.env.QDRANT_URL || "http://localhost:6333"
219
+ }
220
+ };
221
+ }
222
+ autoDetectLLM() {
223
+ if (process.env.OPENAI_API_KEY) {
224
+ return {
225
+ provider: "openai",
226
+ model: process.env.OPENAI_MODEL || "gpt-4o-mini",
227
+ apiKey: process.env.OPENAI_API_KEY,
228
+ maxTokens: parseInt(process.env.OPENAI_MAX_TOKENS || "1024"),
229
+ temperature: parseFloat(process.env.OPENAI_TEMPERATURE || "0.7")
230
+ };
231
+ }
232
+ if (process.env.ANTHROPIC_API_KEY) {
233
+ return {
234
+ provider: "anthropic",
235
+ model: process.env.ANTHROPIC_MODEL || "claude-3-haiku-20240307",
236
+ apiKey: process.env.ANTHROPIC_API_KEY,
237
+ maxTokens: parseInt(process.env.ANTHROPIC_MAX_TOKENS || "1024"),
238
+ temperature: parseFloat(process.env.ANTHROPIC_TEMPERATURE || "0.7")
239
+ };
240
+ }
241
+ if (process.env.OLLAMA_BASE_URL) {
242
+ return {
243
+ provider: "ollama",
244
+ model: process.env.OLLAMA_MODEL || "mistral",
245
+ baseUrl: process.env.OLLAMA_BASE_URL,
246
+ maxTokens: parseInt(process.env.OLLAMA_MAX_TOKENS || "1024"),
247
+ temperature: parseFloat(process.env.OLLAMA_TEMPERATURE || "0.7")
248
+ };
249
+ }
250
+ return {
251
+ provider: "openai",
252
+ model: "gpt-4o-mini",
253
+ apiKey: process.env.OPENAI_API_KEY
254
+ };
255
+ }
256
+ autoDetectEmbedding() {
257
+ if (process.env.EMBEDDING_PROVIDER) {
258
+ const provider = process.env.EMBEDDING_PROVIDER;
259
+ return {
260
+ provider,
261
+ model: process.env.EMBEDDING_MODEL || "default",
262
+ apiKey: process.env.EMBEDDING_API_KEY,
263
+ baseUrl: process.env.EMBEDDING_BASE_URL
264
+ };
265
+ }
266
+ return {
267
+ provider: "openai",
268
+ model: "text-embedding-3-small",
269
+ apiKey: process.env.OPENAI_API_KEY
270
+ };
271
+ }
272
+ };
273
+ var PRESETS = {
274
+ /**
275
+ * OpenAI + Pinecone: Production-ready cloud setup
276
+ */
277
+ "openai-pinecone": {
278
+ vectorDb: "pinecone",
279
+ llm: "openai",
280
+ embedding: "openai"
281
+ },
282
+ /**
283
+ * Claude + Qdrant: Open-source vector DB + proprietary LLM
284
+ */
285
+ "claude-qdrant": {
286
+ vectorDb: "qdrant",
287
+ llm: "anthropic",
288
+ embedding: "openai"
289
+ },
290
+ /**
291
+ * Local development: Ollama + local Qdrant
292
+ */
293
+ "local-dev": {
294
+ vectorDb: "qdrant",
295
+ llm: "ollama",
296
+ embedding: "ollama"
297
+ },
298
+ /**
299
+ * Fully open-source: Ollama LLM + Qdrant vector DB + Ollama embeddings
300
+ */
301
+ "fully-open-source": {
302
+ vectorDb: "qdrant",
303
+ llm: "ollama",
304
+ embedding: "ollama"
305
+ },
306
+ /**
307
+ * PostgreSQL stack: pgvector + OpenAI
308
+ */
309
+ "postgres-openai": {
310
+ vectorDb: "postgresql",
311
+ llm: "openai",
312
+ embedding: "openai"
313
+ },
314
+ /**
315
+ * Enterprise MongoDB: MongoDB Atlas with OpenAI
316
+ */
317
+ "mongodb-openai": {
318
+ vectorDb: "mongodb",
319
+ llm: "openai",
320
+ embedding: "openai"
321
+ },
322
+ /**
323
+ * Redis stack for caching + search
324
+ */
325
+ "redis-openai": {
326
+ vectorDb: "redis",
327
+ llm: "openai",
328
+ embedding: "openai"
329
+ }
330
+ };
331
+ function createFromPreset(presetName) {
332
+ const preset = PRESETS[presetName];
333
+ return new ConfigBuilder().vectorDb(preset.vectorDb, { apiKey: process.env[`${preset.vectorDb.toUpperCase()}_API_KEY`] }).llm(preset.llm, void 0, process.env[`${preset.llm.toUpperCase()}_API_KEY`]).embedding(preset.embedding, void 0, process.env[`${preset.embedding.toUpperCase()}_API_KEY`]);
334
+ }
335
+
336
+ // src/providers/vectordb/MultiTablePostgresProvider.ts
337
+ import { Pool } from "pg";
338
+ var MultiTablePostgresProvider = class extends BaseVectorProvider {
339
+ constructor(config) {
340
+ var _a, _b, _c;
341
+ super(config);
342
+ const opts = config.options || {};
343
+ if (!opts.connectionString) {
344
+ throw new Error("[MultiTablePostgresProvider] options.connectionString is required");
345
+ }
346
+ this.connectionString = opts.connectionString;
347
+ this.dimensions = (_a = opts.dimensions) != null ? _a : 768;
348
+ const rawTables = (_c = (_b = opts.tables) != null ? _b : process.env.VECTOR_DB_TABLES) != null ? _c : "";
349
+ this.tables = typeof rawTables === "string" ? rawTables.split(",").map((t) => t.trim()).filter(Boolean) : rawTables;
350
+ if (this.tables.length === 0) {
351
+ console.warn(
352
+ "[MultiTablePostgresProvider] No tables configured. Set VECTOR_DB_TABLES as a comma-separated list of table names or pass options.tables."
353
+ );
354
+ }
355
+ }
356
+ async initialize() {
357
+ this.pool = new Pool({ connectionString: this.connectionString });
358
+ const client = await this.pool.connect();
359
+ client.release();
360
+ console.log(
361
+ `[MultiTablePostgresProvider] Connected. Searching across ${this.tables.length} table(s): ${this.tables.join(", ")}`
362
+ );
363
+ }
364
+ /**
365
+ * Upsert is not supported for MultiTablePostgresProvider as it's designed for
366
+ * searching across pre-existing tables with varying schemas.
367
+ */
368
+ async upsert(_doc, _namespace) {
369
+ throw new Error(
370
+ "[MultiTablePostgresProvider] upsert() is not supported in multi-table mode. Please use the standard PostgreSQLProvider for single-table managed indices."
371
+ );
372
+ }
373
+ /**
374
+ * Batch upsert is not supported for MultiTablePostgresProvider.
375
+ */
376
+ async batchUpsert(_docs, _namespace) {
377
+ throw new Error(
378
+ "[MultiTablePostgresProvider] batchUpsert() is not supported in multi-table mode."
379
+ );
380
+ }
381
+ /**
382
+ * Query all configured tables and merge results, sorted by cosine similarity score.
383
+ */
384
+ async query(vector, topK, _namespace, _filter) {
385
+ var _b, _c;
386
+ if (!this.pool) {
387
+ throw new Error("[MultiTablePostgresProvider] Provider not initialized. Call initialize() first.");
388
+ }
389
+ console.log(`[MultiTablePostgresProvider] Querying ${this.tables.length} table(s) with vector dim=${vector.length}`);
390
+ const vectorLiteral = `[${vector.join(",")}]`;
391
+ const allResults = [];
392
+ for (const table of this.tables) {
393
+ try {
394
+ const result = await this.pool.query(
395
+ `SELECT *, 1 - (embedding <=> $1::vector) AS score
396
+ FROM "${table}"
397
+ ORDER BY embedding <=> $1::vector
398
+ LIMIT $2`,
399
+ [vectorLiteral, topK]
400
+ );
401
+ for (const row of result.rows) {
402
+ const _a = row, { score, id } = _a, rest = __objRest(_a, ["score", "id"]);
403
+ delete rest.embedding;
404
+ const content = Object.entries(rest).filter(([k, v]) => v !== null && typeof v !== "object" && k !== "id").map(([k, v]) => `${k}: ${v}`).join("\n");
405
+ allResults.push({
406
+ id: `${table}-${id}`,
407
+ score: parseFloat(String(score)),
408
+ content,
409
+ metadata: __spreadProps(__spreadValues({}, rest), { source_table: table })
410
+ });
411
+ }
412
+ } catch (err) {
413
+ console.error(
414
+ `[MultiTablePostgresProvider] Error querying table "${table}":`,
415
+ err.message
416
+ );
417
+ }
418
+ }
419
+ const sortedResults = allResults.sort((a, b) => b.score - a.score);
420
+ if (sortedResults.length > 0) {
421
+ console.log(`[MultiTablePostgresProvider] Top match from "${(_c = (_b = sortedResults[0].metadata) == null ? void 0 : _b.source_table) != null ? _c : "unknown"}" with score ${sortedResults[0].score.toFixed(4)}`);
422
+ }
423
+ return sortedResults.slice(0, topK);
424
+ }
425
+ async delete(_id, _namespace) {
426
+ console.warn("[MultiTablePostgresProvider] delete() is a no-op for multi-table mode.");
427
+ }
428
+ async deleteNamespace(_namespace) {
429
+ console.warn("[MultiTablePostgresProvider] deleteNamespace() is a no-op for multi-table mode.");
430
+ }
431
+ async ping() {
432
+ try {
433
+ await this.pool.query("SELECT 1");
434
+ return true;
435
+ } catch (e) {
436
+ return false;
437
+ }
438
+ }
439
+ async disconnect() {
440
+ if (this.pool) {
441
+ await this.pool.end();
442
+ }
443
+ }
444
+ };
48
445
  export {
49
446
  AnthropicProvider,
50
447
  BaseVectorProvider,
448
+ BatchProcessor,
51
449
  ChromaDBProvider,
450
+ ConfigBuilder,
52
451
  ConfigResolver,
452
+ ConfigValidator,
53
453
  DocumentChunker,
454
+ DocumentParser,
455
+ EmbeddingStrategy,
456
+ EmbeddingStrategyResolver,
54
457
  LLMFactory,
458
+ LLM_PROFILES,
55
459
  MilvusProvider,
56
460
  MongoDBProvider,
461
+ MultiTablePostgresProvider,
57
462
  OllamaProvider,
58
463
  OpenAIProvider,
464
+ PRESETS,
59
465
  PineconeProvider,
60
466
  Pipeline,
61
467
  PostgreSQLProvider,
468
+ ProviderHealthCheck,
62
469
  ProviderRegistry,
63
470
  QdrantProvider,
64
471
  RedisProvider,
472
+ UniversalLLMAdapter,
473
+ UniversalVectorProvider,
474
+ VECTOR_PROFILES,
65
475
  VectorPlugin,
66
476
  WeaviateProvider,
67
477
  createChatHandler,
478
+ createFromPreset,
68
479
  createHealthHandler,
69
480
  createIngestHandler,
70
481
  createUploadHandler,
package/package.json CHANGED
@@ -1,22 +1,31 @@
1
1
  {
2
2
  "name": "@retrivora-ai/rag-engine",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
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",
7
7
  "keywords": [
8
8
  "rag",
9
+ "retrieval-augmented-generation",
9
10
  "chatbot",
10
11
  "vector-database",
11
12
  "pinecone",
12
13
  "pgvector",
14
+ "postgresql",
15
+ "milvus",
16
+ "qdrant",
17
+ "chromadb",
18
+ "redis",
19
+ "weaviate",
20
+ "mongodb",
13
21
  "openai",
14
22
  "anthropic",
15
23
  "ollama",
16
24
  "nextjs",
17
25
  "react",
18
26
  "ai",
19
- "llm"
27
+ "llm",
28
+ "embeddings"
20
29
  ],
21
30
  "main": "dist/index.js",
22
31
  "module": "dist/index.mjs",