@retrivora-ai/rag-engine 0.1.7 → 0.1.8

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 (51) hide show
  1. package/dist/{ChromaDBProvider-QNI7UCX4.mjs → ChromaDBProvider-2JZSBOQX.mjs} +1 -1
  2. package/dist/{MilvusProvider-OO6QGZDZ.mjs → MilvusProvider-CJDBCBVI.mjs} +1 -1
  3. package/dist/{PineconeProvider-ZRAFNFEC.mjs → PineconeProvider-E6L5Z2FO.mjs} +1 -1
  4. package/dist/{QdrantProvider-VAED5VA7.mjs → QdrantProvider-JITRNJQN.mjs} +1 -1
  5. package/dist/{RagConfig-hBGXJmSx.d.mts → RagConfig-D_rSf8ep.d.mts} +1 -1
  6. package/dist/{RagConfig-hBGXJmSx.d.ts → RagConfig-D_rSf8ep.d.ts} +1 -1
  7. package/dist/{RedisProvider-ASONNYBI.mjs → RedisProvider-3VKFQXXD.mjs} +1 -1
  8. package/dist/UniversalVectorProvider-E6L4U4OX.mjs +9 -0
  9. package/dist/{WeaviateProvider-PSDCUGC7.mjs → WeaviateProvider-MXIPP44J.mjs} +1 -1
  10. package/dist/{chunk-CWQQHAF6.mjs → chunk-26EMHLIN.mjs} +3 -5
  11. package/dist/{chunk-VPNRDXIA.mjs → chunk-7BQI4A5J.mjs} +17 -11
  12. package/dist/{chunk-ZM6TYIDH.mjs → chunk-MFWJZVF3.mjs} +3 -1
  13. package/dist/{chunk-V75V7BT2.mjs → chunk-TSX6DQXX.mjs} +2 -2
  14. package/dist/{chunk-HUGLYKD6.mjs → chunk-XZPVJS2B.mjs} +27 -9
  15. package/dist/chunk-Y6HQZDCJ.mjs +156 -0
  16. package/dist/{chunk-7YQWGERZ.mjs → chunk-YIYDJQJM.mjs} +736 -189
  17. package/dist/{chunk-7NXI6ZWX.mjs → chunk-YST6KYBJ.mjs} +8 -5
  18. package/dist/handlers/index.d.mts +2 -2
  19. package/dist/handlers/index.d.ts +2 -2
  20. package/dist/handlers/index.js +877 -625
  21. package/dist/handlers/index.mjs +1 -2
  22. package/dist/index-BJ8CUArE.d.mts +114 -0
  23. package/dist/index-DtNprGGj.d.ts +114 -0
  24. package/dist/index.d.mts +2 -2
  25. package/dist/index.d.ts +2 -2
  26. package/dist/server.d.mts +566 -17
  27. package/dist/server.d.ts +566 -17
  28. package/dist/server.js +1233 -642
  29. package/dist/server.mjs +314 -16
  30. package/package.json +11 -2
  31. package/src/config/ConfigBuilder.ts +373 -0
  32. package/src/config/EmbeddingStrategy.ts +147 -0
  33. package/src/config/serverConfig.ts +51 -18
  34. package/src/core/ConfigValidator.ts +67 -50
  35. package/src/core/Pipeline.ts +28 -26
  36. package/src/core/PluginManager.ts +277 -0
  37. package/src/core/ProviderHealthCheck.ts +75 -139
  38. package/src/core/ProviderRegistry.ts +38 -15
  39. package/src/providers/vectordb/ChromaDBProvider.ts +37 -12
  40. package/src/providers/vectordb/MilvusProvider.ts +25 -10
  41. package/src/providers/vectordb/PineconeProvider.ts +17 -2
  42. package/src/providers/vectordb/QdrantProvider.ts +3 -6
  43. package/src/providers/vectordb/RedisProvider.ts +34 -11
  44. package/src/providers/vectordb/UniversalVectorProvider.ts +220 -0
  45. package/src/providers/vectordb/WeaviateProvider.ts +17 -10
  46. package/src/server.ts +28 -10
  47. package/dist/LLMFactory-JFOY2V4X.mjs +0 -8
  48. package/dist/chunk-JI6VD5TJ.mjs +0 -387
  49. package/dist/index-Bx182KKn.d.ts +0 -64
  50. package/dist/index-Ck2pt7-8.d.mts +0 -64
  51. package/src/test-refactor.ts +0 -59
package/dist/server.mjs CHANGED
@@ -1,37 +1,44 @@
1
- import {
2
- QdrantProvider
3
- } from "./chunk-CWQQHAF6.mjs";
4
1
  import {
5
2
  ChromaDBProvider
6
- } from "./chunk-HUGLYKD6.mjs";
3
+ } from "./chunk-XZPVJS2B.mjs";
7
4
  import {
8
5
  RedisProvider
9
- } from "./chunk-VPNRDXIA.mjs";
6
+ } from "./chunk-7BQI4A5J.mjs";
10
7
  import {
11
8
  WeaviateProvider
12
- } from "./chunk-V75V7BT2.mjs";
9
+ } from "./chunk-TSX6DQXX.mjs";
13
10
  import {
11
+ UniversalVectorProvider
12
+ } from "./chunk-Y6HQZDCJ.mjs";
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";
37
+ } from "./chunk-YIYDJQJM.mjs";
31
38
  import "./chunk-UKDXCXW7.mjs";
32
39
  import {
33
40
  PineconeProvider
34
- } from "./chunk-ZM6TYIDH.mjs";
41
+ } from "./chunk-MFWJZVF3.mjs";
35
42
  import {
36
43
  PostgreSQLProvider
37
44
  } from "./chunk-IUTAZ7QR.mjs";
@@ -40,31 +47,322 @@ import {
40
47
  } from "./chunk-QEYVWVT5.mjs";
41
48
  import {
42
49
  MilvusProvider
43
- } from "./chunk-7NXI6ZWX.mjs";
50
+ } from "./chunk-YST6KYBJ.mjs";
51
+ import {
52
+ QdrantProvider
53
+ } from "./chunk-26EMHLIN.mjs";
44
54
  import {
45
55
  BaseVectorProvider
46
56
  } from "./chunk-VOIWNO5O.mjs";
47
- import "./chunk-I4E63NIC.mjs";
57
+ import {
58
+ __spreadValues
59
+ } from "./chunk-I4E63NIC.mjs";
60
+
61
+ // src/config/ConfigBuilder.ts
62
+ var ConfigBuilder = class {
63
+ constructor() {
64
+ this.config = {
65
+ projectId: "default-project",
66
+ rag: {
67
+ chunkSize: 1e3,
68
+ chunkOverlap: 200,
69
+ topK: 5
70
+ }
71
+ };
72
+ }
73
+ /**
74
+ * Set the project/application ID for namespacing
75
+ */
76
+ projectId(id) {
77
+ this.config.projectId = id;
78
+ return this;
79
+ }
80
+ /**
81
+ * Configure the vector database provider
82
+ */
83
+ vectorDb(provider, options) {
84
+ var _a;
85
+ if (provider === "auto") {
86
+ this.config.vectorDb = this.autoDetectVectorDb();
87
+ } else {
88
+ this.config.vectorDb = {
89
+ provider,
90
+ indexName: (_a = options == null ? void 0 : options.indexName) != null ? _a : "default",
91
+ options: __spreadValues({}, options)
92
+ };
93
+ }
94
+ return this;
95
+ }
96
+ /**
97
+ * Configure the LLM provider for chat
98
+ */
99
+ llm(provider, model, apiKey, options) {
100
+ var _a, _b;
101
+ if (provider === "auto") {
102
+ this.config.llm = this.autoDetectLLM();
103
+ } else {
104
+ this.config.llm = {
105
+ provider,
106
+ model: model != null ? model : "default-model",
107
+ apiKey,
108
+ systemPrompt: options == null ? void 0 : options.systemPrompt,
109
+ maxTokens: (_a = options == null ? void 0 : options.maxTokens) != null ? _a : 1024,
110
+ temperature: (_b = options == null ? void 0 : options.temperature) != null ? _b : 0.7,
111
+ baseUrl: options == null ? void 0 : options.baseUrl,
112
+ options
113
+ };
114
+ }
115
+ return this;
116
+ }
117
+ /**
118
+ * Configure the embedding provider
119
+ */
120
+ embedding(provider, model, apiKey, options) {
121
+ if (provider === "auto") {
122
+ this.config.embedding = this.autoDetectEmbedding();
123
+ } else {
124
+ this.config.embedding = {
125
+ provider,
126
+ model: model != null ? model : "default-embedding",
127
+ apiKey,
128
+ baseUrl: options == null ? void 0 : options.baseUrl,
129
+ options
130
+ };
131
+ }
132
+ return this;
133
+ }
134
+ /**
135
+ * Set RAG-specific parameters
136
+ */
137
+ rag(options) {
138
+ var _a;
139
+ this.config.rag = __spreadValues(__spreadValues({}, (_a = this.config.rag) != null ? _a : {}), options);
140
+ return this;
141
+ }
142
+ /**
143
+ * Set UI/UX parameters
144
+ */
145
+ ui(options) {
146
+ this.config.ui = options;
147
+ return this;
148
+ }
149
+ /**
150
+ * Build and return the configuration
151
+ */
152
+ build() {
153
+ const finalConfig = this.config;
154
+ return finalConfig;
155
+ }
156
+ /**
157
+ * Build and return as JSON for serialization
158
+ */
159
+ toJSON() {
160
+ return JSON.stringify(this.build());
161
+ }
162
+ // ============================================================================
163
+ // Private helper methods for auto-detection
164
+ // ============================================================================
165
+ autoDetectVectorDb() {
166
+ if (process.env.PINECONE_API_KEY && process.env.PINECONE_INDEX) {
167
+ return {
168
+ provider: "pinecone",
169
+ indexName: process.env.PINECONE_INDEX,
170
+ options: { apiKey: process.env.PINECONE_API_KEY }
171
+ };
172
+ }
173
+ if (process.env.QDRANT_URL) {
174
+ return {
175
+ provider: "qdrant",
176
+ indexName: process.env.QDRANT_COLLECTION || "documents",
177
+ options: {
178
+ url: process.env.QDRANT_URL,
179
+ apiKey: process.env.QDRANT_API_KEY
180
+ }
181
+ };
182
+ }
183
+ if (process.env.DATABASE_URL) {
184
+ return {
185
+ provider: "postgresql",
186
+ indexName: process.env.PG_TABLE || "documents",
187
+ options: {
188
+ connectionString: process.env.DATABASE_URL
189
+ }
190
+ };
191
+ }
192
+ if (process.env.MONGODB_URI) {
193
+ return {
194
+ provider: "mongodb",
195
+ indexName: process.env.MONGODB_COLLECTION || "documents",
196
+ options: {
197
+ uri: process.env.MONGODB_URI,
198
+ database: process.env.MONGODB_DB || "ai_db",
199
+ collection: process.env.MONGODB_COLLECTION || "documents"
200
+ }
201
+ };
202
+ }
203
+ if (process.env.REDIS_URL) {
204
+ return {
205
+ provider: "redis",
206
+ indexName: process.env.REDIS_INDEX || "documents",
207
+ options: {
208
+ url: process.env.REDIS_URL
209
+ }
210
+ };
211
+ }
212
+ return {
213
+ provider: "qdrant",
214
+ indexName: "documents",
215
+ options: {
216
+ url: process.env.QDRANT_URL || "http://localhost:6333"
217
+ }
218
+ };
219
+ }
220
+ autoDetectLLM() {
221
+ if (process.env.OPENAI_API_KEY) {
222
+ return {
223
+ provider: "openai",
224
+ model: process.env.OPENAI_MODEL || "gpt-4o-mini",
225
+ apiKey: process.env.OPENAI_API_KEY,
226
+ maxTokens: parseInt(process.env.OPENAI_MAX_TOKENS || "1024"),
227
+ temperature: parseFloat(process.env.OPENAI_TEMPERATURE || "0.7")
228
+ };
229
+ }
230
+ if (process.env.ANTHROPIC_API_KEY) {
231
+ return {
232
+ provider: "anthropic",
233
+ model: process.env.ANTHROPIC_MODEL || "claude-3-haiku-20240307",
234
+ apiKey: process.env.ANTHROPIC_API_KEY,
235
+ maxTokens: parseInt(process.env.ANTHROPIC_MAX_TOKENS || "1024"),
236
+ temperature: parseFloat(process.env.ANTHROPIC_TEMPERATURE || "0.7")
237
+ };
238
+ }
239
+ if (process.env.OLLAMA_BASE_URL) {
240
+ return {
241
+ provider: "ollama",
242
+ model: process.env.OLLAMA_MODEL || "mistral",
243
+ baseUrl: process.env.OLLAMA_BASE_URL,
244
+ maxTokens: parseInt(process.env.OLLAMA_MAX_TOKENS || "1024"),
245
+ temperature: parseFloat(process.env.OLLAMA_TEMPERATURE || "0.7")
246
+ };
247
+ }
248
+ return {
249
+ provider: "openai",
250
+ model: "gpt-4o-mini",
251
+ apiKey: process.env.OPENAI_API_KEY
252
+ };
253
+ }
254
+ autoDetectEmbedding() {
255
+ if (process.env.EMBEDDING_PROVIDER) {
256
+ const provider = process.env.EMBEDDING_PROVIDER;
257
+ return {
258
+ provider,
259
+ model: process.env.EMBEDDING_MODEL || "default",
260
+ apiKey: process.env.EMBEDDING_API_KEY,
261
+ baseUrl: process.env.EMBEDDING_BASE_URL
262
+ };
263
+ }
264
+ return {
265
+ provider: "openai",
266
+ model: "text-embedding-3-small",
267
+ apiKey: process.env.OPENAI_API_KEY
268
+ };
269
+ }
270
+ };
271
+ var PRESETS = {
272
+ /**
273
+ * OpenAI + Pinecone: Production-ready cloud setup
274
+ */
275
+ "openai-pinecone": {
276
+ vectorDb: "pinecone",
277
+ llm: "openai",
278
+ embedding: "openai"
279
+ },
280
+ /**
281
+ * Claude + Qdrant: Open-source vector DB + proprietary LLM
282
+ */
283
+ "claude-qdrant": {
284
+ vectorDb: "qdrant",
285
+ llm: "anthropic",
286
+ embedding: "openai"
287
+ },
288
+ /**
289
+ * Local development: Ollama + local Qdrant
290
+ */
291
+ "local-dev": {
292
+ vectorDb: "qdrant",
293
+ llm: "ollama",
294
+ embedding: "ollama"
295
+ },
296
+ /**
297
+ * Fully open-source: Ollama LLM + Qdrant vector DB + Ollama embeddings
298
+ */
299
+ "fully-open-source": {
300
+ vectorDb: "qdrant",
301
+ llm: "ollama",
302
+ embedding: "ollama"
303
+ },
304
+ /**
305
+ * PostgreSQL stack: pgvector + OpenAI
306
+ */
307
+ "postgres-openai": {
308
+ vectorDb: "postgresql",
309
+ llm: "openai",
310
+ embedding: "openai"
311
+ },
312
+ /**
313
+ * Enterprise MongoDB: MongoDB Atlas with OpenAI
314
+ */
315
+ "mongodb-openai": {
316
+ vectorDb: "mongodb",
317
+ llm: "openai",
318
+ embedding: "openai"
319
+ },
320
+ /**
321
+ * Redis stack for caching + search
322
+ */
323
+ "redis-openai": {
324
+ vectorDb: "redis",
325
+ llm: "openai",
326
+ embedding: "openai"
327
+ }
328
+ };
329
+ function createFromPreset(presetName) {
330
+ const preset = PRESETS[presetName];
331
+ 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`]);
332
+ }
48
333
  export {
49
334
  AnthropicProvider,
50
335
  BaseVectorProvider,
336
+ BatchProcessor,
51
337
  ChromaDBProvider,
338
+ ConfigBuilder,
52
339
  ConfigResolver,
340
+ ConfigValidator,
53
341
  DocumentChunker,
342
+ DocumentParser,
343
+ EmbeddingStrategy,
344
+ EmbeddingStrategyResolver,
54
345
  LLMFactory,
346
+ LLM_PROFILES,
55
347
  MilvusProvider,
56
348
  MongoDBProvider,
57
349
  OllamaProvider,
58
350
  OpenAIProvider,
351
+ PRESETS,
59
352
  PineconeProvider,
60
353
  Pipeline,
61
354
  PostgreSQLProvider,
355
+ ProviderHealthCheck,
62
356
  ProviderRegistry,
63
357
  QdrantProvider,
64
358
  RedisProvider,
359
+ UniversalLLMAdapter,
360
+ UniversalVectorProvider,
361
+ VECTOR_PROFILES,
65
362
  VectorPlugin,
66
363
  WeaviateProvider,
67
364
  createChatHandler,
365
+ createFromPreset,
68
366
  createHealthHandler,
69
367
  createIngestHandler,
70
368
  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.8",
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",