diff --git a/public/style.css b/public/style.css index b4a98fe..ec55747 100644 --- a/public/style.css +++ b/public/style.css @@ -2622,8 +2622,8 @@ code { position: fixed; bottom: 24px; right: 24px; - width: 60px; - height: 60px; + width: 48px; + height: 48px; border-radius: 50%; background: var(--brand-green, #10a37f); border: none; @@ -2638,8 +2638,8 @@ code { } .fab-record svg { - width: 28px; - height: 28px; + width: 22px; + height: 22px; } .fab-record:hover { @@ -3402,8 +3402,8 @@ code { position: fixed; bottom: 24px; left: 24px; - width: 60px; - height: 60px; + width: 48px; + height: 48px; border-radius: 50%; background: var(--brand-green, #10a37f); border: none; @@ -3418,8 +3418,8 @@ code { } .fab-tools svg { - width: 28px; - height: 28px; + width: 22px; + height: 22px; } .fab-tools:hover { @@ -3443,8 +3443,17 @@ code { } } -/* Ocultar barra de ferramentas no mobile por padrão */ @media (max-width: 768px) { + .fab-record { + bottom: 104px !important; + right: 16px !important; + } + + .fab-tools { + bottom: 104px !important; + left: 16px !important; + } + .prompt-modes-bar { display: none !important; width: 100%; diff --git a/server.js b/server.js index 6d08d32..e3768ce 100644 --- a/server.js +++ b/server.js @@ -238,7 +238,7 @@ app.post('/api/music/generate', requireAuth, async (req, res) => { rhythmDesc = 'marching children rhythm, playful snare drums, acoustic guitar, brass accent'; } - const stylePrompt = `${rhythmDesc}, ${voiceDesc}, educational children song style, clear pronunciation, 100 BPM`; + const stylePrompt = `${rhythmDesc}, ${voiceDesc}, educational children song style, singing in Brazilian Portuguese, Brazilian Portuguese vocals, clear Brazilian pronunciation, 100 BPM`; // 2. Determinar o tamanho das letras baseado na duração (duracao) let lengthInstructions = 'curta, de apenas 6 a 8 versos'; @@ -3206,7 +3206,7 @@ app.post('/api/chat', requireAuth, async (req, res) => { }, body: JSON.stringify({ model: 'music-2.0', - prompt: stylePrompt, + prompt: `${stylePrompt}, singing in Brazilian Portuguese, Brazilian Portuguese vocals, clear Brazilian pronunciation`, lyrics: lyrics, audio_setting: { sample_rate: 32000, bitrate: 128000, format: 'mp3' } }) @@ -3432,11 +3432,17 @@ app.post('/api/chat', requireAuth, async (req, res) => { console.error('Erro ao integrar observações no prompt da IA:', obsErr); } + const languageDirective = `\n\n⚠️ DIRETRIZ CRÍTICA DE IDIOMA E SAÍDA: +- Você deve responder EXCLUSIVAMENTE em português do Brasil (Brazilian Portuguese). +- Nunca inclua justificativas, introduções, pensamentos, comentários ou notas em inglês. +- Toda a resposta (incluindo qualquer texto lúdico, histórias, explicações ou poemas) deve ser apresentada 100% em português brasileiro, sem misturar outros idiomas. +- Retorne apenas o resultado final que o usuário solicitou.\n\n`; + const dynamicSystemPrompt = { role: "system", - content: KEMILY_SYSTEM_PROMPT.content + content: languageDirective + KEMILY_SYSTEM_PROMPT.content .replace(/Você é a Kemily/g, `Você é a ${agentName}`) - .replace('INFORMAÇÕES PESSOAIS:', `${knowledgeText}${observationsContext}INFORMAÇÕES PESSOAIS:`) + .replace('INFORMAÇÕES PESSOAIS:', `${knowledgeText}${observationsContext}INFORMAÇÕES PESSOAIS:`) + languageDirective }; const enrichedMessages = [dynamicSystemPrompt, ...messages];