@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,173 @@
1
+ "use strict";
2
+ /**
3
+ * Qdrant Vector Store
4
+ * High-performance Rust-based vector database integration
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.QdrantVectorStore = void 0;
8
+ class QdrantVectorStore {
9
+ constructor(embeddingProvider, config) {
10
+ this.initialized = false;
11
+ this.embeddingProvider = embeddingProvider;
12
+ this.collectionName = config.collectionName;
13
+ this.vectorSize = config.vectorSize || embeddingProvider.getDimension();
14
+ // Initialize Qdrant client
15
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
16
+ const { QdrantClient: Client } = require('@qdrant/js-client-rest');
17
+ this.client = new Client({
18
+ url: config.url,
19
+ apiKey: config.apiKey,
20
+ });
21
+ }
22
+ async initialize() {
23
+ try {
24
+ // Check if collection exists
25
+ const collections = await this.client.getCollections();
26
+ const exists = collections.collections.some((c) => c.name === this.collectionName);
27
+ if (!exists) {
28
+ // Create collection
29
+ await this.client.createCollection(this.collectionName, {
30
+ vectors: {
31
+ size: this.vectorSize,
32
+ distance: 'Cosine',
33
+ },
34
+ });
35
+ }
36
+ this.initialized = true;
37
+ }
38
+ catch (error) {
39
+ throw new Error(`Failed to initialize Qdrant collection: ${error}`);
40
+ }
41
+ }
42
+ async addDocuments(documents) {
43
+ const ids = [];
44
+ // Generate embeddings for all documents
45
+ const texts = documents.map((doc) => doc.content);
46
+ const embeddings = await this.embeddingProvider.embedBatch(texts);
47
+ // Prepare points for upsert
48
+ const points = documents.map((doc, idx) => {
49
+ const id = doc.id || this.generateId();
50
+ ids.push(id);
51
+ return {
52
+ id,
53
+ vector: embeddings[idx],
54
+ payload: {
55
+ content: doc.content,
56
+ metadata: doc.metadata || {},
57
+ },
58
+ };
59
+ });
60
+ // Upsert to Qdrant
61
+ await this.client.upsert(this.collectionName, {
62
+ wait: true,
63
+ points,
64
+ });
65
+ return ids;
66
+ }
67
+ async search(query, options) {
68
+ // Generate embedding for query
69
+ const queryEmbedding = await this.embeddingProvider.embed(query);
70
+ return this.searchByVector(queryEmbedding, options);
71
+ }
72
+ async searchByVector(embedding, options) {
73
+ const topK = options?.topK || 5;
74
+ const minScore = options?.minScore;
75
+ const filter = options?.filter;
76
+ // Build Qdrant filter
77
+ const qdrantFilter = filter ? this.buildFilter(filter) : undefined;
78
+ // Search Qdrant
79
+ const searchResponse = await this.client.search(this.collectionName, {
80
+ vector: embedding,
81
+ limit: topK,
82
+ filter: qdrantFilter,
83
+ with_payload: true,
84
+ });
85
+ // Transform results
86
+ const results = searchResponse
87
+ .filter((result) => !minScore || result.score >= minScore)
88
+ .map((result) => ({
89
+ id: result.id.toString(),
90
+ content: result.payload.content,
91
+ metadata: result.payload.metadata,
92
+ score: result.score,
93
+ }));
94
+ return results;
95
+ }
96
+ async deleteDocuments(ids) {
97
+ await this.client.delete(this.collectionName, {
98
+ wait: true,
99
+ points: ids,
100
+ });
101
+ }
102
+ async updateDocument(id, document) {
103
+ // Get existing document
104
+ const existing = await this.getDocument(id);
105
+ if (!existing) {
106
+ throw new Error(`Document with id ${id} not found`);
107
+ }
108
+ // Merge updates
109
+ const updated = { ...existing, ...document };
110
+ // Generate new embedding if content changed
111
+ let embedding = existing.embedding;
112
+ if (document.content && document.content !== existing.content) {
113
+ embedding = await this.embeddingProvider.embed(document.content);
114
+ }
115
+ // Upsert updated document
116
+ await this.client.upsert(this.collectionName, {
117
+ wait: true,
118
+ points: [
119
+ {
120
+ id,
121
+ vector: embedding,
122
+ payload: {
123
+ content: updated.content,
124
+ metadata: updated.metadata || {},
125
+ },
126
+ },
127
+ ],
128
+ });
129
+ }
130
+ async getDocument(id) {
131
+ try {
132
+ const response = await this.client.retrieve(this.collectionName, {
133
+ ids: [id],
134
+ with_payload: true,
135
+ with_vector: true,
136
+ });
137
+ if (!response || response.length === 0) {
138
+ return null;
139
+ }
140
+ const point = response[0];
141
+ return {
142
+ id: point.id.toString(),
143
+ content: point.payload.content,
144
+ metadata: point.payload.metadata,
145
+ embedding: point.vector,
146
+ };
147
+ }
148
+ catch {
149
+ return null;
150
+ }
151
+ }
152
+ async clear() {
153
+ // Delete and recreate collection
154
+ await this.client.deleteCollection(this.collectionName);
155
+ await this.initialize();
156
+ }
157
+ buildFilter(filter) {
158
+ // Build Qdrant filter from simple key-value pairs
159
+ const must = [];
160
+ for (const [key, value] of Object.entries(filter)) {
161
+ must.push({
162
+ key: `metadata.${key}`,
163
+ match: { value },
164
+ });
165
+ }
166
+ return { must };
167
+ }
168
+ generateId() {
169
+ return `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
170
+ }
171
+ }
172
+ exports.QdrantVectorStore = QdrantVectorStore;
173
+ //# sourceMappingURL=qdrant.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant.store.js","sourceRoot":"","sources":["../../src/vector-stores/qdrant.store.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAgBH,MAAa,iBAAiB;IAO5B,YAAY,iBAAoC,EAAE,MAAoB;QAF9D,gBAAW,GAAY,KAAK,CAAC;QAGnC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,iBAAiB,CAAC,YAAY,EAAE,CAAC;QAExE,2BAA2B;QAC3B,iEAAiE;QACjE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,6BAA6B;YAC7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CACzC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CACxD,CAAC;YAEF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,oBAAoB;gBACpB,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE;oBACtD,OAAO,EAAE;wBACP,IAAI,EAAE,IAAI,CAAC,UAAU;wBACrB,QAAQ,EAAE,QAAQ;qBACnB;iBACF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAqB;QACtC,MAAM,GAAG,GAAa,EAAE,CAAC;QAEzB,wCAAwC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAElE,4BAA4B;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEb,OAAO;gBACL,EAAE;gBACF,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC;gBACvB,OAAO,EAAE;oBACP,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;iBAC7B;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YAC5C,IAAI,EAAE,IAAI;YACV,MAAM;SACP,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAsB;QAChD,+BAA+B;QAC/B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEjE,OAAO,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAmB,EAAE,OAAsB;QAC9D,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;QACnC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAE/B,sBAAsB;QACtB,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnE,gBAAgB;QAChB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YACnE,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,YAAY;YACpB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,OAAO,GAAmB,cAAc;aAC3C,MAAM,CAAC,CAAC,MAAyB,EAAE,EAAE,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;aAC5E,GAAG,CACF,CAAC,MAIA,EAAE,EAAE,CAAC,CAAC;YACL,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;YACxB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;YAC/B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CACH,CAAC;QAEJ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAa;QACjC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YAC5C,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,QAA2B;QAC1D,wBAAwB;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC;QAED,gBAAgB;QAChB,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;QAE7C,4CAA4C;QAC5C,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACnC,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9D,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;QAED,0BAA0B;QAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YAC5C,IAAI,EAAE,IAAI;YACV,MAAM,EAAE;gBACN;oBACE,EAAE;oBACF,MAAM,EAAE,SAAU;oBAClB,OAAO,EAAE;wBACP,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;qBACjC;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE;gBAC/D,GAAG,EAAE,CAAC,EAAE,CAAC;gBACT,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,OAAO;gBACL,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACvB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;gBAC9B,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;gBAChC,SAAS,EAAE,KAAK,CAAC,MAAM;aACxB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,iCAAiC;QACjC,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAC,MAA+B;QAGjD,kDAAkD;QAClD,MAAM,IAAI,GAAsD,EAAE,CAAC;QAEnE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC;gBACR,GAAG,EAAE,YAAY,GAAG,EAAE;gBACtB,KAAK,EAAE,EAAE,KAAK,EAAE;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAEO,UAAU;QAChB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACxE,CAAC;CACF;AA9MD,8CA8MC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Weaviate Vector Store
3
+ * Open-source vector database with GraphQL API
4
+ */
5
+ import { VectorStore, Document, SearchResult, QueryOptions } from '../types';
6
+ import { EmbeddingProvider } from '../types';
7
+ export interface WeaviateConfig {
8
+ scheme: 'http' | 'https';
9
+ host: string;
10
+ apiKey?: string;
11
+ className: string;
12
+ textKey?: string;
13
+ metadataKeys?: string[];
14
+ }
15
+ export declare class WeaviateVectorStore implements VectorStore {
16
+ private client;
17
+ private embeddingProvider;
18
+ private className;
19
+ private textKey;
20
+ private metadataKeys;
21
+ private initialized;
22
+ constructor(embeddingProvider: EmbeddingProvider, config: WeaviateConfig);
23
+ initialize(): Promise<void>;
24
+ addDocuments(documents: Document[]): Promise<string[]>;
25
+ search(query: string, options?: QueryOptions): Promise<SearchResult[]>;
26
+ searchByVector(embedding: number[], options?: QueryOptions): Promise<SearchResult[]>;
27
+ deleteDocuments(ids: string[]): Promise<void>;
28
+ updateDocument(id: string, document: Partial<Document>): Promise<void>;
29
+ getDocument(id: string): Promise<Document | null>;
30
+ clear(): Promise<void>;
31
+ /**
32
+ * Build Weaviate where filter from simple key-value pairs
33
+ */
34
+ private buildWhereFilter;
35
+ private generateId;
36
+ }
37
+ //# sourceMappingURL=weaviate.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weaviate.store.d.ts","sourceRoot":"","sources":["../../src/vector-stores/weaviate.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;AAM7C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAW;IAC/B,OAAO,CAAC,WAAW,CAAkB;gBAEzB,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc;IAgBlE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC3B,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgCtD,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;IA4CpF,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCtE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAwBjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,UAAU;CAQnB"}
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ /**
3
+ * Weaviate Vector Store
4
+ * Open-source vector database with GraphQL API
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.WeaviateVectorStore = void 0;
8
+ class WeaviateVectorStore {
9
+ constructor(embeddingProvider, config) {
10
+ this.initialized = false;
11
+ this.embeddingProvider = embeddingProvider;
12
+ this.className = config.className;
13
+ this.textKey = config.textKey || 'content';
14
+ this.metadataKeys = config.metadataKeys || ['metadata'];
15
+ // Initialize Weaviate client
16
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
17
+ const weaviate = require('weaviate-ts-client');
18
+ this.client = weaviate.client({
19
+ scheme: config.scheme,
20
+ host: config.host,
21
+ apiKey: config.apiKey ? new weaviate.ApiKey(config.apiKey) : undefined,
22
+ });
23
+ }
24
+ async initialize() {
25
+ try {
26
+ // Check if class exists
27
+ const schema = await this.client.schema.getter().do();
28
+ const classExists = schema.classes?.some((c) => c.class === this.className);
29
+ if (!classExists) {
30
+ // Create class schema
31
+ const classObj = {
32
+ class: this.className,
33
+ vectorizer: 'none', // We provide our own vectors
34
+ properties: [
35
+ {
36
+ name: this.textKey,
37
+ dataType: ['text'],
38
+ description: 'Document content',
39
+ },
40
+ {
41
+ name: 'metadata',
42
+ dataType: ['object'],
43
+ description: 'Document metadata',
44
+ },
45
+ ],
46
+ };
47
+ await this.client.schema.classCreator().withClass(classObj).do();
48
+ }
49
+ this.initialized = true;
50
+ }
51
+ catch (error) {
52
+ throw new Error(`Failed to initialize Weaviate class: ${error}`);
53
+ }
54
+ }
55
+ async addDocuments(documents) {
56
+ const ids = [];
57
+ // Generate embeddings for all documents
58
+ const texts = documents.map((doc) => doc.content);
59
+ const embeddings = await this.embeddingProvider.embedBatch(texts);
60
+ // Batch import
61
+ let batcher = this.client.batch.objectsBatcher();
62
+ for (let i = 0; i < documents.length; i++) {
63
+ const doc = documents[i];
64
+ const id = doc.id || this.generateId();
65
+ ids.push(id);
66
+ const obj = {
67
+ class: this.className,
68
+ id,
69
+ properties: {
70
+ [this.textKey]: doc.content,
71
+ metadata: doc.metadata || {},
72
+ },
73
+ vector: embeddings[i],
74
+ };
75
+ batcher = batcher.withObject(obj);
76
+ }
77
+ await batcher.do();
78
+ return ids;
79
+ }
80
+ async search(query, options) {
81
+ // Generate embedding for query
82
+ const queryEmbedding = await this.embeddingProvider.embed(query);
83
+ return this.searchByVector(queryEmbedding, options);
84
+ }
85
+ async searchByVector(embedding, options) {
86
+ const topK = options?.topK || 5;
87
+ const minScore = options?.minScore;
88
+ try {
89
+ // Build query
90
+ let queryBuilder = this.client.graphql
91
+ .get()
92
+ .withClassName(this.className)
93
+ .withFields(`${this.textKey} metadata _additional { id distance }`)
94
+ .withNearVector({ vector: embedding })
95
+ .withLimit(topK);
96
+ // Add metadata filter if provided
97
+ if (options?.filter) {
98
+ const where = this.buildWhereFilter(options.filter);
99
+ if (where) {
100
+ queryBuilder = queryBuilder.withWhere(where);
101
+ }
102
+ }
103
+ const response = await queryBuilder.do();
104
+ // Transform results
105
+ const results = (response.data.Get[this.className] || [])
106
+ .map((item) => {
107
+ // Convert distance to similarity score (1 - distance for cosine)
108
+ const score = 1 - item._additional.distance;
109
+ return {
110
+ id: item._additional.id,
111
+ content: item[this.textKey],
112
+ metadata: item.metadata,
113
+ score,
114
+ };
115
+ })
116
+ .filter((result) => !minScore || result.score >= minScore);
117
+ return results;
118
+ }
119
+ catch (error) {
120
+ throw new Error(`Weaviate search failed: ${error}`);
121
+ }
122
+ }
123
+ async deleteDocuments(ids) {
124
+ try {
125
+ for (const id of ids) {
126
+ await this.client.data.deleter().withClassName(this.className).withId(id).do();
127
+ }
128
+ }
129
+ catch (error) {
130
+ throw new Error(`Failed to delete documents: ${error}`);
131
+ }
132
+ }
133
+ async updateDocument(id, document) {
134
+ try {
135
+ // Get existing document
136
+ const existing = await this.getDocument(id);
137
+ if (!existing) {
138
+ throw new Error(`Document with id ${id} not found`);
139
+ }
140
+ // Merge updates
141
+ const updated = { ...existing, ...document };
142
+ // Generate new embedding if content changed
143
+ let embedding = existing.embedding;
144
+ if (document.content && document.content !== existing.content) {
145
+ embedding = await this.embeddingProvider.embed(document.content);
146
+ }
147
+ // Update in Weaviate
148
+ await this.client.data
149
+ .updater()
150
+ .withClassName(this.className)
151
+ .withId(id)
152
+ .withProperties({
153
+ [this.textKey]: updated.content,
154
+ metadata: updated.metadata || {},
155
+ })
156
+ .withVector(embedding)
157
+ .do();
158
+ }
159
+ catch (error) {
160
+ throw new Error(`Failed to update document: ${error}`);
161
+ }
162
+ }
163
+ async getDocument(id) {
164
+ try {
165
+ const response = await this.client.data
166
+ .getterById()
167
+ .withClassName(this.className)
168
+ .withId(id)
169
+ .withVector()
170
+ .do();
171
+ if (!response) {
172
+ return null;
173
+ }
174
+ return {
175
+ id: response.id,
176
+ content: response.properties[this.textKey],
177
+ metadata: response.properties.metadata,
178
+ embedding: response.vector,
179
+ };
180
+ }
181
+ catch {
182
+ return null;
183
+ }
184
+ }
185
+ async clear() {
186
+ try {
187
+ // Delete all objects of this class
188
+ await this.client.schema.classDeleter().withClassName(this.className).do();
189
+ // Recreate the class
190
+ await this.initialize();
191
+ }
192
+ catch (error) {
193
+ throw new Error(`Failed to clear vector store: ${error}`);
194
+ }
195
+ }
196
+ /**
197
+ * Build Weaviate where filter from simple key-value pairs
198
+ */
199
+ buildWhereFilter(filter) {
200
+ const conditions = Object.entries(filter).map(([key, value]) => ({
201
+ path: ['metadata', key],
202
+ operator: 'Equal',
203
+ valueText: String(value),
204
+ }));
205
+ if (conditions.length === 0) {
206
+ return undefined;
207
+ }
208
+ if (conditions.length === 1) {
209
+ return conditions[0];
210
+ }
211
+ return {
212
+ operator: 'And',
213
+ operands: conditions,
214
+ };
215
+ }
216
+ generateId() {
217
+ // Weaviate uses UUID format
218
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
219
+ const r = (Math.random() * 16) | 0;
220
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
221
+ return v.toString(16);
222
+ });
223
+ }
224
+ }
225
+ exports.WeaviateVectorStore = WeaviateVectorStore;
226
+ //# sourceMappingURL=weaviate.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weaviate.store.js","sourceRoot":"","sources":["../../src/vector-stores/weaviate.store.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "@hazeljs/rag",
3
+ "version": "0.2.0-beta.1",
4
+ "description": "Retrieval-Augmented Generation (RAG) and vector search for HazelJS framework",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "scripts": {
11
+ "build": "tsc --skipLibCheck",
12
+ "test": "jest --coverage --passWithNoTests",
13
+ "lint": "eslint \"src/**/*.ts\"",
14
+ "lint:fix": "eslint \"src/**/*.ts\" --fix",
15
+ "clean": "rm -rf dist"
16
+ },
17
+ "dependencies": {
18
+ "@hazeljs/core": "file:../core",
19
+ "@hazeljs/ai": "file:../ai",
20
+ "reflect-metadata": "^0.2.1"
21
+ },
22
+ "peerDependencies": {
23
+ "@pinecone-database/pinecone": "^3.0.0",
24
+ "weaviate-ts-client": "^2.0.0",
25
+ "@qdrant/js-client-rest": "^1.9.0",
26
+ "chromadb": "^1.8.0",
27
+ "openai": "^4.0.0",
28
+ "cohere-ai": "^7.0.0",
29
+ "@huggingface/inference": "^2.0.0"
30
+ },
31
+ "peerDependenciesMeta": {
32
+ "@pinecone-database/pinecone": {
33
+ "optional": true
34
+ },
35
+ "weaviate-ts-client": {
36
+ "optional": true
37
+ },
38
+ "@qdrant/js-client-rest": {
39
+ "optional": true
40
+ },
41
+ "chromadb": {
42
+ "optional": true
43
+ },
44
+ "openai": {
45
+ "optional": true
46
+ },
47
+ "cohere-ai": {
48
+ "optional": true
49
+ },
50
+ "@huggingface/inference": {
51
+ "optional": true
52
+ }
53
+ },
54
+ "devDependencies": {
55
+ "@types/node": "^20.17.50",
56
+ "@typescript-eslint/eslint-plugin": "^8.18.2",
57
+ "@typescript-eslint/parser": "^8.18.2",
58
+ "eslint": "^8.56.0",
59
+ "jest": "^29.7.0",
60
+ "ts-jest": "^29.1.2",
61
+ "typescript": "^5.3.3"
62
+ },
63
+ "publishConfig": {
64
+ "access": "public"
65
+ },
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "git+https://github.com/hazeljs/hazeljs.git",
69
+ "directory": "packages/rag"
70
+ },
71
+ "keywords": [
72
+ "hazeljs",
73
+ "rag",
74
+ "retrieval-augmented-generation",
75
+ "vector-search",
76
+ "embeddings",
77
+ "semantic-search",
78
+ "pinecone",
79
+ "weaviate",
80
+ "qdrant",
81
+ "chromadb",
82
+ "ai",
83
+ "llm"
84
+ ],
85
+ "author": "Muhammad Arslan <marslan@hazeljs.com>",
86
+ "license": "MIT"
87
+ }