chatbot-js / brain.js
mr4's picture
Upload 26 files
91111e4 verified
// ============================================================
// brain.js — Load RiveScript brain data từ file .rive
// ============================================================
/**
* BRAIN_DATA — Dữ liệu hội thoại RiveScript cho 3 ngôn ngữ.
* Được load từ các file .rive trong thư mục brain/.
* Mỗi key (vi, en, ja) chứa nội dung RiveScript dạng chuỗi.
*/
var BRAIN_DATA = {
vi: '',
en: '',
ja: ''
};
/**
* Danh sách file .rive tương ứng với mỗi ngôn ngữ.
*/
var BRAIN_FILES = {
vi: 'brain/vi.rive',
en: 'brain/en.rive',
ja: 'brain/ja.rive'
};
/**
* Load nội dung file .rive cho một ngôn ngữ.
* @param {string} lang - Mã ngôn ngữ ("vi", "en", "ja")
* @returns {Promise<string>} Nội dung file .rive
*/
async function loadBrainFile(lang) {
var filePath = BRAIN_FILES[lang];
if (!filePath) {
console.error('Không tìm thấy file brain cho ngôn ngữ:', lang);
return '';
}
try {
var response = await fetch(filePath);
if (!response.ok) {
throw new Error('HTTP ' + response.status);
}
return await response.text();
} catch (err) {
console.error('Lỗi load brain file [' + lang + ']:', err);
return '';
}
}
/**
* Load tất cả brain files cho 3 ngôn ngữ.
* Gọi hàm này trước khi khởi tạo bot.
* @returns {Promise<void>}
*/
async function loadAllBrains() {
var langs = Object.keys(BRAIN_FILES);
var promises = langs.map(function (lang) {
return loadBrainFile(lang).then(function (content) {
BRAIN_DATA[lang] = content;
});
});
await Promise.all(promises);
}