diff --git a/scratch/check_query.js b/scratch/check_query.js new file mode 100644 index 0000000..ca4138a --- /dev/null +++ b/scratch/check_query.js @@ -0,0 +1,40 @@ +const { Pool } = require('pg'); +const dbPool = new Pool({ + connectionString: process.env.DATABASE_URL || 'postgresql://postgres:postgres@localhost:5432/postgres' +}); + +async function test() { + try { + const crianca = 'Maria'; + let sql = ` + SELECT date, time, report, criancas, tags + FROM escola.observacoes + WHERE 1=1 + `; + const params = []; + let pCount = 1; + + if (crianca && crianca !== 'todas') { + sql += ` AND ( + (jsonb_typeof(criancas) = 'array' AND EXISTS ( + SELECT 1 FROM jsonb_array_elements_text(criancas) AS c + WHERE LOWER(c) LIKE $${pCount} + )) + OR criancas IS NULL + )`; + params.push(`%${crianca.toLowerCase()}%`); + pCount++; + } + + sql += ` ORDER BY date ASC`; + const dbRes = await dbPool.query(sql, params); + console.log('Quantidade de observações:', dbRes.rows.length); + console.log('Linhas:', dbRes.rows.map(r => ({ date: r.date, criancas: r.criancas }))); + } catch (err) { + console.error(err); + } finally { + await dbPool.end(); + } +} + +test(); diff --git a/server.js b/server.js index 71790d7..e155ef4 100644 --- a/server.js +++ b/server.js @@ -968,8 +968,13 @@ app.post('/api/modelos/gerar-relatorio', requireAuth, async (req, res) => { const agentName = agentConfig.agentName || "Kemily"; const isGlobal = crianca === 'todas'; + const targetStudentInfo = isGlobal + ? '' + : `\nATENÇÃO CRÍTICA: A criança que está sendo avaliada e para quem você deve gerar o relatório individual é especificamente: "${crianca}". Todas as observações, avanços, preferências e conclusões descritas na PARTE 2 (Desenvolvimento Individual) devem referir-se exclusivamente a ${crianca}. Nunca confunda ${crianca} com outros colegas eventualmente citados nas observações (como Joãozinho, Vanderlei, etc.), e não atribua as ações deles a ela.\n`; + const systemPrompt = `Você é a ${agentName}, uma assistente pedagógica e especialista em educação infantil. Seu objetivo é analisar o histórico de observações ${isGlobal ? 'da turma' : 'de uma criança'} e redigir um relatório pedagógico consolidado e profissional ${isGlobal ? 'globalizado da sala de aula / turma' : 'sobre o desenvolvimento individual desta criança'}. +${targetStudentInfo} Você DEVE estruturar o relatório seguindo exatamente as seções e diretrizes fornecidas no modelo de relatório selecionado.