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:
@@ -356,15 +356,27 @@ Responda APENAS o JSON válido, sem qualquer texto explicativo antes ou depois.`
|
||||
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.",
|
||||
messages: [{ role: 'user', content: prompt }],
|
||||
temperature: 0.7,
|
||||
max_tokens: 2500
|
||||
temperature: 0.3,
|
||||
max_tokens: 3000
|
||||
});
|
||||
|
||||
let jsonText = r.text;
|
||||
// Tenta limpar possíveis tags markdown de código
|
||||
jsonText = jsonText.replace(/```json/gi, '').replace(/```/g, '').trim();
|
||||
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();
|
||||
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);
|
||||
} catch (error) {
|
||||
console.error('Erro ao gerar roteiro dos quadrinhos:', error);
|
||||
|
||||
Reference in New Issue
Block a user