@cogitator-ai/rag 0.1.10 → 0.3.0

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 (81) hide show
  1. package/README.md +66 -31
  2. package/dist/chunkers/create-chunker.js.map +1 -1
  3. package/dist/chunkers/index.d.ts.map +1 -1
  4. package/dist/chunkers/index.js.map +1 -1
  5. package/dist/chunkers/recursive-chunker.d.ts +1 -2
  6. package/dist/chunkers/recursive-chunker.d.ts.map +1 -1
  7. package/dist/chunkers/recursive-chunker.js +68 -58
  8. package/dist/chunkers/recursive-chunker.js.map +1 -1
  9. package/dist/chunkers/semantic-chunker.d.ts.map +1 -1
  10. package/dist/chunkers/semantic-chunker.js +5 -2
  11. package/dist/chunkers/semantic-chunker.js.map +1 -1
  12. package/dist/index.d.ts +2 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +4 -2
  15. package/dist/index.js.map +1 -1
  16. package/dist/loaders/csv-loader.d.ts.map +1 -1
  17. package/dist/loaders/csv-loader.js +9 -4
  18. package/dist/loaders/csv-loader.js.map +1 -1
  19. package/dist/loaders/html-loader.d.ts +4 -0
  20. package/dist/loaders/html-loader.d.ts.map +1 -1
  21. package/dist/loaders/html-loader.js +26 -2
  22. package/dist/loaders/html-loader.js.map +1 -1
  23. package/dist/loaders/index.d.ts.map +1 -1
  24. package/dist/loaders/index.js.map +1 -1
  25. package/dist/loaders/json-loader.js +1 -1
  26. package/dist/loaders/json-loader.js.map +1 -1
  27. package/dist/loaders/markdown-loader.d.ts.map +1 -1
  28. package/dist/loaders/markdown-loader.js +7 -3
  29. package/dist/loaders/markdown-loader.js.map +1 -1
  30. package/dist/loaders/pdf-loader.d.ts +3 -3
  31. package/dist/loaders/pdf-loader.d.ts.map +1 -1
  32. package/dist/loaders/pdf-loader.js +45 -42
  33. package/dist/loaders/pdf-loader.js.map +1 -1
  34. package/dist/loaders/text-loader.js +1 -1
  35. package/dist/loaders/text-loader.js.map +1 -1
  36. package/dist/loaders/web-loader.d.ts +29 -1
  37. package/dist/loaders/web-loader.d.ts.map +1 -1
  38. package/dist/loaders/web-loader.js +227 -92
  39. package/dist/loaders/web-loader.js.map +1 -1
  40. package/dist/rag-builder.d.ts +10 -1
  41. package/dist/rag-builder.d.ts.map +1 -1
  42. package/dist/rag-builder.js +70 -7
  43. package/dist/rag-builder.js.map +1 -1
  44. package/dist/rag-pipeline.d.ts +1 -0
  45. package/dist/rag-pipeline.d.ts.map +1 -1
  46. package/dist/rag-pipeline.js +55 -19
  47. package/dist/rag-pipeline.js.map +1 -1
  48. package/dist/rerankers/index.d.ts.map +1 -1
  49. package/dist/rerankers/index.js.map +1 -1
  50. package/dist/retrievers/chunk-indexer.d.ts +19 -0
  51. package/dist/retrievers/chunk-indexer.d.ts.map +1 -0
  52. package/dist/retrievers/chunk-indexer.js +8 -0
  53. package/dist/retrievers/chunk-indexer.js.map +1 -0
  54. package/dist/retrievers/create-retriever.d.ts +1 -0
  55. package/dist/retrievers/create-retriever.d.ts.map +1 -1
  56. package/dist/retrievers/create-retriever.js +1 -0
  57. package/dist/retrievers/create-retriever.js.map +1 -1
  58. package/dist/retrievers/hybrid-retriever.d.ts +8 -1
  59. package/dist/retrievers/hybrid-retriever.d.ts.map +1 -1
  60. package/dist/retrievers/hybrid-retriever.js +18 -5
  61. package/dist/retrievers/hybrid-retriever.js.map +1 -1
  62. package/dist/retrievers/index.d.ts +2 -0
  63. package/dist/retrievers/index.d.ts.map +1 -1
  64. package/dist/retrievers/index.js +1 -0
  65. package/dist/retrievers/index.js.map +1 -1
  66. package/dist/retrievers/mmr-retriever.d.ts +5 -0
  67. package/dist/retrievers/mmr-retriever.d.ts.map +1 -1
  68. package/dist/retrievers/mmr-retriever.js +24 -2
  69. package/dist/retrievers/mmr-retriever.js.map +1 -1
  70. package/dist/retrievers/multi-query-retriever.d.ts +12 -1
  71. package/dist/retrievers/multi-query-retriever.d.ts.map +1 -1
  72. package/dist/retrievers/multi-query-retriever.js +46 -7
  73. package/dist/retrievers/multi-query-retriever.js.map +1 -1
  74. package/dist/retrievers/similarity-retriever.d.ts.map +1 -1
  75. package/dist/retrievers/similarity-retriever.js +2 -1
  76. package/dist/retrievers/similarity-retriever.js.map +1 -1
  77. package/dist/tools.d.ts +11 -2
  78. package/dist/tools.d.ts.map +1 -1
  79. package/dist/tools.js +39 -7
  80. package/dist/tools.js.map +1 -1
  81. package/package.json +15 -14
@@ -1,36 +1,110 @@
1
- import { lookup } from 'node:dns/promises';
2
- import { isIP } from 'node:net';
1
+ import { lookup as dnsLookup } from 'node:dns';
2
+ import http from 'node:http';
3
+ import https from 'node:https';
4
+ import { BlockList, isIP } from 'node:net';
5
+ import { createBrotliDecompress, createGunzip, createInflate } from 'node:zlib';
6
+ import { nanoid } from 'nanoid';
3
7
  import { HTMLLoader } from './html-loader.js';
4
- const BLOCKED_HOSTNAMES = new Set([
5
- 'localhost',
6
- '127.0.0.1',
7
- '::1',
8
- '[::1]',
9
- '0.0.0.0',
10
- '169.254.169.254',
11
- 'metadata.google.internal',
12
- ]);
13
8
  const MAX_REDIRECTS = 5;
14
- function isPrivateIP(ip) {
15
- if (ip.startsWith('10.'))
16
- return true;
17
- if (ip.startsWith('192.168.'))
18
- return true;
19
- if (ip === '0.0.0.0' || ip === '127.0.0.1' || ip === '::1')
20
- return true;
21
- if (ip.startsWith('169.254.'))
22
- return true;
23
- if (ip.startsWith('fc') || ip.startsWith('fd') || ip.startsWith('fe80'))
24
- return true;
25
- const match172 = /^172\.(\d+)\./.exec(ip);
26
- if (match172) {
27
- const second = parseInt(match172[1], 10);
28
- if (second >= 16 && second <= 31)
29
- return true;
9
+ const DEFAULT_TIMEOUT_MS = 30_000;
10
+ const DEFAULT_MAX_RESPONSE_BYTES = 50 * 1024 * 1024;
11
+ const BLOCKED_HOSTNAMES = new Set(['localhost', 'metadata.google.internal', 'metadata']);
12
+ const PRIVATE_RANGES = new BlockList();
13
+ for (const [network, prefix] of [
14
+ ['0.0.0.0', 8],
15
+ ['10.0.0.0', 8],
16
+ ['100.64.0.0', 10],
17
+ ['127.0.0.0', 8],
18
+ ['169.254.0.0', 16],
19
+ ['172.16.0.0', 12],
20
+ ['192.0.0.0', 24],
21
+ ['192.168.0.0', 16],
22
+ ['198.18.0.0', 15],
23
+ ['224.0.0.0', 4],
24
+ ['240.0.0.0', 4],
25
+ ]) {
26
+ PRIVATE_RANGES.addSubnet(network, prefix, 'ipv4');
27
+ }
28
+ for (const [network, prefix] of [
29
+ ['::', 128],
30
+ ['::1', 128],
31
+ ['fc00::', 7],
32
+ ['fe80::', 10],
33
+ ['ff00::', 8],
34
+ ]) {
35
+ PRIVATE_RANGES.addSubnet(network, prefix, 'ipv6');
36
+ }
37
+ function embeddedIPv4(ipv6) {
38
+ const lower = ipv6.toLowerCase();
39
+ const prefixes = ['::ffff:', '64:ff9b::', '::'];
40
+ for (const prefix of prefixes) {
41
+ if (!lower.startsWith(prefix))
42
+ continue;
43
+ const rest = lower.slice(prefix.length);
44
+ if (isIP(rest) === 4)
45
+ return rest;
46
+ const hex = /^([0-9a-f]{1,4}):([0-9a-f]{1,4})$/.exec(rest);
47
+ if (hex) {
48
+ const high = parseInt(hex[1], 16);
49
+ const low = parseInt(hex[2], 16);
50
+ return [high >> 8, high & 0xff, low >> 8, low & 0xff].join('.');
51
+ }
52
+ }
53
+ return null;
54
+ }
55
+ /**
56
+ * Whether an IP address points to a loopback, private, link-local, CGNAT, multicast or
57
+ * otherwise non-public network (including IPv4-mapped / NAT64 IPv6 forms).
58
+ */
59
+ export function isBlockedAddress(address) {
60
+ const ip = address.replace(/^\[|\]$/g, '');
61
+ const family = isIP(ip);
62
+ if (family === 4)
63
+ return PRIVATE_RANGES.check(ip, 'ipv4');
64
+ if (family === 6) {
65
+ const v4 = embeddedIPv4(ip);
66
+ if (v4)
67
+ return PRIVATE_RANGES.check(v4, 'ipv4');
68
+ return PRIVATE_RANGES.check(ip, 'ipv6');
30
69
  }
31
70
  return false;
32
71
  }
33
- async function validateUrl(urlString) {
72
+ const systemResolver = (hostname, callback) => {
73
+ dnsLookup(hostname, { all: true, verbatim: true }, callback);
74
+ };
75
+ /**
76
+ * DNS lookup for `http.request` that rejects private addresses at connect time,
77
+ * which also defeats DNS-rebinding between validation and connection.
78
+ */
79
+ export function createGuardedLookup(resolver = systemResolver) {
80
+ return (hostname, options, callback) => {
81
+ resolver(hostname, (err, addresses) => {
82
+ if (err) {
83
+ callback(err, []);
84
+ return;
85
+ }
86
+ const candidates = addresses.filter((entry) => !options.family || entry.family === options.family);
87
+ const blocked = candidates.find((entry) => isBlockedAddress(entry.address));
88
+ if (blocked) {
89
+ callback(Object.assign(new Error(`WebLoader: "${hostname}" resolves to private IP ${blocked.address} — blocked`), { code: 'EBLOCKED' }), []);
90
+ return;
91
+ }
92
+ if (candidates.length === 0) {
93
+ callback(Object.assign(new Error(`WebLoader: no addresses found for "${hostname}"`), {
94
+ code: 'ENOTFOUND',
95
+ }), []);
96
+ return;
97
+ }
98
+ if (options.all) {
99
+ callback(null, candidates);
100
+ }
101
+ else {
102
+ callback(null, candidates[0].address, candidates[0].family);
103
+ }
104
+ });
105
+ };
106
+ }
107
+ function parseUrl(urlString, allowPrivateNetwork) {
34
108
  let url;
35
109
  try {
36
110
  url = new URL(urlString);
@@ -41,101 +115,162 @@ async function validateUrl(urlString) {
41
115
  if (url.protocol !== 'http:' && url.protocol !== 'https:') {
42
116
  throw new Error(`WebLoader: unsupported protocol "${url.protocol}" — only http and https are allowed`);
43
117
  }
44
- const hostname = url.hostname.toLowerCase();
45
- if (BLOCKED_HOSTNAMES.has(hostname)) {
118
+ if (allowPrivateNetwork)
119
+ return url;
120
+ const hostname = url.hostname
121
+ .toLowerCase()
122
+ .replace(/^\[|\]$/g, '')
123
+ .replace(/\.$/, '');
124
+ if (BLOCKED_HOSTNAMES.has(hostname) || hostname.endsWith('.localhost')) {
46
125
  throw new Error(`WebLoader: access to "${hostname}" is blocked (loopback / metadata endpoint)`);
47
126
  }
48
- if (isIP(hostname) && isPrivateIP(hostname)) {
127
+ if (isIP(hostname) && isBlockedAddress(hostname)) {
49
128
  throw new Error(`WebLoader: access to private IP "${hostname}" is blocked`);
50
129
  }
51
- if (!isIP(hostname)) {
130
+ return url;
131
+ }
132
+ function decodeBody(body, contentType) {
133
+ const charset = /charset\s*=\s*"?([\w.:-]+)"?/i.exec(contentType)?.[1];
134
+ if (charset) {
52
135
  try {
53
- const { address } = await lookup(hostname);
54
- if (isPrivateIP(address)) {
55
- throw new Error(`WebLoader: "${hostname}" resolves to private IP ${address} — blocked`);
56
- }
136
+ return new TextDecoder(charset).decode(body);
57
137
  }
58
- catch (err) {
59
- if (err instanceof Error && err.message.startsWith('WebLoader:'))
60
- throw err;
138
+ catch {
139
+ return new TextDecoder('utf-8').decode(body);
61
140
  }
62
141
  }
63
- return url;
142
+ return new TextDecoder('utf-8').decode(body);
64
143
  }
65
- const DEFAULT_TIMEOUT_MS = 30_000;
66
- const DEFAULT_MAX_RESPONSE_BYTES = 50 * 1024 * 1024;
144
+ function decompress(response) {
145
+ const encoding = (response.headers['content-encoding'] ?? '').toLowerCase().trim();
146
+ switch (encoding) {
147
+ case 'gzip':
148
+ case 'x-gzip':
149
+ return response.pipe(createGunzip());
150
+ case 'deflate':
151
+ return response.pipe(createInflate());
152
+ case 'br':
153
+ return response.pipe(createBrotliDecompress());
154
+ default:
155
+ return response;
156
+ }
157
+ }
158
+ /**
159
+ * Loads a web page over http(s). HTML is converted to text (scripts and styles removed);
160
+ * plain-text and JSON responses are kept as-is. Redirects are followed (max 5) and every
161
+ * hop — including DNS resolution at connect time — is checked against private networks.
162
+ */
67
163
  export class WebLoader {
68
164
  supportedTypes = ['http', 'https'];
69
165
  htmlLoader;
70
166
  headers;
71
167
  timeoutMs;
72
168
  maxResponseBytes;
169
+ allowPrivateNetwork;
170
+ lookup = createGuardedLookup();
73
171
  constructor(options) {
74
172
  this.htmlLoader = new HTMLLoader({ selector: options?.selector });
75
173
  this.headers = options?.headers;
76
174
  this.timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
77
175
  this.maxResponseBytes = options?.maxResponseBytes ?? DEFAULT_MAX_RESPONSE_BYTES;
176
+ this.allowPrivateNetwork = options?.allowPrivateNetwork ?? false;
78
177
  }
79
178
  async load(source) {
80
- let currentUrl = source;
81
- for (let redirectCount = 0; redirectCount <= MAX_REDIRECTS; redirectCount++) {
82
- await validateUrl(currentUrl);
83
- const response = await fetch(currentUrl, {
84
- headers: this.headers ?? {},
85
- redirect: 'manual',
86
- signal: AbortSignal.timeout(this.timeoutMs),
87
- });
88
- if (response.status >= 300 && response.status < 400) {
89
- const location = response.headers.get('location');
179
+ const page = await this.fetchPage(source);
180
+ const mime = page.contentType.split(';')[0].trim().toLowerCase();
181
+ if (mime === '' || mime.includes('html') || mime.endsWith('/xml') || mime.endsWith('+xml')) {
182
+ const doc = await this.htmlLoader.parseHTML(page.body, source, 'web');
183
+ return [
184
+ { ...doc, metadata: { ...doc.metadata, url: page.url, contentType: mime || 'text/html' } },
185
+ ];
186
+ }
187
+ if (mime.startsWith('text/') || mime === 'application/json' || mime.endsWith('+json')) {
188
+ return [
189
+ {
190
+ id: nanoid(),
191
+ content: page.body,
192
+ source,
193
+ sourceType: 'web',
194
+ metadata: { url: page.url, contentType: mime },
195
+ },
196
+ ];
197
+ }
198
+ throw new Error(`WebLoader: unsupported content type "${mime}" from ${page.url}`);
199
+ }
200
+ async fetchPage(source) {
201
+ let current = parseUrl(source, this.allowPrivateNetwork);
202
+ for (let redirects = 0; redirects <= MAX_REDIRECTS; redirects++) {
203
+ const response = await this.request(current);
204
+ const status = response.statusCode ?? 0;
205
+ if (status >= 300 && status < 400) {
206
+ response.resume();
207
+ const location = response.headers.location;
90
208
  if (!location) {
91
- throw new Error(`WebLoader: redirect ${response.status} without Location header from ${currentUrl}`);
209
+ throw new Error(`WebLoader: redirect ${status} without Location header from ${current.href}`);
92
210
  }
93
- currentUrl = new URL(location, currentUrl).href;
211
+ current = parseUrl(new URL(location, current).href, this.allowPrivateNetwork);
94
212
  continue;
95
213
  }
96
- if (!response.ok) {
97
- throw new Error(`WebLoader: failed to fetch ${currentUrl}: ${response.status} ${response.statusText}`);
214
+ if (status < 200 || status >= 300) {
215
+ response.resume();
216
+ throw new Error(`WebLoader: failed to fetch ${current.href}: ${status} ${response.statusMessage ?? ''}`.trim());
98
217
  }
99
- const html = await this.readBodyWithLimit(response, currentUrl);
100
- const doc = await this.htmlLoader.parseHTML(html, source, 'web');
101
- return [doc];
218
+ const contentType = response.headers['content-type'] ?? '';
219
+ const body = await this.readBody(response, current.href);
220
+ return { url: current.href, contentType, body: decodeBody(body, contentType) };
102
221
  }
103
222
  throw new Error(`WebLoader: too many redirects (max ${MAX_REDIRECTS}) for ${source}`);
104
223
  }
105
- async readBodyWithLimit(response, url) {
106
- const body = response.body;
107
- if (!body) {
108
- const text = await response.text();
109
- if (text.length > this.maxResponseBytes) {
110
- throw new Error(`WebLoader: response from ${url} exceeds ${this.maxResponseBytes} bytes limit`);
111
- }
112
- return text;
113
- }
114
- const reader = body.getReader();
115
- const chunks = [];
116
- let totalBytes = 0;
117
- try {
118
- for (;;) {
119
- const { done, value } = await reader.read();
120
- if (done)
121
- break;
122
- totalBytes += value.byteLength;
123
- if (totalBytes > this.maxResponseBytes) {
124
- throw new Error(`WebLoader: response from ${url} exceeds ${this.maxResponseBytes} bytes limit`);
224
+ request(url) {
225
+ const transport = url.protocol === 'https:' ? https : http;
226
+ return new Promise((resolve, reject) => {
227
+ const req = transport.get(url, {
228
+ headers: {
229
+ 'user-agent': 'cogitator-rag-webloader',
230
+ accept: 'text/html,application/xhtml+xml,text/plain;q=0.9,*/*;q=0.5',
231
+ 'accept-encoding': 'gzip, deflate, br',
232
+ ...this.headers,
233
+ },
234
+ signal: AbortSignal.timeout(this.timeoutMs),
235
+ ...(!this.allowPrivateNetwork && { lookup: this.lookup }),
236
+ });
237
+ req.once('response', resolve);
238
+ req.once('error', (err) => {
239
+ if (err.message.startsWith('WebLoader:')) {
240
+ reject(err);
125
241
  }
126
- chunks.push(value);
127
- }
128
- }
129
- finally {
130
- reader.releaseLock();
131
- }
132
- const merged = new Uint8Array(totalBytes);
133
- let offset = 0;
134
- for (const chunk of chunks) {
135
- merged.set(chunk, offset);
136
- offset += chunk.byteLength;
137
- }
138
- return new TextDecoder('utf-8').decode(merged);
242
+ else if (err.name === 'AbortError' || err.code === 'ABORT_ERR') {
243
+ reject(new Error(`WebLoader: request to ${url.href} timed out after ${this.timeoutMs}ms`));
244
+ }
245
+ else {
246
+ reject(new Error(`WebLoader: request to ${url.href} failed: ${err.message}`));
247
+ }
248
+ });
249
+ });
250
+ }
251
+ readBody(response, url) {
252
+ const stream = decompress(response);
253
+ return new Promise((resolve, reject) => {
254
+ const chunks = [];
255
+ let total = 0;
256
+ stream.on('data', (chunk) => {
257
+ total += chunk.length;
258
+ if (total > this.maxResponseBytes) {
259
+ response.destroy();
260
+ stream.destroy();
261
+ reject(new Error(`WebLoader: response from ${url} exceeds ${this.maxResponseBytes} bytes limit`));
262
+ return;
263
+ }
264
+ chunks.push(chunk);
265
+ });
266
+ stream.once('end', () => resolve(Buffer.concat(chunks)));
267
+ stream.once('error', (err) => {
268
+ reject(new Error(`WebLoader: failed to read response from ${url}: ${err.message}`));
269
+ });
270
+ response.once('error', (err) => {
271
+ reject(new Error(`WebLoader: failed to read response from ${url}: ${err.message}`));
272
+ });
273
+ });
139
274
  }
140
275
  }
141
276
  //# sourceMappingURL=web-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-loader.js","sourceRoot":"","sources":["../../src/loaders/web-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-loader.js","sourceRoot":"","sources":["../../src/loaders/web-loader.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { DocumentLoader, Chunker, AsyncChunker, EmbeddingService, EmbeddingAdapter, Retriever, Reranker } from '@cogitator-ai/types';
1
+ import type { DocumentLoader, Chunker, AsyncChunker, EmbeddingService, EmbeddingAdapter, Retriever, Reranker, HybridSearchWeights } from '@cogitator-ai/types';
2
+ import type { HybridSearch } from '@cogitator-ai/memory';
2
3
  import { type RAGPipelineConfigInput } from './schema.js';
3
4
  import { RAGPipeline } from './rag-pipeline.js';
4
5
  export declare class RAGPipelineBuilder {
@@ -9,14 +10,22 @@ export declare class RAGPipelineBuilder {
9
10
  private retriever?;
10
11
  private reranker?;
11
12
  private configInput?;
13
+ private hybridSearch?;
14
+ private hybridWeights?;
15
+ private queryExpander?;
12
16
  withLoader(loader: DocumentLoader): this;
13
17
  withChunker(chunker: Chunker | AsyncChunker): this;
14
18
  withEmbeddingService(service: EmbeddingService): this;
15
19
  withEmbeddingAdapter(adapter: EmbeddingAdapter): this;
16
20
  withRetriever(retriever: Retriever): this;
17
21
  withReranker(reranker: Reranker): this;
22
+ /** HybridSearch used by the `hybrid` strategy (and as the multi-query base when set). */
23
+ withHybridSearch(hybridSearch: HybridSearch, weights?: HybridSearchWeights): this;
24
+ /** Query expansion function used by the `multi-query` strategy. */
25
+ withQueryExpander(expandQuery: (query: string) => Promise<string[]>): this;
18
26
  withConfig(config: RAGPipelineConfigInput): this;
19
27
  build(): RAGPipeline;
28
+ private createRetriever;
20
29
  private resolveConfig;
21
30
  }
22
31
  //# sourceMappingURL=rag-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rag-builder.d.ts","sourceRoot":"","sources":["../src/rag-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EAET,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAC,CAAyB;IACzC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAyB;IAE7C,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAKxC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAKlD,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAKrD,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAKrD,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKzC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKtC,UAAU,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAKhD,KAAK,IAAI,WAAW;IAoCpB,OAAO,CAAC,aAAa;CAMtB"}
1
+ {"version":3,"file":"rag-builder.d.ts","sourceRoot":"","sources":["../src/rag-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EAER,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAC,CAAyB;IACzC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAyB;IAC7C,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,aAAa,CAAC,CAAsB;IAC5C,OAAO,CAAC,aAAa,CAAC,CAAuC;IAE7D,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAKxC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAKlD,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAKrD,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAKrD,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKzC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKtC,yFAAyF;IACzF,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAMjF,mEAAmE;IACnE,iBAAiB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAK1E,UAAU,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAKhD,KAAK,IAAI,WAAW;IA8BpB,OAAO,CAAC,eAAe;IAmEvB,OAAO,CAAC,aAAa;CAMtB"}
@@ -2,6 +2,9 @@ import { RAGPipelineConfigSchema } from './schema.js';
2
2
  import { RAGPipeline } from './rag-pipeline.js';
3
3
  import { createChunker } from './chunkers/create-chunker.js';
4
4
  import { SimilarityRetriever } from './retrievers/similarity-retriever.js';
5
+ import { MMRRetriever } from './retrievers/mmr-retriever.js';
6
+ import { HybridRetriever } from './retrievers/hybrid-retriever.js';
7
+ import { MultiQueryRetriever } from './retrievers/multi-query-retriever.js';
5
8
  export class RAGPipelineBuilder {
6
9
  loader;
7
10
  chunker;
@@ -10,6 +13,9 @@ export class RAGPipelineBuilder {
10
13
  retriever;
11
14
  reranker;
12
15
  configInput;
16
+ hybridSearch;
17
+ hybridWeights;
18
+ queryExpander;
13
19
  withLoader(loader) {
14
20
  this.loader = loader;
15
21
  return this;
@@ -34,6 +40,17 @@ export class RAGPipelineBuilder {
34
40
  this.reranker = reranker;
35
41
  return this;
36
42
  }
43
+ /** HybridSearch used by the `hybrid` strategy (and as the multi-query base when set). */
44
+ withHybridSearch(hybridSearch, weights) {
45
+ this.hybridSearch = hybridSearch;
46
+ this.hybridWeights = weights;
47
+ return this;
48
+ }
49
+ /** Query expansion function used by the `multi-query` strategy. */
50
+ withQueryExpander(expandQuery) {
51
+ this.queryExpander = expandQuery;
52
+ return this;
53
+ }
37
54
  withConfig(config) {
38
55
  this.configInput = config;
39
56
  return this;
@@ -50,13 +67,7 @@ export class RAGPipelineBuilder {
50
67
  }
51
68
  const config = this.resolveConfig();
52
69
  const chunker = this.chunker ?? createChunker(config.chunking, this.embeddingService);
53
- const retriever = this.retriever ??
54
- new SimilarityRetriever({
55
- embeddingAdapter: this.embeddingAdapter,
56
- embeddingService: this.embeddingService,
57
- defaultTopK: config.retrieval.topK,
58
- defaultThreshold: config.retrieval.threshold,
59
- });
70
+ const retriever = this.retriever ?? this.createRetriever(config, this.embeddingService, this.embeddingAdapter);
60
71
  return new RAGPipeline(config, {
61
72
  loader: this.loader,
62
73
  chunker,
@@ -66,6 +77,58 @@ export class RAGPipelineBuilder {
66
77
  reranker: this.reranker,
67
78
  }, true);
68
79
  }
80
+ createRetriever(config, embeddingService, embeddingAdapter) {
81
+ const { retrieval } = config;
82
+ const vectorRetriever = () => this.hybridSearch
83
+ ? new HybridRetriever({
84
+ hybridSearch: this.hybridSearch,
85
+ defaultWeights: this.hybridWeights,
86
+ defaultTopK: retrieval.topK,
87
+ defaultThreshold: retrieval.threshold,
88
+ })
89
+ : new SimilarityRetriever({
90
+ embeddingAdapter,
91
+ embeddingService,
92
+ defaultTopK: retrieval.topK,
93
+ defaultThreshold: retrieval.threshold,
94
+ });
95
+ switch (retrieval.strategy) {
96
+ case 'similarity':
97
+ return new SimilarityRetriever({
98
+ embeddingAdapter,
99
+ embeddingService,
100
+ defaultTopK: retrieval.topK,
101
+ defaultThreshold: retrieval.threshold,
102
+ });
103
+ case 'mmr':
104
+ return new MMRRetriever({
105
+ embeddingAdapter,
106
+ embeddingService,
107
+ defaultLambda: retrieval.mmrLambda,
108
+ defaultTopK: retrieval.topK,
109
+ defaultThreshold: retrieval.threshold,
110
+ });
111
+ case 'hybrid':
112
+ if (!this.hybridSearch) {
113
+ throw new Error('retrieval strategy "hybrid" requires withHybridSearch() (or a custom withRetriever())');
114
+ }
115
+ return vectorRetriever();
116
+ case 'multi-query':
117
+ if (!this.queryExpander) {
118
+ throw new Error('retrieval strategy "multi-query" requires withQueryExpander() (or a custom withRetriever())');
119
+ }
120
+ return new MultiQueryRetriever({
121
+ baseRetriever: vectorRetriever(),
122
+ expandQuery: this.queryExpander,
123
+ defaultTopK: retrieval.topK,
124
+ defaultMaxQueries: retrieval.multiQueryCount,
125
+ });
126
+ default: {
127
+ const exhaustive = retrieval.strategy;
128
+ throw new Error(`Unknown retrieval strategy: ${String(exhaustive)}`);
129
+ }
130
+ }
131
+ }
69
132
  resolveConfig() {
70
133
  if (!this.configInput) {
71
134
  throw new Error('config is required — call withConfig() before build()');
@@ -1 +1 @@
1
- {"version":3,"file":"rag-builder.js","sourceRoot":"","sources":["../src/rag-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rag-builder.js","sourceRoot":"","sources":["../src/rag-builder.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export declare class RAGPipeline {
23
23
  queriesProcessed: number;
24
24
  };
25
25
  private chunkDocument;
26
+ private storeChunks;
26
27
  private storeChunk;
27
28
  }
28
29
  //# sourceMappingURL=rag-pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rag-pipeline.d.ts","sourceRoot":"","sources":["../src/rag-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,eAAe,EAGhB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IACvC,OAAO,CAAC,KAAK,CAAkE;gBAEnE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,UAAQ;IAK7E,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA4BtE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAYzF,QAAQ;;;;;YAIM,aAAa;YAIb,UAAU;CAkBzB"}
1
+ {"version":3,"file":"rag-pipeline.d.ts","sourceRoot":"","sources":["../src/rag-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,eAAe,EAGhB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AASD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IACvC,OAAO,CAAC,KAAK,CAAkE;gBAEnE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,UAAQ;IAK7E,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA2BtE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAezF,QAAQ;;;;;YAIM,aAAa;YAKb,WAAW;YAiBX,UAAU;CAkCzB"}