@hazeljs/rag 0.2.0-beta.1

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 (174) hide show
  1. package/README.md +379 -0
  2. package/dist/agentic/agentic-rag.service.d.ts +49 -0
  3. package/dist/agentic/agentic-rag.service.d.ts.map +1 -0
  4. package/dist/agentic/agentic-rag.service.js +149 -0
  5. package/dist/agentic/agentic-rag.service.js.map +1 -0
  6. package/dist/agentic/decorators/active-learning.decorator.d.ts +19 -0
  7. package/dist/agentic/decorators/active-learning.decorator.d.ts.map +1 -0
  8. package/dist/agentic/decorators/active-learning.decorator.js +98 -0
  9. package/dist/agentic/decorators/active-learning.decorator.js.map +1 -0
  10. package/dist/agentic/decorators/adaptive-retrieval.decorator.d.ts +16 -0
  11. package/dist/agentic/decorators/adaptive-retrieval.decorator.d.ts.map +1 -0
  12. package/dist/agentic/decorators/adaptive-retrieval.decorator.js +114 -0
  13. package/dist/agentic/decorators/adaptive-retrieval.decorator.js.map +1 -0
  14. package/dist/agentic/decorators/cached.decorator.d.ts +18 -0
  15. package/dist/agentic/decorators/cached.decorator.d.ts.map +1 -0
  16. package/dist/agentic/decorators/cached.decorator.js +93 -0
  17. package/dist/agentic/decorators/cached.decorator.js.map +1 -0
  18. package/dist/agentic/decorators/context-aware.decorator.d.ts +16 -0
  19. package/dist/agentic/decorators/context-aware.decorator.d.ts.map +1 -0
  20. package/dist/agentic/decorators/context-aware.decorator.js +169 -0
  21. package/dist/agentic/decorators/context-aware.decorator.js.map +1 -0
  22. package/dist/agentic/decorators/corrective-rag.decorator.d.ts +15 -0
  23. package/dist/agentic/decorators/corrective-rag.decorator.d.ts.map +1 -0
  24. package/dist/agentic/decorators/corrective-rag.decorator.js +146 -0
  25. package/dist/agentic/decorators/corrective-rag.decorator.js.map +1 -0
  26. package/dist/agentic/decorators/hyde.decorator.d.ts +14 -0
  27. package/dist/agentic/decorators/hyde.decorator.d.ts.map +1 -0
  28. package/dist/agentic/decorators/hyde.decorator.js +90 -0
  29. package/dist/agentic/decorators/hyde.decorator.js.map +1 -0
  30. package/dist/agentic/decorators/index.d.ts +16 -0
  31. package/dist/agentic/decorators/index.d.ts.map +1 -0
  32. package/dist/agentic/decorators/index.js +32 -0
  33. package/dist/agentic/decorators/index.js.map +1 -0
  34. package/dist/agentic/decorators/multi-hop.decorator.d.ts +14 -0
  35. package/dist/agentic/decorators/multi-hop.decorator.d.ts.map +1 -0
  36. package/dist/agentic/decorators/multi-hop.decorator.js +120 -0
  37. package/dist/agentic/decorators/multi-hop.decorator.js.map +1 -0
  38. package/dist/agentic/decorators/query-planner.decorator.d.ts +19 -0
  39. package/dist/agentic/decorators/query-planner.decorator.d.ts.map +1 -0
  40. package/dist/agentic/decorators/query-planner.decorator.js +227 -0
  41. package/dist/agentic/decorators/query-planner.decorator.js.map +1 -0
  42. package/dist/agentic/decorators/query-rewriter.decorator.d.ts +15 -0
  43. package/dist/agentic/decorators/query-rewriter.decorator.d.ts.map +1 -0
  44. package/dist/agentic/decorators/query-rewriter.decorator.js +140 -0
  45. package/dist/agentic/decorators/query-rewriter.decorator.js.map +1 -0
  46. package/dist/agentic/decorators/self-reflective.decorator.d.ts +18 -0
  47. package/dist/agentic/decorators/self-reflective.decorator.d.ts.map +1 -0
  48. package/dist/agentic/decorators/self-reflective.decorator.js +210 -0
  49. package/dist/agentic/decorators/self-reflective.decorator.js.map +1 -0
  50. package/dist/agentic/decorators/source-verification.decorator.d.ts +15 -0
  51. package/dist/agentic/decorators/source-verification.decorator.d.ts.map +1 -0
  52. package/dist/agentic/decorators/source-verification.decorator.js +121 -0
  53. package/dist/agentic/decorators/source-verification.decorator.js.map +1 -0
  54. package/dist/agentic/index.d.ts +9 -0
  55. package/dist/agentic/index.d.ts.map +1 -0
  56. package/dist/agentic/index.js +25 -0
  57. package/dist/agentic/index.js.map +1 -0
  58. package/dist/agentic/types.d.ts +209 -0
  59. package/dist/agentic/types.d.ts.map +1 -0
  60. package/dist/agentic/types.js +7 -0
  61. package/dist/agentic/types.js.map +1 -0
  62. package/dist/decorators/embeddable.decorator.d.ts +31 -0
  63. package/dist/decorators/embeddable.decorator.d.ts.map +1 -0
  64. package/dist/decorators/embeddable.decorator.js +44 -0
  65. package/dist/decorators/embeddable.decorator.js.map +1 -0
  66. package/dist/decorators/rag.decorator.d.ts +58 -0
  67. package/dist/decorators/rag.decorator.d.ts.map +1 -0
  68. package/dist/decorators/rag.decorator.js +78 -0
  69. package/dist/decorators/rag.decorator.js.map +1 -0
  70. package/dist/decorators/semantic-search.decorator.d.ts +69 -0
  71. package/dist/decorators/semantic-search.decorator.d.ts.map +1 -0
  72. package/dist/decorators/semantic-search.decorator.js +116 -0
  73. package/dist/decorators/semantic-search.decorator.js.map +1 -0
  74. package/dist/embeddings/cohere-embeddings.d.ts +33 -0
  75. package/dist/embeddings/cohere-embeddings.d.ts.map +1 -0
  76. package/dist/embeddings/cohere-embeddings.js +91 -0
  77. package/dist/embeddings/cohere-embeddings.js.map +1 -0
  78. package/dist/embeddings/openai-embeddings.d.ts +21 -0
  79. package/dist/embeddings/openai-embeddings.d.ts.map +1 -0
  80. package/dist/embeddings/openai-embeddings.js +53 -0
  81. package/dist/embeddings/openai-embeddings.js.map +1 -0
  82. package/dist/index.d.ts +27 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +54 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/memory/index.d.ts +11 -0
  87. package/dist/memory/index.d.ts.map +1 -0
  88. package/dist/memory/index.js +31 -0
  89. package/dist/memory/index.js.map +1 -0
  90. package/dist/memory/memory-manager.d.ts +96 -0
  91. package/dist/memory/memory-manager.d.ts.map +1 -0
  92. package/dist/memory/memory-manager.js +369 -0
  93. package/dist/memory/memory-manager.js.map +1 -0
  94. package/dist/memory/memory-store.interface.d.ts +73 -0
  95. package/dist/memory/memory-store.interface.d.ts.map +1 -0
  96. package/dist/memory/memory-store.interface.js +6 -0
  97. package/dist/memory/memory-store.interface.js.map +1 -0
  98. package/dist/memory/stores/buffer-memory.d.ts +47 -0
  99. package/dist/memory/stores/buffer-memory.d.ts.map +1 -0
  100. package/dist/memory/stores/buffer-memory.js +280 -0
  101. package/dist/memory/stores/buffer-memory.js.map +1 -0
  102. package/dist/memory/stores/hybrid-memory.d.ts +49 -0
  103. package/dist/memory/stores/hybrid-memory.d.ts.map +1 -0
  104. package/dist/memory/stores/hybrid-memory.js +194 -0
  105. package/dist/memory/stores/hybrid-memory.js.map +1 -0
  106. package/dist/memory/stores/vector-memory.d.ts +48 -0
  107. package/dist/memory/stores/vector-memory.d.ts.map +1 -0
  108. package/dist/memory/stores/vector-memory.js +312 -0
  109. package/dist/memory/stores/vector-memory.js.map +1 -0
  110. package/dist/memory/types.d.ts +119 -0
  111. package/dist/memory/types.d.ts.map +1 -0
  112. package/dist/memory/types.js +18 -0
  113. package/dist/memory/types.js.map +1 -0
  114. package/dist/rag-pipeline-with-memory.d.ts +68 -0
  115. package/dist/rag-pipeline-with-memory.d.ts.map +1 -0
  116. package/dist/rag-pipeline-with-memory.js +186 -0
  117. package/dist/rag-pipeline-with-memory.js.map +1 -0
  118. package/dist/rag-pipeline.d.ts +59 -0
  119. package/dist/rag-pipeline.d.ts.map +1 -0
  120. package/dist/rag-pipeline.js +181 -0
  121. package/dist/rag-pipeline.js.map +1 -0
  122. package/dist/rag.module.d.ts +26 -0
  123. package/dist/rag.module.d.ts.map +1 -0
  124. package/dist/rag.module.js +40 -0
  125. package/dist/rag.module.js.map +1 -0
  126. package/dist/rag.service.d.ts +95 -0
  127. package/dist/rag.service.d.ts.map +1 -0
  128. package/dist/rag.service.js +174 -0
  129. package/dist/rag.service.js.map +1 -0
  130. package/dist/retrieval/bm25.d.ts +57 -0
  131. package/dist/retrieval/bm25.d.ts.map +1 -0
  132. package/dist/retrieval/bm25.js +106 -0
  133. package/dist/retrieval/bm25.js.map +1 -0
  134. package/dist/retrieval/hybrid-search.d.ts +48 -0
  135. package/dist/retrieval/hybrid-search.d.ts.map +1 -0
  136. package/dist/retrieval/hybrid-search.js +123 -0
  137. package/dist/retrieval/hybrid-search.js.map +1 -0
  138. package/dist/retrieval/multi-query.d.ts +38 -0
  139. package/dist/retrieval/multi-query.d.ts.map +1 -0
  140. package/dist/retrieval/multi-query.js +135 -0
  141. package/dist/retrieval/multi-query.js.map +1 -0
  142. package/dist/text-splitters/recursive-text-splitter.d.ts +21 -0
  143. package/dist/text-splitters/recursive-text-splitter.d.ts.map +1 -0
  144. package/dist/text-splitters/recursive-text-splitter.js +95 -0
  145. package/dist/text-splitters/recursive-text-splitter.js.map +1 -0
  146. package/dist/types/index.d.ts +144 -0
  147. package/dist/types/index.d.ts.map +1 -0
  148. package/dist/types/index.js +16 -0
  149. package/dist/types/index.js.map +1 -0
  150. package/dist/utils/similarity.d.ts +16 -0
  151. package/dist/utils/similarity.d.ts.map +1 -0
  152. package/dist/utils/similarity.js +58 -0
  153. package/dist/utils/similarity.js.map +1 -0
  154. package/dist/vector-stores/chroma.store.d.ts +42 -0
  155. package/dist/vector-stores/chroma.store.d.ts.map +1 -0
  156. package/dist/vector-stores/chroma.store.js +242 -0
  157. package/dist/vector-stores/chroma.store.js.map +1 -0
  158. package/dist/vector-stores/memory-vector-store.d.ts +20 -0
  159. package/dist/vector-stores/memory-vector-store.d.ts.map +1 -0
  160. package/dist/vector-stores/memory-vector-store.js +94 -0
  161. package/dist/vector-stores/memory-vector-store.js.map +1 -0
  162. package/dist/vector-stores/pinecone.store.d.ts +34 -0
  163. package/dist/vector-stores/pinecone.store.d.ts.map +1 -0
  164. package/dist/vector-stores/pinecone.store.js +146 -0
  165. package/dist/vector-stores/pinecone.store.js.map +1 -0
  166. package/dist/vector-stores/qdrant.store.d.ts +31 -0
  167. package/dist/vector-stores/qdrant.store.d.ts.map +1 -0
  168. package/dist/vector-stores/qdrant.store.js +173 -0
  169. package/dist/vector-stores/qdrant.store.js.map +1 -0
  170. package/dist/vector-stores/weaviate.store.d.ts +37 -0
  171. package/dist/vector-stores/weaviate.store.d.ts.map +1 -0
  172. package/dist/vector-stores/weaviate.store.js +226 -0
  173. package/dist/vector-stores/weaviate.store.js.map +1 -0
  174. package/package.json +87 -0
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ /**
3
+ * Multi-Query Retrieval
4
+ * Generates multiple search queries from a single question to improve retrieval
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.MultiQueryRetrieval = void 0;
8
+ class MultiQueryRetrieval {
9
+ constructor(vectorStore, config = {}) {
10
+ this.vectorStore = vectorStore;
11
+ this.config = {
12
+ numQueries: config.numQueries || 3,
13
+ llmProvider: config.llmProvider || 'openai',
14
+ ...config,
15
+ };
16
+ }
17
+ /**
18
+ * Perform multi-query retrieval
19
+ */
20
+ async retrieve(question, options) {
21
+ // Generate multiple queries
22
+ const queries = await this.generateQueries(question);
23
+ // Search with each query
24
+ const allResults = [];
25
+ const seenIds = new Set();
26
+ for (const query of queries) {
27
+ const results = await this.vectorStore.search(query, options);
28
+ // Deduplicate results
29
+ for (const result of results) {
30
+ if (!seenIds.has(result.id)) {
31
+ seenIds.add(result.id);
32
+ allResults.push(result);
33
+ }
34
+ }
35
+ }
36
+ // Re-rank by average score across queries
37
+ const rankedResults = this.rankResults(allResults, queries);
38
+ // Return top K
39
+ const topK = options?.topK || 5;
40
+ return rankedResults.slice(0, topK);
41
+ }
42
+ /**
43
+ * Generate multiple search queries from a single question
44
+ */
45
+ async generateQueries(question) {
46
+ const numQueries = this.config.numQueries;
47
+ // Use custom generator if provided
48
+ if (this.config.customGenerator) {
49
+ return this.config.customGenerator(question, numQueries);
50
+ }
51
+ // Use LLM to generate queries
52
+ if (this.config.llmProvider === 'openai') {
53
+ return this.generateWithOpenAI(question, numQueries);
54
+ }
55
+ // Fallback: simple query variations
56
+ return this.generateSimpleVariations(question, numQueries);
57
+ }
58
+ /**
59
+ * Generate queries using OpenAI
60
+ */
61
+ async generateWithOpenAI(question, numQueries) {
62
+ try {
63
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
64
+ const { OpenAI } = require('openai');
65
+ const client = new OpenAI({ apiKey: this.config.apiKey });
66
+ const prompt = `You are a helpful assistant that generates search queries.
67
+ Given a question, generate ${numQueries} different search queries that could help find relevant information.
68
+ Each query should approach the question from a different angle.
69
+
70
+ Question: ${question}
71
+
72
+ Generate ${numQueries} search queries (one per line):`;
73
+ const response = await client.chat.completions.create({
74
+ model: this.config.model || 'gpt-3.5-turbo',
75
+ messages: [{ role: 'user', content: prompt }],
76
+ temperature: 0.7,
77
+ });
78
+ const content = response.choices[0].message.content || '';
79
+ const queries = content
80
+ .split('\n')
81
+ .map((q) => q.replace(/^\d+\.\s*/, '').trim())
82
+ .filter((q) => q.length > 0)
83
+ .slice(0, numQueries);
84
+ // Include original question
85
+ return [question, ...queries].slice(0, numQueries + 1);
86
+ }
87
+ catch {
88
+ // Fallback to simple variations on error
89
+ return this.generateSimpleVariations(question, numQueries);
90
+ }
91
+ }
92
+ /**
93
+ * Generate simple query variations (fallback)
94
+ */
95
+ generateSimpleVariations(question, numQueries) {
96
+ const queries = [question];
97
+ // Add variations
98
+ const variations = [
99
+ `What is ${question.toLowerCase()}`,
100
+ `Explain ${question.toLowerCase()}`,
101
+ `How does ${question.toLowerCase()} work`,
102
+ `${question} details`,
103
+ `${question} information`,
104
+ ];
105
+ queries.push(...variations.slice(0, numQueries - 1));
106
+ return queries.slice(0, numQueries);
107
+ }
108
+ /**
109
+ * Rank results by frequency and average score
110
+ */
111
+ rankResults(results, queries) {
112
+ // Group results by ID and calculate average score
113
+ const scoreMap = new Map();
114
+ for (const result of results) {
115
+ if (!scoreMap.has(result.id)) {
116
+ scoreMap.set(result.id, { result, scores: [] });
117
+ }
118
+ scoreMap.get(result.id).scores.push(result.score);
119
+ }
120
+ // Calculate average score and frequency bonus
121
+ const rankedResults = Array.from(scoreMap.values()).map(({ result, scores }) => {
122
+ const avgScore = scores.reduce((sum, s) => sum + s, 0) / scores.length;
123
+ const frequencyBonus = scores.length / queries.length; // 0 to 1
124
+ const finalScore = avgScore * 0.7 + frequencyBonus * 0.3;
125
+ return {
126
+ ...result,
127
+ score: finalScore,
128
+ };
129
+ });
130
+ // Sort by final score
131
+ return rankedResults.sort((a, b) => b.score - a.score);
132
+ }
133
+ }
134
+ exports.MultiQueryRetrieval = MultiQueryRetrieval;
135
+ //# sourceMappingURL=multi-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-query.js","sourceRoot":"","sources":["../../src/retrieval/multi-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Recursive Text Splitter
3
+ * Splits text recursively by different separators
4
+ */
5
+ import { TextSplitter, Document } from '../types';
6
+ export interface RecursiveTextSplitterConfig {
7
+ chunkSize?: number;
8
+ chunkOverlap?: number;
9
+ separators?: string[];
10
+ }
11
+ export declare class RecursiveTextSplitter implements TextSplitter {
12
+ private chunkSize;
13
+ private chunkOverlap;
14
+ private separators;
15
+ constructor(config?: RecursiveTextSplitterConfig);
16
+ split(text: string): string[];
17
+ splitDocuments(documents: Document[]): Document[];
18
+ private splitTextRecursive;
19
+ private addOverlap;
20
+ }
21
+ //# sourceMappingURL=recursive-text-splitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursive-text-splitter.d.ts","sourceRoot":"","sources":["../../src/text-splitters/recursive-text-splitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,qBAAsB,YAAW,YAAY;IACxD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAW;gBAEjB,MAAM,GAAE,2BAAgC;IAMpD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAI7B,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE;IAsBjD,OAAO,CAAC,kBAAkB;IA+C1B,OAAO,CAAC,UAAU;CAsBnB"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /**
3
+ * Recursive Text Splitter
4
+ * Splits text recursively by different separators
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.RecursiveTextSplitter = void 0;
8
+ class RecursiveTextSplitter {
9
+ constructor(config = {}) {
10
+ this.chunkSize = config.chunkSize || 1000;
11
+ this.chunkOverlap = config.chunkOverlap || 200;
12
+ this.separators = config.separators || ['\n\n', '\n', '. ', ' ', ''];
13
+ }
14
+ split(text) {
15
+ return this.splitTextRecursive(text, this.separators);
16
+ }
17
+ splitDocuments(documents) {
18
+ const chunks = [];
19
+ for (const doc of documents) {
20
+ const textChunks = this.split(doc.content);
21
+ for (let i = 0; i < textChunks.length; i++) {
22
+ chunks.push({
23
+ content: textChunks[i],
24
+ metadata: {
25
+ ...doc.metadata,
26
+ chunkIndex: i,
27
+ totalChunks: textChunks.length,
28
+ sourceDocId: doc.id,
29
+ },
30
+ });
31
+ }
32
+ }
33
+ return chunks;
34
+ }
35
+ splitTextRecursive(text, separators) {
36
+ const finalChunks = [];
37
+ // Get the first separator
38
+ const separator = separators[0];
39
+ let newSeparators;
40
+ if (separator === '') {
41
+ newSeparators = [];
42
+ }
43
+ else {
44
+ newSeparators = separators.slice(1);
45
+ }
46
+ // Split by separator
47
+ const splits = separator === '' ? text.split('') : text.split(separator);
48
+ // Merge splits into chunks
49
+ let currentChunk = '';
50
+ for (const split of splits) {
51
+ const potentialChunk = currentChunk + (currentChunk ? separator : '') + split;
52
+ if (potentialChunk.length <= this.chunkSize) {
53
+ currentChunk = potentialChunk;
54
+ }
55
+ else {
56
+ if (currentChunk) {
57
+ finalChunks.push(currentChunk);
58
+ }
59
+ // If split is still too large and we have more separators, recurse
60
+ if (split.length > this.chunkSize && newSeparators.length > 0) {
61
+ const subChunks = this.splitTextRecursive(split, newSeparators);
62
+ finalChunks.push(...subChunks);
63
+ currentChunk = '';
64
+ }
65
+ else {
66
+ currentChunk = split;
67
+ }
68
+ }
69
+ }
70
+ if (currentChunk) {
71
+ finalChunks.push(currentChunk);
72
+ }
73
+ // Add overlap
74
+ return this.addOverlap(finalChunks);
75
+ }
76
+ addOverlap(chunks) {
77
+ if (this.chunkOverlap === 0 || chunks.length <= 1) {
78
+ return chunks;
79
+ }
80
+ const overlappedChunks = [];
81
+ for (let i = 0; i < chunks.length; i++) {
82
+ let chunk = chunks[i];
83
+ // Add overlap from previous chunk
84
+ if (i > 0) {
85
+ const prevChunk = chunks[i - 1];
86
+ const overlapText = prevChunk.slice(-this.chunkOverlap);
87
+ chunk = overlapText + chunk;
88
+ }
89
+ overlappedChunks.push(chunk);
90
+ }
91
+ return overlappedChunks;
92
+ }
93
+ }
94
+ exports.RecursiveTextSplitter = RecursiveTextSplitter;
95
+ //# sourceMappingURL=recursive-text-splitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursive-text-splitter.js","sourceRoot":"","sources":["../../src/text-splitters/recursive-text-splitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Core types for RAG package
3
+ */
4
+ /**
5
+ * Document to be indexed
6
+ */
7
+ export interface Document {
8
+ id?: string;
9
+ content: string;
10
+ metadata?: Record<string, unknown>;
11
+ embedding?: number[];
12
+ }
13
+ /**
14
+ * Search result with similarity score
15
+ */
16
+ export interface SearchResult {
17
+ id: string;
18
+ content: string;
19
+ metadata?: Record<string, unknown>;
20
+ score: number;
21
+ embedding?: number[];
22
+ }
23
+ /**
24
+ * Query options for vector search
25
+ */
26
+ export interface QueryOptions {
27
+ topK?: number;
28
+ filter?: Record<string, unknown>;
29
+ includeMetadata?: boolean;
30
+ includeEmbedding?: boolean;
31
+ minScore?: number;
32
+ }
33
+ /**
34
+ * Embedding provider interface
35
+ */
36
+ export interface EmbeddingProvider {
37
+ /**
38
+ * Generate embeddings for text
39
+ */
40
+ embed(text: string): Promise<number[]>;
41
+ /**
42
+ * Generate embeddings for multiple texts
43
+ */
44
+ embedBatch(texts: string[]): Promise<number[][]>;
45
+ /**
46
+ * Get the dimension of embeddings
47
+ */
48
+ getDimension(): number;
49
+ }
50
+ /**
51
+ * Vector store interface
52
+ */
53
+ export interface VectorStore {
54
+ /**
55
+ * Initialize the vector store
56
+ */
57
+ initialize(): Promise<void>;
58
+ /**
59
+ * Add documents to the store
60
+ */
61
+ addDocuments(documents: Document[]): Promise<string[]>;
62
+ /**
63
+ * Search for similar documents
64
+ */
65
+ search(query: string, options?: QueryOptions): Promise<SearchResult[]>;
66
+ /**
67
+ * Search using embedding vector
68
+ */
69
+ searchByVector(embedding: number[], options?: QueryOptions): Promise<SearchResult[]>;
70
+ /**
71
+ * Delete documents by IDs
72
+ */
73
+ deleteDocuments(ids: string[]): Promise<void>;
74
+ /**
75
+ * Update a document
76
+ */
77
+ updateDocument(id: string, document: Partial<Document>): Promise<void>;
78
+ /**
79
+ * Get document by ID
80
+ */
81
+ getDocument(id: string): Promise<Document | null>;
82
+ /**
83
+ * Clear all documents
84
+ */
85
+ clear(): Promise<void>;
86
+ }
87
+ /**
88
+ * Text splitter interface
89
+ */
90
+ export interface TextSplitter {
91
+ /**
92
+ * Split text into chunks
93
+ */
94
+ split(text: string): string[];
95
+ /**
96
+ * Split documents into chunks
97
+ */
98
+ splitDocuments(documents: Document[]): Document[];
99
+ }
100
+ /**
101
+ * Document loader interface
102
+ */
103
+ export interface DocumentLoader {
104
+ /**
105
+ * Load documents from source
106
+ */
107
+ load(): Promise<Document[]>;
108
+ }
109
+ /**
110
+ * RAG configuration
111
+ */
112
+ export interface RAGConfig {
113
+ vectorStore: VectorStore;
114
+ embeddingProvider: EmbeddingProvider;
115
+ textSplitter?: TextSplitter;
116
+ chunkSize?: number;
117
+ chunkOverlap?: number;
118
+ topK?: number;
119
+ }
120
+ /**
121
+ * Retrieval strategy
122
+ */
123
+ export declare enum RetrievalStrategy {
124
+ SIMILARITY = "similarity",
125
+ MMR = "mmr",// Maximal Marginal Relevance
126
+ HYBRID = "hybrid"
127
+ }
128
+ /**
129
+ * RAG query options
130
+ */
131
+ export interface RAGQueryOptions extends QueryOptions {
132
+ strategy?: RetrievalStrategy;
133
+ llmPrompt?: string;
134
+ includeContext?: boolean;
135
+ }
136
+ /**
137
+ * RAG response
138
+ */
139
+ export interface RAGResponse {
140
+ answer: string;
141
+ sources: SearchResult[];
142
+ context: string;
143
+ }
144
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ /**
3
+ * Core types for RAG package
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RetrievalStrategy = void 0;
7
+ /**
8
+ * Retrieval strategy
9
+ */
10
+ var RetrievalStrategy;
11
+ (function (RetrievalStrategy) {
12
+ RetrievalStrategy["SIMILARITY"] = "similarity";
13
+ RetrievalStrategy["MMR"] = "mmr";
14
+ RetrievalStrategy["HYBRID"] = "hybrid";
15
+ })(RetrievalStrategy || (exports.RetrievalStrategy = RetrievalStrategy = {}));
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAwIH;;GAEG;AACH,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,8CAAyB,CAAA;IACzB,gCAAW,CAAA;IACX,sCAAiB,CAAA;AACnB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Similarity calculation utilities
3
+ */
4
+ /**
5
+ * Calculate cosine similarity between two vectors
6
+ */
7
+ export declare function cosineSimilarity(a: number[], b: number[]): number;
8
+ /**
9
+ * Calculate Euclidean distance between two vectors
10
+ */
11
+ export declare function euclideanDistance(a: number[], b: number[]): number;
12
+ /**
13
+ * Calculate dot product between two vectors
14
+ */
15
+ export declare function dotProduct(a: number[], b: number[]): number;
16
+ //# sourceMappingURL=similarity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"similarity.d.ts","sourceRoot":"","sources":["../../src/utils/similarity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAuBjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAYlE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAW3D"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * Similarity calculation utilities
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.cosineSimilarity = cosineSimilarity;
7
+ exports.euclideanDistance = euclideanDistance;
8
+ exports.dotProduct = dotProduct;
9
+ /**
10
+ * Calculate cosine similarity between two vectors
11
+ */
12
+ function cosineSimilarity(a, b) {
13
+ if (a.length !== b.length) {
14
+ throw new Error('Vectors must have the same length');
15
+ }
16
+ let dotProduct = 0;
17
+ let normA = 0;
18
+ let normB = 0;
19
+ for (let i = 0; i < a.length; i++) {
20
+ dotProduct += a[i] * b[i];
21
+ normA += a[i] * a[i];
22
+ normB += b[i] * b[i];
23
+ }
24
+ normA = Math.sqrt(normA);
25
+ normB = Math.sqrt(normB);
26
+ if (normA === 0 || normB === 0) {
27
+ return 0;
28
+ }
29
+ return dotProduct / (normA * normB);
30
+ }
31
+ /**
32
+ * Calculate Euclidean distance between two vectors
33
+ */
34
+ function euclideanDistance(a, b) {
35
+ if (a.length !== b.length) {
36
+ throw new Error('Vectors must have the same length');
37
+ }
38
+ let sum = 0;
39
+ for (let i = 0; i < a.length; i++) {
40
+ const diff = a[i] - b[i];
41
+ sum += diff * diff;
42
+ }
43
+ return Math.sqrt(sum);
44
+ }
45
+ /**
46
+ * Calculate dot product between two vectors
47
+ */
48
+ function dotProduct(a, b) {
49
+ if (a.length !== b.length) {
50
+ throw new Error('Vectors must have the same length');
51
+ }
52
+ let sum = 0;
53
+ for (let i = 0; i < a.length; i++) {
54
+ sum += a[i] * b[i];
55
+ }
56
+ return sum;
57
+ }
58
+ //# sourceMappingURL=similarity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"similarity.js","sourceRoot":"","sources":["../../src/utils/similarity.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAKH,4CAuBC;AAKD,8CAYC;AAKD,gCAWC;AA3DD;;GAEG;AACH,SAAgB,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEzB,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,UAAU,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,CAAW,EAAE,CAAW;IACxD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,CAAW,EAAE,CAAW;IACjD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * ChromaDB Vector Store
3
+ * Lightweight, embedded vector database
4
+ */
5
+ import { VectorStore, Document, SearchResult, QueryOptions } from '../types';
6
+ import { EmbeddingProvider } from '../types';
7
+ export interface ChromaConfig {
8
+ url?: string;
9
+ collectionName: string;
10
+ auth?: {
11
+ provider: 'token';
12
+ credentials: string;
13
+ };
14
+ }
15
+ export declare class ChromaVectorStore implements VectorStore {
16
+ private client;
17
+ private collection;
18
+ private embeddingProvider;
19
+ private collectionName;
20
+ private initialized;
21
+ constructor(embeddingProvider: EmbeddingProvider, config: ChromaConfig);
22
+ initialize(): Promise<void>;
23
+ addDocuments(documents: Document[]): Promise<string[]>;
24
+ search(query: string, options?: QueryOptions): Promise<SearchResult[]>;
25
+ searchByVector(embedding: number[], options?: QueryOptions): Promise<SearchResult[]>;
26
+ deleteDocuments(ids: string[]): Promise<void>;
27
+ updateDocument(id: string, document: Partial<Document>): Promise<void>;
28
+ getDocument(id: string): Promise<Document | null>;
29
+ clear(): Promise<void>;
30
+ /**
31
+ * Get collection statistics
32
+ */
33
+ getStats(): Promise<{
34
+ count: number;
35
+ }>;
36
+ /**
37
+ * Peek at first N documents
38
+ */
39
+ peek(limit?: number): Promise<Document[]>;
40
+ private generateId;
41
+ }
42
+ //# sourceMappingURL=chroma.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chroma.store.d.ts","sourceRoot":"","sources":["../../src/vector-stores/chroma.store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAQ7C,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAkB;gBAEzB,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY;IAmBhE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmCtD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAOtE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAyDpF,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCtE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA0BjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAa5C;;OAEG;IACG,IAAI,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0BnD,OAAO,CAAC,UAAU;CAGnB"}