fix: implementa extrator robusto de JSON e abaixa a temperatura do MiniMax para evitar falhas de parse no roteiro de quadrinhos

This commit is contained in:
2026-06-03 12:34:09 +00:00
parent 239eb22730
commit a763372c2e
+16 -4
View File
@@ -356,15 +356,27 @@ Responda APENAS o JSON válido, sem qualquer texto explicativo antes ou depois.`
const r = await callMinimax({ const r = await callMinimax({
system: "Você é um roteirista pedagógico especialista em histórias em quadrinhos infantis para educação básica. Você responde apenas com estruturas JSON válidas.", system: "Você é um roteirista pedagógico especialista em histórias em quadrinhos infantis para educação básica. Você responde apenas com estruturas JSON válidas.",
messages: [{ role: 'user', content: prompt }], messages: [{ role: 'user', content: prompt }],
temperature: 0.7, temperature: 0.3,
max_tokens: 2500 max_tokens: 3000
}); });
let jsonText = r.text; let jsonText = r.text;
// Tenta limpar possíveis tags markdown de código let scriptData;
try {
const firstBrace = jsonText.indexOf('{');
const lastBrace = jsonText.lastIndexOf('}');
if (firstBrace !== -1 && lastBrace !== -1) {
const jsonString = jsonText.substring(firstBrace, lastBrace + 1);
scriptData = JSON.parse(jsonString);
} else {
jsonText = jsonText.replace(/```json/gi, '').replace(/```/g, '').trim(); jsonText = jsonText.replace(/```json/gi, '').replace(/```/g, '').trim();
scriptData = JSON.parse(jsonText);
}
} catch (parseErr) {
console.error('Falha ao parsear JSON do roteiro de quadrinhos. Resposta original:', jsonText);
throw new Error('Formato de resposta inválido retornado pela IA: ' + parseErr.message);
}
const scriptData = JSON.parse(jsonText);
res.json(scriptData); res.json(scriptData);
} catch (error) { } catch (error) {
console.error('Erro ao gerar roteiro dos quadrinhos:', error); console.error('Erro ao gerar roteiro dos quadrinhos:', error);