const analyzeButton = document.getElementById('analyze-button');
const goalsInput = document.getElementById('goals-input');
const feedbackContainer = document.getElementById('feedback-container');
const loadingMessage = document.getElementById('loading-message');
const loadingDots = document.getElementById('loading-dots');
let slavicaGuide = '';
// Animacija tačkica
function animateDots() {
let dotCount = 0;
return setInterval(() => {
dotCount = (dotCount + 1) % 4;
loadingDots.textContent = '.'.repeat(dotCount);
}, 300);
}
// Fetch Slavica's guide
fetch('https://istokpavlovic.com/wp-content/uploads/2024/10/slavica-ciljevi-vodic.txt')
.then(response => response.text())
.then(text => {
slavicaGuide = text;
analyzeButton.disabled = false;
})
.catch(error => {
console.error('Greška pri učitavanju Slavica-inog vodiča:', error);
feedbackContainer.textContent = 'Greška pri učitavanju Slavica-inog vodiča. Molimo osvežite stranicu da biste pokušali ponovo.';
});
analyzeButton.addEventListener('click', async () => {
if (!slavicaGuide) {
feedbackContainer.textContent = 'Slavica-in vodič još nije učitan. Molimo sačekajte i pokušajte ponovo.';
return;
}
loadingMessage.style.display = 'block';
feedbackContainer.innerHTML = ''; // Očisti prethodni sadržaj
feedbackContainer.appendChild(loadingMessage);
const animationInterval = animateDots();
const goals = goalsInput.value;
const prompt = `
Slavica Squire-in vodič za pravilno postavljanje ciljeva:
${slavicaGuide}
Na osnovu Slavica-inih smernica, daj povratnu informaciju o sledećem cilju kao da si Slavica Squire.
Ako cilj treba preformulisati da bi se bolje uskladio sa njenim smernicama, posebno to napomeni.
Važne napomene za davanje feedbacka:
1. Počni direktno sa feedbackom, bez uvodnog obraćanja.
2. Obraćaj se isključivo u ženskom rodu jer su korisnice samo žene.
3. Koristi isključivo ekavicu (srpski jezik, ne ijekavicu).
4. Obraćaj se sa "ti", nemoj persirati.
5. Budi direktna i konkretna u svojim savetima.
6. Koristi emotivno-motivacione emojije umereno tokom teksta, da bi feedback bio dopadljiviji i inspirativniji. Nemoj preterivati - cilj je da tekst bude prijatan za čitanje, a ne kao slikovnica.
7. Zadrži profesionalan ton uprkos korišćenju emojija.
8. Obavezno podeli feedback u više pasusa radi bolje čitljivosti.
Cilj korisnice: ${goals}
Slavica-in feedback (odgovori na srpskom jeziku, poštujući gore navedene smernice):`;
try {
const response = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer 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'
},
body: JSON.stringify({
model: "gpt-4",
messages: [
{role: "system", content: "Ti si Slavica Squire, poznati srpski life coach, stručnjak za postavljanje ciljeva. Odgovaraš na srpskom jeziku, koristeći ekavicu i obraćaš se direktno ženskim korisnicama. Tvoj stil je profesionalan, ali inspirativan, sa umerenim korišćenjem emojija za dodatnu motivaciju. Obavezno deli svoj feedback u više pasusa."},
{role: "user", content: prompt}
],
max_tokens: 2000
})
});
const data = await response.json();
if (data.choices && data.choices.length > 0) {
const feedbackText = data.choices[0].message.content.trim();
// Zameni nove linije sa HTML paragrafima
feedbackContainer.innerHTML = feedbackText.split('\n\n').map(paragraph => `