diff --git a/server.js b/server.js index 1886a1a..4979628 100644 --- a/server.js +++ b/server.js @@ -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);