diff --git a/public/app.js b/public/app.js index a034da2..5b6a7be 100644 --- a/public/app.js +++ b/public/app.js @@ -2657,10 +2657,11 @@ const initApp = () => { showRecordState('processing'); try { + const turmaData = localStorage.getItem('camila_turma') || '[]'; const res = await fetch('/api/observacao/analisar', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ transcribedText: text }) + body: JSON.stringify({ transcribedText: text, turmaContext: JSON.parse(turmaData) }) }); if (!res.ok) { diff --git a/server.js b/server.js index 25e9e5d..04ad74f 100644 --- a/server.js +++ b/server.js @@ -2068,7 +2068,7 @@ app.post('/api/observacao/transcrever', requireAuth, multerUpload.single('audio' // Rota: POST /api/observacao/analisar — recebe texto transcrito e gera relatório pedagógico app.post('/api/observacao/analisar', requireAuth, async (req, res) => { - const { transcribedText } = req.body; + const { transcribedText, turmaContext } = req.body; if (!transcribedText || transcribedText.trim().length < 5) { return res.status(400).json({ error: 'Texto muito curto ou inexistente para análise.' }); } @@ -2077,9 +2077,20 @@ app.post('/api/observacao/analisar', requireAuth, async (req, res) => { const agentConfig = readAgentConfig(); const agentName = agentConfig.agentName || "Kemily"; - const reportPrompt = `Você é a ${agentName}, assistente pedagógica da professora Camila Martella Gasparini Reifonas. + let contextStr = ''; + if (turmaContext && Array.isArray(turmaContext) && turmaContext.length > 0) { + contextStr = `\nCONTEXTO DA TURMA DA PROFESSORA (IMPORTANTE):\nEsta é a lista atualizada das crianças cadastradas na "Minha Turma".\nATENÇÃO: Se algum nome no áudio corresponder a uma criança listada abaixo, você DEVE incorporar as necessidades ou condições relatadas nela para enriquecer o relatório, especialmente se a criança tiver "especial": true (Educação Especial). Se a criança for especial, a análise da observação deve ser orientada por essa condição e pelo diagnóstico associado.\nLista de Crianças:\n`; + contextStr += JSON.stringify(turmaContext.map(c => ({ + nome: c.nome, + apelido: c.apelido, + especial: c.especial, + diagnostico_observacoes: c.especialDetalhes + })), null, 2); + contextStr += `\n\n`; + } -Ela acabou de registrar uma observação sobre seus alunos da educação infantil. Sua tarefa é ANALISAR o texto e retornar UM OBJETO JSON (sem markdown, sem código, apenas o JSON puro) com: + const reportPrompt = `Você é a ${agentName}, assistente pedagógica da professora Camila Martella Gasparini Reifonas. +${contextStr}Ela acabou de registrar uma observação sobre seus alunos da educação infantil. Sua tarefa é ANALISAR o texto e retornar UM OBJETO JSON (sem markdown, sem código, apenas o JSON puro) com: { "criancas": ["lista de nomes de crianças mencionadas ou 'null' se não identificar nenhuma"],