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({
|
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user