@carlonicora/nestjs-neo4jsonapi 1.104.0 → 1.105.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.
- package/dist/config/base.config.d.ts.map +1 -1
- package/dist/config/base.config.js +5 -0
- package/dist/config/base.config.js.map +1 -1
- package/dist/config/interfaces/base.config.interface.d.ts +2 -0
- package/dist/config/interfaces/base.config.interface.d.ts.map +1 -1
- package/dist/config/interfaces/config.chunker.interface.d.ts +10 -0
- package/dist/config/interfaces/config.chunker.interface.d.ts.map +1 -0
- package/dist/config/interfaces/config.chunker.interface.js +3 -0
- package/dist/config/interfaces/config.chunker.interface.js.map +1 -0
- package/dist/config/interfaces/index.d.ts +1 -0
- package/dist/config/interfaces/index.d.ts.map +1 -1
- package/dist/config/interfaces/index.js +1 -0
- package/dist/config/interfaces/index.js.map +1 -1
- package/dist/core/llm/services/model.service.d.ts.map +1 -1
- package/dist/core/llm/services/model.service.js +18 -34
- package/dist/core/llm/services/model.service.js.map +1 -1
- package/dist/foundations/chunker/chunker.module.d.ts.map +1 -1
- package/dist/foundations/chunker/chunker.module.js +2 -0
- package/dist/foundations/chunker/chunker.module.js.map +1 -1
- package/dist/foundations/chunker/services/chunker.service.d.ts +20 -12
- package/dist/foundations/chunker/services/chunker.service.d.ts.map +1 -1
- package/dist/foundations/chunker/services/chunker.service.js +160 -157
- package/dist/foundations/chunker/services/chunker.service.js.map +1 -1
- package/dist/foundations/chunker/services/types/markdownchunking.service.d.ts +17 -0
- package/dist/foundations/chunker/services/types/markdownchunking.service.d.ts.map +1 -0
- package/dist/foundations/chunker/services/types/markdownchunking.service.js +124 -0
- package/dist/foundations/chunker/services/types/markdownchunking.service.js.map +1 -0
- package/dist/foundations/chunker/services/types/pdf.service.d.ts +4 -0
- package/dist/foundations/chunker/services/types/pdf.service.d.ts.map +1 -1
- package/dist/foundations/chunker/services/types/pdf.service.js +14 -4
- package/dist/foundations/chunker/services/types/pdf.service.js.map +1 -1
- package/dist/foundations/s3/index.d.ts +8 -2
- package/dist/foundations/s3/index.d.ts.map +1 -1
- package/dist/foundations/s3/index.js +22 -5
- package/dist/foundations/s3/index.js.map +1 -1
- package/dist/foundations/s3/services/s3.service.d.ts +11 -1
- package/dist/foundations/s3/services/s3.service.d.ts.map +1 -1
- package/dist/foundations/s3/services/s3.service.js +70 -21
- package/dist/foundations/s3/services/s3.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -49,30 +49,50 @@ const documents_1 = require("@langchain/core/documents");
|
|
|
49
49
|
const messages_1 = require("@langchain/core/messages");
|
|
50
50
|
const textsplitters_1 = require("@langchain/textsplitters");
|
|
51
51
|
const common_1 = require("@nestjs/common");
|
|
52
|
+
const config_1 = require("@nestjs/config");
|
|
52
53
|
const crypto_1 = require("crypto");
|
|
53
54
|
const fs = __importStar(require("fs/promises"));
|
|
54
55
|
const model_service_1 = require("../../../core/llm/services/model.service");
|
|
55
|
-
const file_types_1 = require("../../chunker/constants/file.types");
|
|
56
|
-
const docx_service_1 = require("../../chunker/services/types/docx.service");
|
|
57
|
-
const email_service_1 = require("../../chunker/services/types/email.service");
|
|
58
|
-
const pdf_service_1 = require("../../chunker/services/types/pdf.service");
|
|
59
|
-
const pptx_service_1 = require("../../chunker/services/types/pptx.service");
|
|
60
|
-
const semanticsplitter_service_1 = require("../../chunker/services/types/semanticsplitter.service");
|
|
61
|
-
const xlsx_service_1 = require("../../chunker/services/types/xlsx.service");
|
|
62
56
|
const s3_service_1 = require("../../s3/services/s3.service");
|
|
57
|
+
const file_types_1 = require("../constants/file.types");
|
|
63
58
|
const json_loader_1 = require("../loaders/json.loader");
|
|
64
59
|
const text_loader_1 = require("../loaders/text.loader");
|
|
60
|
+
const docx_service_1 = require("./types/docx.service");
|
|
61
|
+
const email_service_1 = require("./types/email.service");
|
|
62
|
+
const markdownchunking_service_1 = require("./types/markdownchunking.service");
|
|
63
|
+
const pdf_service_1 = require("./types/pdf.service");
|
|
64
|
+
const pptx_service_1 = require("./types/pptx.service");
|
|
65
|
+
const semanticsplitter_service_1 = require("./types/semanticsplitter.service");
|
|
66
|
+
const xlsx_service_1 = require("./types/xlsx.service");
|
|
65
67
|
let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
66
|
-
constructor(semanticSplitterService, docxService, pptxService, pdfService, xlsxService,
|
|
68
|
+
constructor(markdownChunkingService, semanticSplitterService, docxService, pptxService, pdfService, xlsxService, modelService, s3Service, emailParserService, config) {
|
|
69
|
+
this.markdownChunkingService = markdownChunkingService;
|
|
67
70
|
this.semanticSplitterService = semanticSplitterService;
|
|
68
71
|
this.docxService = docxService;
|
|
69
72
|
this.pptxService = pptxService;
|
|
70
73
|
this.pdfService = pdfService;
|
|
71
74
|
this.xlsxService = xlsxService;
|
|
72
|
-
this.emailParserService = emailParserService;
|
|
73
|
-
this.s3Service = s3Service;
|
|
74
75
|
this.modelService = modelService;
|
|
76
|
+
this.s3Service = s3Service;
|
|
77
|
+
this.emailParserService = emailParserService;
|
|
78
|
+
this.config = config;
|
|
75
79
|
this.logger = new common_1.Logger(ChunkerService_1.name);
|
|
80
|
+
const chunker = this.config.get("chunker");
|
|
81
|
+
this.splitter = chunker?.strategy === "semantic" ? this.semanticSplitterService : this.markdownChunkingService;
|
|
82
|
+
this.targetChars = chunker?.targetChars ?? 1500;
|
|
83
|
+
// [CHUNKER-PORT] temporary validation log — confirms the active config seam at boot.
|
|
84
|
+
this.logger.log(`[CHUNKER-PORT] active config → strategy=${chunker?.strategy ?? "(default)"} ` +
|
|
85
|
+
`splitter=${this.splitter?.constructor?.name} ` +
|
|
86
|
+
`targetChars=${this.targetChars} ocrLanguage=${chunker?.ocrLanguage ?? "(default)"}`);
|
|
87
|
+
}
|
|
88
|
+
// [CHUNKER-PORT] temporary validation log — summarises what the chunker produced for one file.
|
|
89
|
+
_logChunkResult(fileType, docs) {
|
|
90
|
+
const methods = [...new Set(docs.map((d) => d.metadata?.split_method ?? d.metadata?.type ?? "?"))];
|
|
91
|
+
const sizes = docs.map((d) => d.pageContent.length);
|
|
92
|
+
const max = sizes.length ? Math.max(...sizes) : 0;
|
|
93
|
+
const min = sizes.length ? Math.min(...sizes) : 0;
|
|
94
|
+
this.logger.log(`[CHUNKER-PORT] file=${fileType} chunks=${docs.length} ` +
|
|
95
|
+
`split_methods=[${methods.join(",")}] sizes(min/max)=${min}/${max} (targetChars=${this.targetChars})`);
|
|
76
96
|
}
|
|
77
97
|
async _downloadFileAsBuffer(params) {
|
|
78
98
|
const response = await fetch(params.url);
|
|
@@ -88,6 +108,14 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
88
108
|
return tempFilePath;
|
|
89
109
|
}
|
|
90
110
|
async generateContentStructureFromFile(params) {
|
|
111
|
+
if (this.config.get("ai").mock) {
|
|
112
|
+
return [
|
|
113
|
+
new documents_1.Document({
|
|
114
|
+
pageContent: "mock chunk content for smoke testing",
|
|
115
|
+
metadata: { source: params.filePath, mock: true },
|
|
116
|
+
}),
|
|
117
|
+
];
|
|
118
|
+
}
|
|
91
119
|
if ((0, file_types_1.isImageFile)(params.fileType))
|
|
92
120
|
return this._createChunksFromImage(params);
|
|
93
121
|
const localFilePath = await this._downloadFile({
|
|
@@ -102,39 +130,42 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
102
130
|
fileType: params.fileType.toLowerCase(),
|
|
103
131
|
});
|
|
104
132
|
}
|
|
105
|
-
|
|
133
|
+
const docs = await this._processLocalFile({
|
|
134
|
+
localFilePath,
|
|
135
|
+
fileType: params.fileType,
|
|
136
|
+
filePath: params.filePath,
|
|
137
|
+
});
|
|
138
|
+
this._logChunkResult(params.fileType, docs);
|
|
139
|
+
return docs;
|
|
140
|
+
}
|
|
141
|
+
async _processLocalFile(params) {
|
|
106
142
|
switch (params.fileType.toLowerCase()) {
|
|
107
143
|
case "md":
|
|
108
|
-
|
|
109
|
-
break;
|
|
144
|
+
return this._createFromMarkdown({ filePath: params.filePath, localFilePath: params.localFilePath });
|
|
110
145
|
case "docx":
|
|
111
|
-
|
|
112
|
-
break;
|
|
146
|
+
return this._createFromDocX({ filePath: params.filePath, localFilePath: params.localFilePath });
|
|
113
147
|
case "pptx":
|
|
114
148
|
case "presentation":
|
|
115
|
-
|
|
116
|
-
break;
|
|
149
|
+
return this._createFromPptx({ filePath: params.filePath, localFilePath: params.localFilePath });
|
|
117
150
|
case "xlsx":
|
|
118
151
|
case "spreadsheet":
|
|
119
|
-
|
|
120
|
-
break;
|
|
152
|
+
return this._createFromXlsx({ filePath: params.filePath, localFilePath: params.localFilePath });
|
|
121
153
|
case "pdf":
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
default:
|
|
154
|
+
return this._createFromPdf({ filePath: params.filePath, localFilePath: params.localFilePath });
|
|
155
|
+
default: {
|
|
125
156
|
let loader;
|
|
126
157
|
switch (params.fileType.toLowerCase()) {
|
|
127
158
|
case "json":
|
|
128
|
-
loader = new json_loader_1.JSONLoader(localFilePath, "/texts");
|
|
159
|
+
loader = new json_loader_1.JSONLoader(params.localFilePath, "/texts");
|
|
129
160
|
break;
|
|
130
161
|
case "jsonl":
|
|
131
|
-
loader = new json_loader_1.JSONLinesLoader(localFilePath, "/html");
|
|
162
|
+
loader = new json_loader_1.JSONLinesLoader(params.localFilePath, "/html");
|
|
132
163
|
break;
|
|
133
164
|
case "csv":
|
|
134
|
-
loader = new csv_1.CSVLoader(localFilePath, "text");
|
|
165
|
+
loader = new csv_1.CSVLoader(params.localFilePath, "text");
|
|
135
166
|
break;
|
|
136
167
|
default:
|
|
137
|
-
loader = new text_loader_1.TextLoader(localFilePath);
|
|
168
|
+
loader = new text_loader_1.TextLoader(params.localFilePath);
|
|
138
169
|
break;
|
|
139
170
|
}
|
|
140
171
|
const rawDocs = await loader.load();
|
|
@@ -142,14 +173,95 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
142
173
|
chunkSize: 1000,
|
|
143
174
|
chunkOverlap: 200,
|
|
144
175
|
});
|
|
145
|
-
|
|
146
|
-
|
|
176
|
+
return textSplitter.splitDocuments(rawDocs);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
async _createFromEmail(params) {
|
|
181
|
+
try {
|
|
182
|
+
const buffer = await fs.readFile(params.localFilePath);
|
|
183
|
+
const parsed = params.fileType === "eml"
|
|
184
|
+
? await this.emailParserService.parseEml(buffer)
|
|
185
|
+
: await this.emailParserService.parseMsg(buffer);
|
|
186
|
+
// Process attachments to extract their content
|
|
187
|
+
const attachmentContents = [];
|
|
188
|
+
for (const att of parsed.attachments) {
|
|
189
|
+
try {
|
|
190
|
+
const content = await this._extractAttachmentContent(att);
|
|
191
|
+
if (content) {
|
|
192
|
+
attachmentContents.push({ filename: att.filename, content });
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
this.logger.warn(`Failed to extract content from attachment ${att.filename}:`, error);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const markdown = this.emailParserService.assembleMarkdown({
|
|
200
|
+
...parsed,
|
|
201
|
+
attachmentContents,
|
|
202
|
+
});
|
|
203
|
+
if (markdown && markdown.trim()) {
|
|
204
|
+
// Use MarkdownTextSplitter for emails instead of semantic splitter.
|
|
205
|
+
// The semantic splitter can produce oversized chunks that exceed the embedding model's
|
|
206
|
+
// 8192 token limit when email content lacks clear semantic shift points.
|
|
207
|
+
const splitter = new textsplitters_1.MarkdownTextSplitter({
|
|
208
|
+
chunkSize: this.targetChars,
|
|
209
|
+
chunkOverlap: 200,
|
|
210
|
+
});
|
|
211
|
+
return await splitter.createDocuments([markdown]);
|
|
212
|
+
}
|
|
213
|
+
return [];
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
this.logger.error(`Email processing failed for ${params.fileType}:`, error);
|
|
217
|
+
return [];
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
async _extractAttachmentContent(attachment, depth = 0) {
|
|
221
|
+
if (depth >= 3) {
|
|
222
|
+
this.logger.warn(`Max email nesting depth reached for ${attachment.filename}`);
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
const extension = attachment.filename.split(".").pop()?.toLowerCase() || "";
|
|
226
|
+
// For nested emails, parse recursively
|
|
227
|
+
if (extension === "eml" || extension === "msg") {
|
|
228
|
+
const parsed = extension === "eml"
|
|
229
|
+
? await this.emailParserService.parseEml(attachment.content)
|
|
230
|
+
: await this.emailParserService.parseMsg(attachment.content);
|
|
231
|
+
const nestedAttContents = [];
|
|
232
|
+
for (const att of parsed.attachments) {
|
|
233
|
+
const content = await this._extractAttachmentContent(att, depth + 1);
|
|
234
|
+
if (content)
|
|
235
|
+
nestedAttContents.push({ filename: att.filename, content });
|
|
236
|
+
}
|
|
237
|
+
return this.emailParserService.assembleMarkdown({ ...parsed, attachmentContents: nestedAttContents });
|
|
238
|
+
}
|
|
239
|
+
// For images, use the image chunker
|
|
240
|
+
if ((0, file_types_1.isImageFile)(extension)) {
|
|
241
|
+
const tempPath = `/tmp/temp-att.${(0, crypto_1.randomUUID)()}.${extension}`;
|
|
242
|
+
await fs.writeFile(tempPath, attachment.content);
|
|
243
|
+
try {
|
|
244
|
+
const docs = await this._createChunksFromImage({ filePath: tempPath, fileType: extension });
|
|
245
|
+
return docs.map((d) => d.pageContent).join("\n\n");
|
|
246
|
+
}
|
|
247
|
+
finally {
|
|
248
|
+
await fs.unlink(tempPath).catch(() => { });
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
// For other file types, write to temp and delegate to existing handlers
|
|
252
|
+
const tempPath = `/tmp/temp-att.${(0, crypto_1.randomUUID)()}.${extension}`;
|
|
253
|
+
await fs.writeFile(tempPath, attachment.content);
|
|
254
|
+
try {
|
|
255
|
+
const docs = await this._processLocalFile({ localFilePath: tempPath, fileType: extension, filePath: tempPath });
|
|
256
|
+
return docs.map((d) => d.pageContent).join("\n\n");
|
|
257
|
+
}
|
|
258
|
+
finally {
|
|
259
|
+
await fs.unlink(tempPath).catch(() => { });
|
|
147
260
|
}
|
|
148
|
-
return response;
|
|
149
261
|
}
|
|
150
262
|
async generateContentStructureFromMarkdown(params) {
|
|
151
263
|
try {
|
|
152
|
-
const semanticChunks = await this.
|
|
264
|
+
const semanticChunks = await this.splitter.splitMarkdownToChunks({
|
|
153
265
|
content: params.content,
|
|
154
266
|
title: params.title,
|
|
155
267
|
});
|
|
@@ -161,7 +273,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
161
273
|
this.logger.warn("Semantic markdown splitting failed, falling back to markdown splitter:", error);
|
|
162
274
|
}
|
|
163
275
|
const splitter = new textsplitters_1.MarkdownTextSplitter({
|
|
164
|
-
chunkSize:
|
|
276
|
+
chunkSize: this.targetChars,
|
|
165
277
|
chunkOverlap: 200,
|
|
166
278
|
});
|
|
167
279
|
const response = await splitter.createDocuments([params.content]);
|
|
@@ -240,7 +352,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
240
352
|
if (imageDescription?.content) {
|
|
241
353
|
// Create chunks from the image description
|
|
242
354
|
const splitter = new textsplitters_1.RecursiveCharacterTextSplitter({
|
|
243
|
-
chunkSize:
|
|
355
|
+
chunkSize: this.targetChars,
|
|
244
356
|
chunkOverlap: 200,
|
|
245
357
|
});
|
|
246
358
|
return await splitter.createDocuments([imageDescription.content.toString()]);
|
|
@@ -258,7 +370,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
258
370
|
const filename = urlParts[urlParts.length - 1];
|
|
259
371
|
const title = filename.replace(/\.md$/i, "");
|
|
260
372
|
try {
|
|
261
|
-
return await this.
|
|
373
|
+
return await this.splitter.splitMarkdownToChunks({
|
|
262
374
|
content: markdown,
|
|
263
375
|
title: title,
|
|
264
376
|
});
|
|
@@ -266,7 +378,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
266
378
|
catch (error) {
|
|
267
379
|
this.logger.error("Semantic markdown splitting failed, falling back to markdown splitter:", error);
|
|
268
380
|
const splitter = new textsplitters_1.MarkdownTextSplitter({
|
|
269
|
-
chunkSize:
|
|
381
|
+
chunkSize: this.targetChars,
|
|
270
382
|
chunkOverlap: 200,
|
|
271
383
|
});
|
|
272
384
|
return await splitter.createDocuments([markdown]);
|
|
@@ -277,14 +389,14 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
277
389
|
const markdownContent = this.docxService.convertToMarkdown(rawElements);
|
|
278
390
|
if (markdownContent && markdownContent.trim()) {
|
|
279
391
|
try {
|
|
280
|
-
return await this.
|
|
392
|
+
return await this.splitter.splitMarkdownToChunks({
|
|
281
393
|
content: markdownContent,
|
|
282
394
|
});
|
|
283
395
|
}
|
|
284
396
|
catch (error) {
|
|
285
397
|
this.logger.error("Semantic markdown splitting failed, falling back to markdown splitter:", error);
|
|
286
398
|
const splitter = new textsplitters_1.MarkdownTextSplitter({
|
|
287
|
-
chunkSize:
|
|
399
|
+
chunkSize: this.targetChars,
|
|
288
400
|
chunkOverlap: 200,
|
|
289
401
|
});
|
|
290
402
|
return await splitter.createDocuments([markdownContent]);
|
|
@@ -295,7 +407,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
295
407
|
for (const part of documentParts) {
|
|
296
408
|
if (part.metadata?.type === "paragraphs") {
|
|
297
409
|
const splitter = new textsplitters_1.RecursiveCharacterTextSplitter({
|
|
298
|
-
chunkSize:
|
|
410
|
+
chunkSize: this.targetChars,
|
|
299
411
|
chunkOverlap: 20,
|
|
300
412
|
});
|
|
301
413
|
const parts = await splitter.createDocuments([part.pageContent]);
|
|
@@ -312,7 +424,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
312
424
|
const markdownContent = this.pptxService.convertToMarkdown(extractedContent);
|
|
313
425
|
if (markdownContent && markdownContent.trim()) {
|
|
314
426
|
try {
|
|
315
|
-
return await this.
|
|
427
|
+
return await this.splitter.splitMarkdownToChunks({
|
|
316
428
|
content: markdownContent,
|
|
317
429
|
title: undefined,
|
|
318
430
|
});
|
|
@@ -320,7 +432,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
320
432
|
catch (error) {
|
|
321
433
|
this.logger.error("Presentation processing failed:", error);
|
|
322
434
|
const splitter = new textsplitters_1.MarkdownTextSplitter({
|
|
323
|
-
chunkSize:
|
|
435
|
+
chunkSize: this.targetChars,
|
|
324
436
|
chunkOverlap: 200,
|
|
325
437
|
});
|
|
326
438
|
return await splitter.createDocuments([markdownContent]);
|
|
@@ -330,7 +442,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
330
442
|
const documentParts = await this.pptxService.load({ filePath: params.localFilePath });
|
|
331
443
|
for (const part of documentParts) {
|
|
332
444
|
const splitter = new textsplitters_1.RecursiveCharacterTextSplitter({
|
|
333
|
-
chunkSize:
|
|
445
|
+
chunkSize: this.targetChars,
|
|
334
446
|
chunkOverlap: 100,
|
|
335
447
|
});
|
|
336
448
|
const parts = await splitter.createDocuments([part.pageContent]);
|
|
@@ -356,7 +468,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
356
468
|
const documentParts = await this.xlsxService.load({ filePath: params.localFilePath });
|
|
357
469
|
for (const part of documentParts) {
|
|
358
470
|
const splitter = new textsplitters_1.RecursiveCharacterTextSplitter({
|
|
359
|
-
chunkSize:
|
|
471
|
+
chunkSize: this.targetChars,
|
|
360
472
|
chunkOverlap: 100,
|
|
361
473
|
});
|
|
362
474
|
const parts = await splitter.createDocuments([part.pageContent]);
|
|
@@ -364,117 +476,6 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
364
476
|
}
|
|
365
477
|
return response;
|
|
366
478
|
}
|
|
367
|
-
async _createFromEmail(params) {
|
|
368
|
-
try {
|
|
369
|
-
const buffer = await fs.readFile(params.localFilePath);
|
|
370
|
-
const parsed = params.fileType === "eml"
|
|
371
|
-
? await this.emailParserService.parseEml(buffer)
|
|
372
|
-
: await this.emailParserService.parseMsg(buffer);
|
|
373
|
-
const attachmentContents = [];
|
|
374
|
-
for (const att of parsed.attachments) {
|
|
375
|
-
try {
|
|
376
|
-
const content = await this._extractAttachmentContent(att);
|
|
377
|
-
if (content) {
|
|
378
|
-
attachmentContents.push({ filename: att.filename, content });
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
catch (error) {
|
|
382
|
-
this.logger.warn(`Failed to extract content from attachment ${att.filename}:`, error);
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
const markdown = this.emailParserService.assembleMarkdown({
|
|
386
|
-
...parsed,
|
|
387
|
-
attachmentContents,
|
|
388
|
-
});
|
|
389
|
-
if (markdown && markdown.trim()) {
|
|
390
|
-
const splitter = new textsplitters_1.MarkdownTextSplitter({
|
|
391
|
-
chunkSize: 1500,
|
|
392
|
-
chunkOverlap: 200,
|
|
393
|
-
});
|
|
394
|
-
return await splitter.createDocuments([markdown]);
|
|
395
|
-
}
|
|
396
|
-
return [];
|
|
397
|
-
}
|
|
398
|
-
catch (error) {
|
|
399
|
-
this.logger.error(`Email processing failed for ${params.fileType}:`, error);
|
|
400
|
-
return [];
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
async _extractAttachmentContent(attachment, depth = 0) {
|
|
404
|
-
if (depth >= 3) {
|
|
405
|
-
this.logger.warn(`Max email nesting depth reached for ${attachment.filename}`);
|
|
406
|
-
return null;
|
|
407
|
-
}
|
|
408
|
-
const extension = attachment.filename.split(".").pop()?.toLowerCase() || "";
|
|
409
|
-
if (extension === "eml" || extension === "msg") {
|
|
410
|
-
const parsed = extension === "eml"
|
|
411
|
-
? await this.emailParserService.parseEml(attachment.content)
|
|
412
|
-
: await this.emailParserService.parseMsg(attachment.content);
|
|
413
|
-
const nestedAttContents = [];
|
|
414
|
-
for (const att of parsed.attachments) {
|
|
415
|
-
const content = await this._extractAttachmentContent(att, depth + 1);
|
|
416
|
-
if (content)
|
|
417
|
-
nestedAttContents.push({ filename: att.filename, content });
|
|
418
|
-
}
|
|
419
|
-
return this.emailParserService.assembleMarkdown({ ...parsed, attachmentContents: nestedAttContents });
|
|
420
|
-
}
|
|
421
|
-
if ((0, file_types_1.isImageFile)(extension)) {
|
|
422
|
-
const tempPath = `/tmp/temp-att.${(0, crypto_1.randomUUID)()}.${extension}`;
|
|
423
|
-
await fs.writeFile(tempPath, attachment.content);
|
|
424
|
-
try {
|
|
425
|
-
const docs = await this._createChunksFromImage({ filePath: tempPath, fileType: extension });
|
|
426
|
-
return docs.map((d) => d.pageContent).join("\n\n");
|
|
427
|
-
}
|
|
428
|
-
finally {
|
|
429
|
-
await fs.unlink(tempPath).catch(() => { });
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
const tempPath = `/tmp/temp-att.${(0, crypto_1.randomUUID)()}.${extension}`;
|
|
433
|
-
await fs.writeFile(tempPath, attachment.content);
|
|
434
|
-
try {
|
|
435
|
-
const docs = await this._processLocalFile({ localFilePath: tempPath, fileType: extension, filePath: tempPath });
|
|
436
|
-
return docs.map((d) => d.pageContent).join("\n\n");
|
|
437
|
-
}
|
|
438
|
-
finally {
|
|
439
|
-
await fs.unlink(tempPath).catch(() => { });
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
async _processLocalFile(params) {
|
|
443
|
-
switch (params.fileType.toLowerCase()) {
|
|
444
|
-
case "md":
|
|
445
|
-
return this._createFromMarkdown({ filePath: params.filePath, localFilePath: params.localFilePath });
|
|
446
|
-
case "docx":
|
|
447
|
-
return this._createFromDocX({ filePath: params.filePath, localFilePath: params.localFilePath });
|
|
448
|
-
case "pptx":
|
|
449
|
-
case "presentation":
|
|
450
|
-
return this._createFromPptx({ filePath: params.filePath, localFilePath: params.localFilePath });
|
|
451
|
-
case "xlsx":
|
|
452
|
-
case "spreadsheet":
|
|
453
|
-
return this._createFromXlsx({ filePath: params.filePath, localFilePath: params.localFilePath });
|
|
454
|
-
case "pdf":
|
|
455
|
-
return this._createFromPdf({ filePath: params.filePath, localFilePath: params.localFilePath });
|
|
456
|
-
default: {
|
|
457
|
-
let loader;
|
|
458
|
-
switch (params.fileType.toLowerCase()) {
|
|
459
|
-
case "json":
|
|
460
|
-
loader = new json_loader_1.JSONLoader(params.localFilePath, "/texts");
|
|
461
|
-
break;
|
|
462
|
-
case "jsonl":
|
|
463
|
-
loader = new json_loader_1.JSONLinesLoader(params.localFilePath, "/html");
|
|
464
|
-
break;
|
|
465
|
-
case "csv":
|
|
466
|
-
loader = new csv_1.CSVLoader(params.localFilePath, "text");
|
|
467
|
-
break;
|
|
468
|
-
default:
|
|
469
|
-
loader = new text_loader_1.TextLoader(params.localFilePath);
|
|
470
|
-
break;
|
|
471
|
-
}
|
|
472
|
-
const rawDocs = await loader.load();
|
|
473
|
-
const textSplitter = new textsplitters_1.TokenTextSplitter({ chunkSize: 1000, chunkOverlap: 200 });
|
|
474
|
-
return textSplitter.splitDocuments(rawDocs);
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
479
|
async _createFromPdf(params) {
|
|
479
480
|
try {
|
|
480
481
|
const pdfContent = await this.pdfService.extractPdfContent(params.localFilePath);
|
|
@@ -493,7 +494,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
493
494
|
.join("\n\n");
|
|
494
495
|
if (markdownContent && markdownContent.trim()) {
|
|
495
496
|
try {
|
|
496
|
-
return await this.
|
|
497
|
+
return await this.splitter.splitMarkdownToChunks({
|
|
497
498
|
content: markdownContent,
|
|
498
499
|
title: undefined,
|
|
499
500
|
});
|
|
@@ -501,7 +502,7 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
501
502
|
catch (error) {
|
|
502
503
|
this.logger.error("Presentation processing failed:", error);
|
|
503
504
|
const splitter = new textsplitters_1.MarkdownTextSplitter({
|
|
504
|
-
chunkSize:
|
|
505
|
+
chunkSize: this.targetChars,
|
|
505
506
|
chunkOverlap: 200,
|
|
506
507
|
});
|
|
507
508
|
return await splitter.createDocuments([markdownContent]);
|
|
@@ -524,13 +525,15 @@ let ChunkerService = ChunkerService_1 = class ChunkerService {
|
|
|
524
525
|
exports.ChunkerService = ChunkerService;
|
|
525
526
|
exports.ChunkerService = ChunkerService = ChunkerService_1 = __decorate([
|
|
526
527
|
(0, common_1.Injectable)(),
|
|
527
|
-
__metadata("design:paramtypes", [
|
|
528
|
+
__metadata("design:paramtypes", [markdownchunking_service_1.MarkdownChunkingService,
|
|
529
|
+
semanticsplitter_service_1.SemanticSplitterService,
|
|
528
530
|
docx_service_1.DocXService,
|
|
529
531
|
pptx_service_1.PptxService,
|
|
530
532
|
pdf_service_1.PdfService,
|
|
531
533
|
xlsx_service_1.XlsxService,
|
|
532
|
-
|
|
534
|
+
model_service_1.ModelService,
|
|
533
535
|
s3_service_1.S3Service,
|
|
534
|
-
|
|
536
|
+
email_service_1.EmailParserService,
|
|
537
|
+
config_1.ConfigService])
|
|
535
538
|
], ChunkerService);
|
|
536
539
|
//# sourceMappingURL=chunker.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunker.service.js","sourceRoot":"","sources":["../../../../src/foundations/chunker/services/chunker.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chunker.service.js","sourceRoot":"","sources":["../../../../src/foundations/chunker/services/chunker.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Document } from "@langchain/core/documents";
|
|
2
|
+
import { ConfigService } from "@nestjs/config";
|
|
3
|
+
import { AppLoggingService } from "../../../../core/logging/services/logging.service";
|
|
4
|
+
import { BaseConfigInterface } from "../../../../config/interfaces/base.config.interface";
|
|
5
|
+
export declare class MarkdownChunkingService {
|
|
6
|
+
private readonly logger;
|
|
7
|
+
private readonly config;
|
|
8
|
+
constructor(logger: AppLoggingService, config: ConfigService<BaseConfigInterface>);
|
|
9
|
+
splitMarkdownToChunks(params: {
|
|
10
|
+
content: string;
|
|
11
|
+
title?: string;
|
|
12
|
+
}): Promise<Document[]>;
|
|
13
|
+
private splitLargeSection;
|
|
14
|
+
private splitMarkdownByStructure;
|
|
15
|
+
private isTableSection;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=markdownchunking.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdownchunking.service.d.ts","sourceRoot":"","sources":["../../../../../src/foundations/chunker/services/types/markdownchunking.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAG1F,qBACa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAGvD,qBAAqB,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAuD/E,iBAAiB;IAwB/B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,cAAc;CAMvB"}
|