Atualização automática - 2026-06-24 10:36:19

This commit is contained in:
2026-06-24 10:36:19 +00:00
parent 4599398fb6
commit 570190c5f1
3 changed files with 125 additions and 7 deletions
+52 -5
View File
@@ -221,8 +221,19 @@ export const analyzeWithGemini = async (file: File, apiKey: string, model: strin
// Apply programmatic validation
if (standardsContext && standardsContext.length > 0) {
// Assume the first standard matched is the main one for now
return data.map(report => validateCertificateAgainstStandard(report, standardsContext[0] as Standard));
let matchedStandard = standardsContext[0] as Standard;
if (data[0] && data[0].identification && data[0].identification.standards) {
const certNorm = data[0].identification.standards.toLowerCase();
const found = standardsContext.find(s =>
(s.codigo && certNorm.includes(s.codigo.toLowerCase())) ||
(s.id_norma && certNorm.includes(s.id_norma.toLowerCase().replace(/_/g, ' ')))
);
if (found) matchedStandard = found;
}
return data.map(report => {
report.analysisSource = 'Banco Local';
return validateCertificateAgainstStandard(report, matchedStandard);
});
}
return data;
} catch (e) {
@@ -286,7 +297,19 @@ export const analyzeWithOpenAI = async (file: File, apiKey: string, model: strin
const dataJson = cleanAndParseJson(content) as ReportData[];
if (standardsContext && standardsContext.length > 0) {
return dataJson.map(report => validateCertificateAgainstStandard(report, standardsContext[0] as Standard));
let matchedStandard = standardsContext[0] as Standard;
if (dataJson[0] && dataJson[0].identification && dataJson[0].identification.standards) {
const certNorm = dataJson[0].identification.standards.toLowerCase();
const found = standardsContext.find(s =>
(s.codigo && certNorm.includes(s.codigo.toLowerCase())) ||
(s.id_norma && certNorm.includes(s.id_norma.toLowerCase().replace(/_/g, ' ')))
);
if (found) matchedStandard = found;
}
return dataJson.map(report => {
report.analysisSource = 'Banco Local';
return validateCertificateAgainstStandard(report, matchedStandard);
});
}
return dataJson;
};
@@ -380,7 +403,19 @@ export const analyzeWithOllama = async (file: File, endpoint: string, model: str
const dataJson = cleanAndParseJson(content) as ReportData[];
if (standardsContext && standardsContext.length > 0) {
return dataJson.map(report => validateCertificateAgainstStandard(report, standardsContext[0] as Standard));
let matchedStandard = standardsContext[0] as Standard;
if (dataJson[0] && dataJson[0].identification && dataJson[0].identification.standards) {
const certNorm = dataJson[0].identification.standards.toLowerCase();
const found = standardsContext.find(s =>
(s.codigo && certNorm.includes(s.codigo.toLowerCase())) ||
(s.id_norma && certNorm.includes(s.id_norma.toLowerCase().replace(/_/g, ' ')))
);
if (found) matchedStandard = found;
}
return dataJson.map(report => {
report.analysisSource = 'Banco Local';
return validateCertificateAgainstStandard(report, matchedStandard);
});
}
return dataJson;
};
@@ -444,7 +479,19 @@ export const analyzeWithOpenRouter = async (file: File, apiKey: string, model: s
const dataJson = cleanAndParseJson(content) as ReportData[];
if (standardsContext && standardsContext.length > 0) {
return dataJson.map(report => validateCertificateAgainstStandard(report, standardsContext[0] as Standard));
let matchedStandard = standardsContext[0] as Standard;
if (dataJson[0] && dataJson[0].identification && dataJson[0].identification.standards) {
const certNorm = dataJson[0].identification.standards.toLowerCase();
const found = standardsContext.find(s =>
(s.codigo && certNorm.includes(s.codigo.toLowerCase())) ||
(s.id_norma && certNorm.includes(s.id_norma.toLowerCase().replace(/_/g, ' ')))
);
if (found) matchedStandard = found;
}
return dataJson.map(report => {
report.analysisSource = 'Banco Local';
return validateCertificateAgainstStandard(report, matchedStandard);
});
}
return dataJson;
};