19 lines
1.0 KiB
JavaScript
19 lines
1.0 KiB
JavaScript
/** Only extraction provenance crosses the AI boundary, never a client approval flag. */
|
||
export function extractionReview(input) {
|
||
const sources=(Array.isArray(input) ? input : input ? [input] : []).map(source=>({
|
||
fileName:typeof source.fileName === 'string' ? source.fileName.slice(0,200) : '',
|
||
ocr:source.ocr === true,
|
||
pageCount:Number.isInteger(source.pageCount) && source.pageCount>0 ? source.pageCount : null,
|
||
usedPages:Number.isInteger(source.usedPages) && source.usedPages>=0 ? source.usedPages : null,
|
||
complete:source.complete !== false,
|
||
}));
|
||
const issues=[];
|
||
for(const source of sources) {
|
||
const name=source.fileName || 'Belge';
|
||
if(source.ocr) issues.push(`${name}: OCR metni resmi belgeyle karşılaştırılmalı; karakter ve miktar hataları olabilir.`);
|
||
if(!source.complete || (source.pageCount != null && source.usedPages != null && source.usedPages<source.pageCount))
|
||
issues.push(`${name}: belgenin bütün sayfaları okunmadı.`);
|
||
}
|
||
return {sources,issues};
|
||
}
|