@geotechcli/core 0.4.33 → 0.4.35
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ingest/geotech-document.d.ts +17 -0
- package/dist/ingest/geotech-document.d.ts.map +1 -1
- package/dist/ingest/geotech-document.js +258 -22
- package/dist/ingest/geotech-document.js.map +1 -1
- package/dist/ingest/geotech-extract.d.ts.map +1 -1
- package/dist/ingest/geotech-extract.js +6 -2
- package/dist/ingest/geotech-extract.js.map +1 -1
- package/dist/ingest/job-store.d.ts +1 -1
- package/dist/ingest/job-store.d.ts.map +1 -1
- package/dist/ingest/job-worker.d.ts.map +1 -1
- package/dist/ingest/job-worker.js +49 -16
- package/dist/ingest/job-worker.js.map +1 -1
- package/dist/llm/providers/hosted-beta.d.ts.map +1 -1
- package/dist/llm/providers/hosted-beta.js +1 -0
- package/dist/llm/providers/hosted-beta.js.map +1 -1
- package/dist/llm/providers/zhipu.d.ts.map +1 -1
- package/dist/llm/providers/zhipu.js +3 -0
- package/dist/llm/providers/zhipu.js.map +1 -1
- package/dist/llm/router.d.ts +2 -0
- package/dist/llm/router.d.ts.map +1 -1
- package/dist/llm/router.js +2 -0
- package/dist/llm/router.js.map +1 -1
- package/dist/llm/types.d.ts +1 -0
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js.map +1 -1
- package/dist/meta/metadata.json +2 -2
- package/dist/report/html.d.ts.map +1 -1
- package/dist/report/html.js +226 -48
- package/dist/report/html.js.map +1 -1
- package/dist/report/ingest-dossier.d.ts +1 -0
- package/dist/report/ingest-dossier.d.ts.map +1 -1
- package/dist/report/ingest-dossier.js +211 -34
- package/dist/report/ingest-dossier.js.map +1 -1
- package/dist/vision/geotech-document.d.ts +1 -0
- package/dist/vision/geotech-document.d.ts.map +1 -1
- package/dist/vision/geotech-document.js +156 -5
- package/dist/vision/geotech-document.js.map +1 -1
- package/dist/vision/layout-ocr.d.ts +44 -0
- package/dist/vision/layout-ocr.d.ts.map +1 -0
- package/dist/vision/layout-ocr.js +216 -0
- package/dist/vision/layout-ocr.js.map +1 -0
- package/dist/vision/ocr.d.ts +5 -1
- package/dist/vision/ocr.d.ts.map +1 -1
- package/dist/vision/ocr.js +33 -2
- package/dist/vision/ocr.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,6 +8,112 @@ function truncate(value, maxLength) {
|
|
|
8
8
|
const normalized = value.replace(/\s+/g, ' ').trim();
|
|
9
9
|
return normalized.length > maxLength ? `${normalized.slice(0, maxLength - 1).trim()}...` : normalized;
|
|
10
10
|
}
|
|
11
|
+
const ENGINEERING_UNIT_PATTERN = /(?<![A-Za-z])(?:(?:kN|KN|MN|N|kg|g|gm|t)\/(?:m|cm|mm|cc)(?:\^?[23])?|(?:kg|g|gm)\/cm(?:\^?2|\^?3)?|t\/m(?:\^?2|\^?3)?|N\/mm(?:\^?2)?|m\/s|MPa|kPa|Pa|kN|MN|mm|cm|m|deg)\b/gi;
|
|
12
|
+
function humanizeNarrative(value) {
|
|
13
|
+
if (!value) {
|
|
14
|
+
return '';
|
|
15
|
+
}
|
|
16
|
+
const units = [];
|
|
17
|
+
const protectedValue = value.replace(ENGINEERING_UNIT_PATTERN, (unit) => {
|
|
18
|
+
units.push(unit);
|
|
19
|
+
return `@@${units.length - 1}@@`;
|
|
20
|
+
});
|
|
21
|
+
return protectedValue
|
|
22
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2')
|
|
23
|
+
.replace(/([A-Za-z])(\d)/g, '$1 $2')
|
|
24
|
+
.replace(/(\d)([A-Za-z])/g, '$1 $2')
|
|
25
|
+
.replace(/\s*([=:/(),;%])\s*/g, '$1 ')
|
|
26
|
+
.replace(/\s+/g, ' ')
|
|
27
|
+
.replace(/@@(\d+)@@/g, (_match, index) => units[Number(index)] ?? '')
|
|
28
|
+
.replace(/(\d)((?:kN|KN|MN|N|kg|g|gm|t)\/(?:m|cm|mm|cc)(?:\^?[23])?|(?:kg|g|gm)\/cm(?:\^?2|\^?3)?|t\/m(?:\^?2|\^?3)?|N\/mm(?:\^?2)?|m\/s|MPa|kPa|Pa|kN|MN|mm|cm|m|deg)\b/g, '$1 $2')
|
|
29
|
+
.replace(/\s+/g, ' ')
|
|
30
|
+
.trim();
|
|
31
|
+
}
|
|
32
|
+
function looksLikeNoisyOcr(value) {
|
|
33
|
+
if (!value.trim()) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
const tokens = value.split(/\s+/).filter(Boolean);
|
|
37
|
+
if (tokens.length === 0) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
const longCompactTokens = tokens.filter((token) => token.length >= 28
|
|
41
|
+
|| /[A-Za-z]{8,}\d/.test(token)
|
|
42
|
+
|| /\d[A-Za-z]{8,}/.test(token)).length;
|
|
43
|
+
const denseSymbolCount = (value.match(/[<>{}[\]\\|_]/g) ?? []).length;
|
|
44
|
+
const numericTokenCount = tokens.filter((token) => /\d/.test(token)).length;
|
|
45
|
+
const measurementTokenCount = tokens.filter((token) => /(?:%|mm|cm|kg\/cm|t\/m|n>|spt|b\.?h\.?|is:?|depth|gravel|sand|silt|clay|density|limit|friction|cohesion)/i.test(token)).length;
|
|
46
|
+
const sentenceBreakCount = (value.match(/[.!?]/g) ?? []).length;
|
|
47
|
+
const tableHeadingCount = [
|
|
48
|
+
'lab test',
|
|
49
|
+
'laboratory test',
|
|
50
|
+
'foundation size',
|
|
51
|
+
'allowable bearing capacity',
|
|
52
|
+
'natural moisture content',
|
|
53
|
+
'plasticity index',
|
|
54
|
+
'standard penetration',
|
|
55
|
+
].filter((needle) => value.toLowerCase().includes(needle)).length;
|
|
56
|
+
return longCompactTokens >= Math.max(2, Math.ceil(tokens.length * 0.12))
|
|
57
|
+
|| denseSymbolCount > Math.max(4, value.length * 0.025)
|
|
58
|
+
|| (value.length > 240
|
|
59
|
+
&& numericTokenCount >= 14
|
|
60
|
+
&& measurementTokenCount >= 8
|
|
61
|
+
&& sentenceBreakCount <= 4)
|
|
62
|
+
|| (value.length > 280
|
|
63
|
+
&& tableHeadingCount >= 2
|
|
64
|
+
&& numericTokenCount >= 8);
|
|
65
|
+
}
|
|
66
|
+
function cleanNarrativeText(value, maxLength) {
|
|
67
|
+
const cleaned = humanizeNarrative(value);
|
|
68
|
+
if (!cleaned || looksLikeNoisyOcr(cleaned)) {
|
|
69
|
+
return '';
|
|
70
|
+
}
|
|
71
|
+
return truncate(cleaned, maxLength);
|
|
72
|
+
}
|
|
73
|
+
function cleanNarrativeList(values, limit, maxLength) {
|
|
74
|
+
return uniqueStrings(values
|
|
75
|
+
.map((value) => cleanNarrativeText(value, maxLength))
|
|
76
|
+
.filter(Boolean)).slice(0, limit);
|
|
77
|
+
}
|
|
78
|
+
function displayTableText(value, maxLength) {
|
|
79
|
+
const cleaned = humanizeNarrative(value);
|
|
80
|
+
return cleaned ? truncate(cleaned, maxLength) : '-';
|
|
81
|
+
}
|
|
82
|
+
function parameterCategory(name) {
|
|
83
|
+
const normalized = name.toLowerCase();
|
|
84
|
+
if (/spt|rqd|rmr|ucs|cohesion|friction|phi|strength|shear/i.test(normalized))
|
|
85
|
+
return 'Strength';
|
|
86
|
+
if (/unitweight|density|moisture|watercontent|liquid|plasticity|atterberg|gradation|gravel|sand|silt|clay/i.test(normalized))
|
|
87
|
+
return 'Index/lab';
|
|
88
|
+
if (/permeability|hydraulic|groundwater|watertable|seepage/i.test(normalized))
|
|
89
|
+
return 'Hydrogeology';
|
|
90
|
+
if (/settlement|bearing|subgrade|modulus|capacity/i.test(normalized))
|
|
91
|
+
return 'Design';
|
|
92
|
+
if (/depth|elevation|thickness/i.test(normalized))
|
|
93
|
+
return 'Geometry';
|
|
94
|
+
return 'Other';
|
|
95
|
+
}
|
|
96
|
+
function sourcePageText(value) {
|
|
97
|
+
const matches = [...(value ?? '').matchAll(/\bpage\s+(\d+)\b/gi)]
|
|
98
|
+
.map((match) => match[1])
|
|
99
|
+
.filter((entry) => Boolean(entry));
|
|
100
|
+
return matches.length > 0 ? [...new Set(matches)].join(', ') : '-';
|
|
101
|
+
}
|
|
102
|
+
function countGeotechPageStatuses(result) {
|
|
103
|
+
return result.pageAudits.reduce((counts, audit) => {
|
|
104
|
+
counts[audit.parseStatus] += 1;
|
|
105
|
+
return counts;
|
|
106
|
+
}, { parsed: 0, partial: 0, failed: 0 });
|
|
107
|
+
}
|
|
108
|
+
function geotechOutcomeSummary(result) {
|
|
109
|
+
const statusCounts = countGeotechPageStatuses(result);
|
|
110
|
+
const pageSummary = `${statusCounts.parsed} parsed, ${statusCounts.partial} partial, ${statusCounts.failed} failed`;
|
|
111
|
+
const signalSummary = `${result.materials.length} material observation(s), ${result.classifications.length} classification(s), and ${result.parameters.length} parameter(s) retained`;
|
|
112
|
+
const reviewSummary = result.reviewRequired
|
|
113
|
+
? 'Human review is required before this can be treated as trusted engineering input.'
|
|
114
|
+
: 'No blocking review finding was retained.';
|
|
115
|
+
return `${result.source.successfulPages}/${result.source.totalPages} pages processed (${pageSummary}); ${signalSummary}. ${reviewSummary}`;
|
|
116
|
+
}
|
|
11
117
|
function toneFromBoolean(value, inverted = false) {
|
|
12
118
|
if (inverted) {
|
|
13
119
|
return value ? 'danger' : 'good';
|
|
@@ -72,8 +178,9 @@ function buildFindingGroups(findings) {
|
|
|
72
178
|
}
|
|
73
179
|
function buildGeotechTables(result) {
|
|
74
180
|
const tables = [];
|
|
181
|
+
const auditTables = [];
|
|
75
182
|
if (result.source.segmentation?.mode === 'segmented-parent' && result.source.segmentation.segments?.length) {
|
|
76
|
-
|
|
183
|
+
auditTables.push({
|
|
77
184
|
title: 'Segment execution',
|
|
78
185
|
description: `Hosted-beta best-result window: ${result.source.segmentation.effectivePageLimit ?? '-'} effective pages.`,
|
|
79
186
|
columns: ['Segment', 'Pages', 'Status', 'Completed', 'Failed', 'Duration'],
|
|
@@ -87,14 +194,53 @@ function buildGeotechTables(result) {
|
|
|
87
194
|
]),
|
|
88
195
|
});
|
|
89
196
|
}
|
|
197
|
+
if (result.pageAudits.length > 0) {
|
|
198
|
+
auditTables.push({
|
|
199
|
+
title: 'Page audit matrix',
|
|
200
|
+
description: 'Per-page extraction status, source path, retained signal counts, and warning volume.',
|
|
201
|
+
columns: ['Page', 'Class', 'Status', 'Confidence', 'Source', 'Signals', 'Warnings'],
|
|
202
|
+
rows: result.pageAudits.map((audit) => [
|
|
203
|
+
String(audit.pageNumber),
|
|
204
|
+
audit.classification ?? 'unknown',
|
|
205
|
+
audit.parseStatus,
|
|
206
|
+
`${audit.confidence}%`,
|
|
207
|
+
audit.textHintSource,
|
|
208
|
+
[
|
|
209
|
+
audit.materialCount > 0 ? `${audit.materialCount} material` : null,
|
|
210
|
+
audit.classificationCount > 0 ? `${audit.classificationCount} class` : null,
|
|
211
|
+
audit.parameterCount > 0 ? `${audit.parameterCount} parameter` : null,
|
|
212
|
+
].filter(Boolean).join(', ') || '-',
|
|
213
|
+
audit.warnings.length > 0 ? String(audit.warnings.length) : '-',
|
|
214
|
+
]),
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
tables.push({
|
|
218
|
+
title: 'Key engineering parameters',
|
|
219
|
+
description: 'Grouped by engineering category. Source pages are inferred from extracted context when available; confidence is the document-level workflow confidence.',
|
|
220
|
+
columns: ['Category', 'Parameter', 'Value', 'Unit', 'Material', 'Source pages', 'Confidence', 'Context'],
|
|
221
|
+
rows: [...result.parameters]
|
|
222
|
+
.sort((left, right) => parameterCategory(left.name).localeCompare(parameterCategory(right.name))
|
|
223
|
+
|| left.name.localeCompare(right.name))
|
|
224
|
+
.map((parameter) => [
|
|
225
|
+
parameterCategory(parameter.name),
|
|
226
|
+
displayTableText(parameter.name, 90),
|
|
227
|
+
displayTableText(parameter.valueText, 90),
|
|
228
|
+
displayTableText(parameter.unit, 32),
|
|
229
|
+
displayTableText(parameter.material, 110),
|
|
230
|
+
sourcePageText(parameter.context),
|
|
231
|
+
`${result.confidence}%`,
|
|
232
|
+
displayTableText(parameter.context, 180),
|
|
233
|
+
]),
|
|
234
|
+
emptyState: 'No explicit engineering parameters were extracted.',
|
|
235
|
+
});
|
|
90
236
|
tables.push({
|
|
91
237
|
title: 'Material observations',
|
|
92
238
|
columns: ['Kind', 'Description', 'USCS', 'Lithology'],
|
|
93
239
|
rows: result.materials.map((material) => [
|
|
94
|
-
material.kind,
|
|
95
|
-
material.description,
|
|
96
|
-
material.uscsSymbol
|
|
97
|
-
material.lithology
|
|
240
|
+
displayTableText(material.kind, 48),
|
|
241
|
+
displayTableText(material.description, 180),
|
|
242
|
+
displayTableText(material.uscsSymbol, 24),
|
|
243
|
+
displayTableText(material.lithology, 90),
|
|
98
244
|
]),
|
|
99
245
|
emptyState: 'No material observations were extracted.',
|
|
100
246
|
});
|
|
@@ -102,24 +248,12 @@ function buildGeotechTables(result) {
|
|
|
102
248
|
title: 'Classifications',
|
|
103
249
|
columns: ['System', 'Value', 'Context'],
|
|
104
250
|
rows: result.classifications.map((classification) => [
|
|
105
|
-
classification.system,
|
|
106
|
-
classification.value,
|
|
107
|
-
classification.context
|
|
251
|
+
displayTableText(classification.system, 48),
|
|
252
|
+
displayTableText(classification.value, 110),
|
|
253
|
+
displayTableText(classification.context, 180),
|
|
108
254
|
]),
|
|
109
255
|
emptyState: 'No formal classification systems were extracted.',
|
|
110
256
|
});
|
|
111
|
-
tables.push({
|
|
112
|
-
title: 'Engineering parameters',
|
|
113
|
-
columns: ['Parameter', 'Value', 'Unit', 'Material', 'Context'],
|
|
114
|
-
rows: result.parameters.map((parameter) => [
|
|
115
|
-
parameter.name,
|
|
116
|
-
parameter.valueText,
|
|
117
|
-
parameter.unit ?? '-',
|
|
118
|
-
parameter.material ?? '-',
|
|
119
|
-
parameter.context ?? '-',
|
|
120
|
-
]),
|
|
121
|
-
emptyState: 'No explicit engineering parameters were extracted.',
|
|
122
|
-
});
|
|
123
257
|
if (result.contentChunks && result.contentChunks.length > 0) {
|
|
124
258
|
tables.push({
|
|
125
259
|
title: 'Document map',
|
|
@@ -130,12 +264,13 @@ function buildGeotechTables(result) {
|
|
|
130
264
|
? String(chunk.pageRange[0])
|
|
131
265
|
: `${chunk.pageRange[0]}-${chunk.pageRange[1]}`,
|
|
132
266
|
chunk.sectionType ?? '-',
|
|
133
|
-
chunk.scope,
|
|
267
|
+
displayTableText(chunk.scope, 90),
|
|
134
268
|
chunk.significance != null ? String(chunk.significance) : '-',
|
|
135
|
-
chunk.headingAncestry[0]
|
|
269
|
+
displayTableText(chunk.headingAncestry[0], 180),
|
|
136
270
|
]),
|
|
137
271
|
});
|
|
138
272
|
}
|
|
273
|
+
tables.push(...auditTables);
|
|
139
274
|
return tables;
|
|
140
275
|
}
|
|
141
276
|
function buildBoreholeTables(result) {
|
|
@@ -163,8 +298,17 @@ function buildGeotechPageCards(result) {
|
|
|
163
298
|
}
|
|
164
299
|
return result.pageAudits.map((audit) => {
|
|
165
300
|
const chunk = chunkByPage.get(audit.pageNumber);
|
|
301
|
+
const stageBadges = uniqueStrings([
|
|
302
|
+
audit.textHintSource === 'native-text' ? 'native text' : undefined,
|
|
303
|
+
audit.textHintSource === 'pdfjs-text' ? 'pdf.js text' : undefined,
|
|
304
|
+
audit.textHintSource === 'local-ocr' ? 'local OCR' : undefined,
|
|
305
|
+
audit.textHintSource === 'glm-ocr' ? 'GLM-OCR' : undefined,
|
|
306
|
+
audit.textHintSource === 'vision-ocr' ? 'GLM vision OCR' : undefined,
|
|
307
|
+
audit.textHintSource === 'vision-visual' ? 'GLM-5V visual' : undefined,
|
|
308
|
+
result.synthesis?.sourcePages.includes(audit.pageNumber) ? 'GLM-5.1 synthesis' : undefined,
|
|
309
|
+
]);
|
|
166
310
|
const highlights = uniqueStrings([
|
|
167
|
-
chunk?.text ?
|
|
311
|
+
chunk?.text ? displayTableText(chunk.text, 180) : undefined,
|
|
168
312
|
audit.materialCount > 0 ? `${audit.materialCount} material observation(s)` : undefined,
|
|
169
313
|
audit.classificationCount > 0 ? `${audit.classificationCount} classification(s)` : undefined,
|
|
170
314
|
audit.parameterCount > 0 ? `${audit.parameterCount} parameter(s)` : undefined,
|
|
@@ -179,6 +323,7 @@ function buildGeotechPageCards(result) {
|
|
|
179
323
|
sourceHint: audit.textHintSource,
|
|
180
324
|
sectionType: chunk?.sectionType,
|
|
181
325
|
scope: chunk?.scope,
|
|
326
|
+
stageBadges,
|
|
182
327
|
highlights,
|
|
183
328
|
warnings: audit.warnings,
|
|
184
329
|
};
|
|
@@ -203,25 +348,55 @@ function buildBoreholePageCards(result) {
|
|
|
203
348
|
}
|
|
204
349
|
function buildGeotechSections(result) {
|
|
205
350
|
const sections = [];
|
|
351
|
+
const statusCounts = countGeotechPageStatuses(result);
|
|
352
|
+
const cleanSummary = cleanNarrativeText(result.summary, 360);
|
|
206
353
|
sections.push({
|
|
207
|
-
title: '
|
|
354
|
+
title: 'Report takeaways',
|
|
208
355
|
paragraphs: uniqueStrings([
|
|
209
|
-
result.
|
|
356
|
+
...(result.synthesis?.takeaways ?? []),
|
|
357
|
+
cleanSummary,
|
|
210
358
|
result.documentClass ? `Document class: ${result.documentClass}.` : null,
|
|
211
|
-
|
|
359
|
+
geotechOutcomeSummary(result),
|
|
360
|
+
`Extraction posture: ${statusCounts.parsed} parsed page(s), ${statusCounts.partial} partial page(s), ${statusCounts.failed} failed page(s), ${result.inspectionSummary?.ocrRecoveredPageCount ?? 0} OCR/text recovery page(s). Confidence: ${result.confidence}%.`,
|
|
212
361
|
'Workflow confidence and approval support review triage only; they do not replace engineering judgement, design checks, or source-page verification.',
|
|
213
362
|
]),
|
|
214
363
|
});
|
|
215
|
-
if (result.
|
|
364
|
+
if ((result.synthesis?.groundModel.length ?? 0) > 0) {
|
|
365
|
+
sections.push({
|
|
366
|
+
title: 'Ground model',
|
|
367
|
+
paragraphs: cleanNarrativeList(result.synthesis?.groundModel ?? [], 10, 320),
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
if ((result.synthesis?.keyParameters.length ?? 0) > 0) {
|
|
371
|
+
sections.push({
|
|
372
|
+
title: 'Key parameters',
|
|
373
|
+
paragraphs: cleanNarrativeList(result.synthesis?.keyParameters ?? [], 12, 280),
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
if ((result.synthesis?.interpretation.length ?? 0) > 0) {
|
|
377
|
+
sections.push({
|
|
378
|
+
title: 'Interpretation',
|
|
379
|
+
paragraphs: cleanNarrativeList(result.synthesis?.interpretation ?? [], 10, 320),
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
if ((result.synthesis?.limitations.length ?? 0) > 0) {
|
|
383
|
+
sections.push({
|
|
384
|
+
title: 'Limitations',
|
|
385
|
+
paragraphs: cleanNarrativeList(result.synthesis?.limitations ?? [], 10, 320),
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
const risks = cleanNarrativeList(result.risks, 8, 300);
|
|
389
|
+
if (risks.length > 0) {
|
|
216
390
|
sections.push({
|
|
217
391
|
title: 'Risks',
|
|
218
|
-
paragraphs:
|
|
392
|
+
paragraphs: risks,
|
|
219
393
|
});
|
|
220
394
|
}
|
|
221
|
-
|
|
395
|
+
const recommendations = cleanNarrativeList(result.recommendations, 10, 300);
|
|
396
|
+
if (recommendations.length > 0) {
|
|
222
397
|
sections.push({
|
|
223
398
|
title: 'Recommendations',
|
|
224
|
-
paragraphs:
|
|
399
|
+
paragraphs: recommendations,
|
|
225
400
|
});
|
|
226
401
|
}
|
|
227
402
|
return sections;
|
|
@@ -238,13 +413,14 @@ function buildBoreholeSections(result) {
|
|
|
238
413
|
}];
|
|
239
414
|
}
|
|
240
415
|
function buildGeotechMetrics(result) {
|
|
416
|
+
const statusCounts = countGeotechPageStatuses(result);
|
|
241
417
|
return [
|
|
242
418
|
{ label: 'Pages processed', value: `${result.source.successfulPages}/${result.source.totalPages}`, tone: result.source.failedPages > 0 ? 'warning' : 'good' },
|
|
243
419
|
{ label: 'Confidence', value: `${result.confidence}%`, tone: toneFromParseStatus(result.parseStatus ?? 'parsed', result.confidence) },
|
|
420
|
+
{ label: 'Page outcomes', value: `${statusCounts.parsed}/${result.pageAudits.length}`, detail: `${statusCounts.partial} partial, ${statusCounts.failed} failed`, tone: statusCounts.failed > 0 ? 'danger' : statusCounts.partial > 0 ? 'warning' : 'good' },
|
|
244
421
|
{ label: 'Materials', value: String(result.materials.length), detail: `${result.classifications.length} classifications`, tone: result.materials.length > 0 ? 'good' : 'warning' },
|
|
245
422
|
{ label: 'Parameters', value: String(result.parameters.length), detail: result.documentClass ?? 'No document class', tone: result.parameters.length > 0 ? 'good' : 'warning' },
|
|
246
|
-
{ label: '
|
|
247
|
-
{ label: 'Auto proceed', value: result.canAutoProceed ? 'Yes' : 'No', tone: toneFromBoolean(result.canAutoProceed) },
|
|
423
|
+
{ label: 'OCR hints', value: String(result.inspectionSummary?.ocrRecoveredPageCount ?? 0), detail: `${result.inspectionSummary?.imageHeavyPageCount ?? 0} image-heavy pages`, tone: (result.inspectionSummary?.ocrRecoveredPageCount ?? 0) > 0 ? 'good' : 'neutral' },
|
|
248
424
|
];
|
|
249
425
|
}
|
|
250
426
|
function buildBoreholeMetrics(result) {
|
|
@@ -295,8 +471,9 @@ export function buildIngestDossier(result, options) {
|
|
|
295
471
|
if (result.documentType === 'geotech-document') {
|
|
296
472
|
const geotechResult = result;
|
|
297
473
|
const title = geotechResult.title ?? 'Geotechnical ingest dossier';
|
|
298
|
-
const
|
|
299
|
-
|
|
474
|
+
const cleanSummary = cleanNarrativeText(geotechResult.summary, 320);
|
|
475
|
+
const summary = cleanSummary
|
|
476
|
+
|| geotechOutcomeSummary(geotechResult);
|
|
300
477
|
return {
|
|
301
478
|
title,
|
|
302
479
|
subtitle: geotechResult.documentClass
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-dossier.js","sourceRoot":"","sources":["../../src/report/ingest-dossier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ingest-dossier.js","sourceRoot":"","sources":["../../src/report/ingest-dossier.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ export interface GeotechDocumentContext {
|
|
|
27
27
|
pageTextHint?: string;
|
|
28
28
|
pageClassification?: string;
|
|
29
29
|
textRecoveryAttempted?: boolean;
|
|
30
|
+
directVisualPreferred?: boolean;
|
|
30
31
|
}
|
|
31
32
|
export interface GeotechDocumentInsight extends ParseSafety {
|
|
32
33
|
documentClass: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geotech-document.d.ts","sourceRoot":"","sources":["../../src/vision/geotech-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAML,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"geotech-document.d.ts","sourceRoot":"","sources":["../../src/vision/geotech-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAML,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA6M3D,QAAA,MAAM,cAAc,oEAAqE,CAAC;AAE1F,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,0BAA0B,EAAE,CAAC;IACxC,eAAe,EAAE,6BAA6B,EAAE,CAAC;IACjD,UAAU,EAAE,2BAA2B,EAAE,CAAC;IAC1C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAigBD,wBAAgB,gDAAgD,CAC9D,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sBAA2B,EACpC,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,GACL,sBAAsB,GAAG,IAAI,CAyB/B;AAED,wBAAsB,mCAAmC,CACvD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC,CAoIjC;AAiHD,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC,CAgCjC"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import { generateText } from '../llm/router.js';
|
|
1
|
+
import { generateDocumentVision, generateText, generateVision } from '../llm/router.js';
|
|
2
2
|
import { clampConfidence, createParseSafety, deriveParseStatus, normalizeWarnings, parseJsonObject, } from './parse.js';
|
|
3
3
|
import { transcribeDocumentImageText } from './index.js';
|
|
4
4
|
function getHostedBetaGeotechDocumentMaxTokens(config, profile, requestedMaxTokens) {
|
|
5
5
|
if (config.provider !== 'hosted-beta') {
|
|
6
6
|
return requestedMaxTokens;
|
|
7
7
|
}
|
|
8
|
-
const
|
|
8
|
+
const capByProfile = {
|
|
9
|
+
'structured-text': 700,
|
|
10
|
+
'fallback-text': 850,
|
|
11
|
+
'structured-vision': 850,
|
|
12
|
+
'fallback-vision': 950,
|
|
13
|
+
};
|
|
14
|
+
const cap = capByProfile[profile];
|
|
9
15
|
return Math.min(requestedMaxTokens, cap);
|
|
10
16
|
}
|
|
11
17
|
function isRecoverableTextRetryResponse(error) {
|
|
@@ -75,6 +81,54 @@ async function textWithRetry(prompt, config, systemPrompt, maxTokens) {
|
|
|
75
81
|
usedFallback: true,
|
|
76
82
|
};
|
|
77
83
|
}
|
|
84
|
+
async function documentVisionWithRetry(imageBase64, mimeType, config, strictPrompt, softPrompt, systemPrompt, maxTokens) {
|
|
85
|
+
const start = Date.now();
|
|
86
|
+
const multimodalCall = mimeType === 'application/pdf'
|
|
87
|
+
? generateDocumentVision
|
|
88
|
+
: generateVision;
|
|
89
|
+
const primaryMaxTokens = getHostedBetaGeotechDocumentMaxTokens(config, 'structured-vision', maxTokens);
|
|
90
|
+
const fallbackMaxTokens = getHostedBetaGeotechDocumentMaxTokens(config, 'fallback-vision', maxTokens + 250);
|
|
91
|
+
try {
|
|
92
|
+
const first = await multimodalCall(strictPrompt, imageBase64, mimeType, config, {
|
|
93
|
+
systemPrompt,
|
|
94
|
+
temperature: 0.1,
|
|
95
|
+
maxTokens: primaryMaxTokens,
|
|
96
|
+
});
|
|
97
|
+
if (first.text && first.text.trim().length > 10) {
|
|
98
|
+
return { text: first.text, latencyMs: first.latencyMs, usedFallback: false };
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
if (!isRecoverableTextRetryResponse(error)) {
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
await waitForRecoverableTextBackoff();
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
const second = await multimodalCall(softPrompt, imageBase64, mimeType, config, {
|
|
109
|
+
systemPrompt: `${systemPrompt} Return best-effort structured information even when some cells or labels are only partly legible.`,
|
|
110
|
+
temperature: 0.2,
|
|
111
|
+
maxTokens: fallbackMaxTokens,
|
|
112
|
+
});
|
|
113
|
+
if (second.text && second.text.trim().length > 0) {
|
|
114
|
+
return {
|
|
115
|
+
text: second.text,
|
|
116
|
+
latencyMs: Date.now() - start,
|
|
117
|
+
usedFallback: true,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
if (!isRecoverableTextRetryResponse(error)) {
|
|
123
|
+
throw error;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
text: '',
|
|
128
|
+
latencyMs: Date.now() - start,
|
|
129
|
+
usedFallback: true,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
78
132
|
function combineWarnings(base, extra) {
|
|
79
133
|
return [...new Set([...base, ...extra])];
|
|
80
134
|
}
|
|
@@ -640,6 +694,98 @@ ${normalizedPageText.slice(0, 6000)}`;
|
|
|
640
694
|
latencyMs: response.latencyMs,
|
|
641
695
|
});
|
|
642
696
|
}
|
|
697
|
+
async function extractGeotechDocumentFactsFromImage(imageBase64, mimeType, config, context = {}) {
|
|
698
|
+
const contextParts = [
|
|
699
|
+
context.pageNumber != null && context.totalPages != null
|
|
700
|
+
? `Page ${context.pageNumber} of ${context.totalPages}`
|
|
701
|
+
: null,
|
|
702
|
+
context.pageClassification ? `Page classification: ${context.pageClassification}` : null,
|
|
703
|
+
context.textRecoveryAttempted ? 'OCR/text recovery was already attempted and did not produce usable text.' : null,
|
|
704
|
+
].filter((value) => Boolean(value));
|
|
705
|
+
const sharedContext = contextParts.join('\n');
|
|
706
|
+
const strictPrompt = `Extract geotechnical engineering content directly from this document page image. Respond with ONLY a JSON object:
|
|
707
|
+
{
|
|
708
|
+
"documentClass": "<borehole-log|geology-log|lab-report|rock-mass-document|site-investigation-report|visual-appendix-document|geotechnical-document|unknown>",
|
|
709
|
+
"title": "<short visible page/report title or null>",
|
|
710
|
+
"summary": "<brief technical summary of the visible page>",
|
|
711
|
+
"materials": [
|
|
712
|
+
{
|
|
713
|
+
"kind": "<soil|rock|fill|groundwater|mixed|other>",
|
|
714
|
+
"description": "<visible ground type, soil/rock layer, lithology, or visual observation>",
|
|
715
|
+
"uscsSymbol": "<USCS symbol if visible or inferable from visible labels, otherwise null>",
|
|
716
|
+
"lithology": "<lithology if visible or null>"
|
|
717
|
+
}
|
|
718
|
+
],
|
|
719
|
+
"classifications": [
|
|
720
|
+
{
|
|
721
|
+
"system": "<USCS|RMR|RQD|SPT|grain-size|other>",
|
|
722
|
+
"value": "<visible classification, chart value, or class label>",
|
|
723
|
+
"context": "<borehole/sample/depth/page context or null>"
|
|
724
|
+
}
|
|
725
|
+
],
|
|
726
|
+
"parameters": [
|
|
727
|
+
{
|
|
728
|
+
"name": "<parameter key such as sptN, depth, clayPercent, siltPercent, sandPercent, gravelPercent, waterTableDepth, ucs, rqd, rmr>",
|
|
729
|
+
"valueText": "<visible printed or chart-derived value>",
|
|
730
|
+
"numericValue": <number or null>,
|
|
731
|
+
"unit": "<unit or null>",
|
|
732
|
+
"material": "<material/borehole/sample context or null>",
|
|
733
|
+
"context": "<visible source such as chart/table/borehole log/photo caption or null>"
|
|
734
|
+
}
|
|
735
|
+
],
|
|
736
|
+
"risks": ["<visible engineering risk or limitation>"],
|
|
737
|
+
"recommendations": ["<specific review or follow-up recommendation>"],
|
|
738
|
+
"confidence": <number 0-100>,
|
|
739
|
+
"warnings": ["<warning>", "<warning>"]
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
Prioritize borehole IDs, depths, SPT N values, grain-size percentages, Atterberg/strength values, water table, strata descriptions, and foundation design values. For photos or figures with little tabular data, classify as visual-appendix-document and summarize what the image evidences instead of failing.
|
|
743
|
+
|
|
744
|
+
Context:
|
|
745
|
+
${sharedContext}`;
|
|
746
|
+
const softPrompt = `Read this geotechnical report page visually. Extract any visible borehole log data, chart/table values, strata descriptions, laboratory values, SPT/depth values, or photo evidence. If it is mostly a figure or site photo, summarize the visible geotechnical evidence and mark limitations. Return concise JSON with documentClass, summary, materials, classifications, parameters, risks, recommendations, confidence, and warnings.
|
|
747
|
+
|
|
748
|
+
Context:
|
|
749
|
+
${sharedContext}`;
|
|
750
|
+
const response = await documentVisionWithRetry(imageBase64, mimeType, config, strictPrompt, softPrompt, 'You are an expert geotechnical engineer extracting structured evidence directly from scanned report pages, graphs, tables, borehole logs, and site photographs. Respond with JSON only when possible.', 1200);
|
|
751
|
+
const parsed = parseJsonObject(response.text);
|
|
752
|
+
const fallback = extractGeotechDocumentFallback(response.text);
|
|
753
|
+
const mergedValue = {
|
|
754
|
+
...(fallback.value ?? {}),
|
|
755
|
+
...(parsed.value ?? {}),
|
|
756
|
+
};
|
|
757
|
+
const baseStatus = parsed.baseStatus !== 'failed' ? parsed.baseStatus : fallback.baseStatus;
|
|
758
|
+
const warnings = [...parsed.warnings, ...fallback.warnings];
|
|
759
|
+
if (response.usedFallback) {
|
|
760
|
+
warnings.push('Direct visual extraction required a fallback retry before structured parsing succeeded.');
|
|
761
|
+
}
|
|
762
|
+
if (!parsed.value && !fallback.value) {
|
|
763
|
+
return {
|
|
764
|
+
...createParseSafety('failed', 0, combineWarnings(warnings, ['Direct visual extraction did not recover usable geotechnical content.'])),
|
|
765
|
+
documentClass: null,
|
|
766
|
+
title: null,
|
|
767
|
+
summary: null,
|
|
768
|
+
materials: [],
|
|
769
|
+
classifications: [],
|
|
770
|
+
parameters: [],
|
|
771
|
+
risks: [],
|
|
772
|
+
recommendations: [],
|
|
773
|
+
pageNumber: context.pageNumber ?? null,
|
|
774
|
+
totalPages: context.totalPages ?? null,
|
|
775
|
+
rawLLMText: response.text,
|
|
776
|
+
latencyMs: response.latencyMs,
|
|
777
|
+
};
|
|
778
|
+
}
|
|
779
|
+
return buildGeotechDocumentInsightFromValue({
|
|
780
|
+
mergedValue,
|
|
781
|
+
baseStatus,
|
|
782
|
+
warnings,
|
|
783
|
+
normalizedPageText: response.text,
|
|
784
|
+
context,
|
|
785
|
+
rawLLMText: response.text,
|
|
786
|
+
latencyMs: response.latencyMs,
|
|
787
|
+
});
|
|
788
|
+
}
|
|
643
789
|
export async function interpretGeotechDocumentPage(imageBase64, mimeType, config, context = {}) {
|
|
644
790
|
const seededText = typeof context.pageTextHint === 'string' && context.pageTextHint.trim().length >= 24
|
|
645
791
|
? context.pageTextHint.trim()
|
|
@@ -648,8 +794,11 @@ export async function interpretGeotechDocumentPage(imageBase64, mimeType, config
|
|
|
648
794
|
const transcriptionWarnings = [];
|
|
649
795
|
let transcriptionLatencyMs = 0;
|
|
650
796
|
if (!text) {
|
|
651
|
-
if (context.
|
|
652
|
-
transcriptionWarnings.push('
|
|
797
|
+
if (context.directVisualPreferred) {
|
|
798
|
+
transcriptionWarnings.push('OCR-only transcription was skipped for this image-only page; direct visual extraction was used to preserve charts, tables, and borehole log context.');
|
|
799
|
+
}
|
|
800
|
+
else if (context.textRecoveryAttempted) {
|
|
801
|
+
transcriptionWarnings.push('Upstream text recovery already failed to recover usable text; using direct visual extraction instead of repeating OCR.');
|
|
653
802
|
}
|
|
654
803
|
else {
|
|
655
804
|
const transcription = await transcribeDocumentImageText(imageBase64, mimeType, config);
|
|
@@ -661,7 +810,9 @@ export async function interpretGeotechDocumentPage(imageBase64, mimeType, config
|
|
|
661
810
|
}
|
|
662
811
|
}
|
|
663
812
|
}
|
|
664
|
-
const extracted =
|
|
813
|
+
const extracted = text
|
|
814
|
+
? await extractGeotechDocumentFactsFromText(text, config, context)
|
|
815
|
+
: await extractGeotechDocumentFactsFromImage(imageBase64, mimeType, config, context);
|
|
665
816
|
return {
|
|
666
817
|
...extracted,
|
|
667
818
|
warnings: combineWarnings(extracted.warnings, transcriptionWarnings),
|