My-Offline-AI / script.js
flixnetf435's picture
Create script.js
00e5b82 verified
Raw
History Blame Contribute Delete
1.45 kB
const worker = new Worker('worker.js', { type: 'module' });
const sendBtn = document.getElementById('send-button');
const statusText = document.getElementById('status-text');
const progressBar = document.getElementById('progress-bar-fill');
const chatBox = document.getElementById('chat-box');
// بدء تحميل المحرك من الـ Worker
worker.postMessage({ type: 'load' });
worker.onmessage = (e) => {
const { type, data, output } = e.data;
if (type === 'progress') {
const percent = (data.loaded / data.total) * 100;
progressBar.style.width = percent + '%';
statusText.innerText = `جاري التحميل: ${Math.round(percent)}%`;
}
else if (type === 'ready') {
statusText.innerText = "المحرك جاهز تماماً!";
sendBtn.disabled = false;
sendBtn.style.opacity = "1";
}
else if (type === 'result') {
addMessage('assistant', output);
}
};
function sendMessage() {
const input = document.getElementById('user-input');
const text = input.value.trim();
if (text) {
addMessage('user', text);
worker.postMessage({ type: 'generate', text: text });
input.value = '';
}
}
function addMessage(role, text) {
const msgDiv = document.createElement('div');
msgDiv.className = `message ${role}`;
msgDiv.innerText = text;
chatBox.appendChild(msgDiv);
chatBox.scrollTop = chatBox.scrollHeight;
}