Spaces:
Running
Running
| // ============================================================ | |
| // Adapter Registry — Metadata, display names, và đăng ký adapter | |
| // Phụ thuộc: currentLang, ADAPTER_REGISTRY (từ data-loader.js / globalThis), | |
| // bestMatchAdapter, logicAdapterDispatcher, mathematicalEvaluationAdapter, | |
| // specificResponseAdapter, timeAdapter, unitConversionAdapter | |
| // ============================================================ | |
| var ADAPTER_DISPLAY_NAMES = { | |
| specific_response: { vi: 'Phản hồi cụ thể', en: 'Specific Response', ja: '特定応答' }, | |
| time_adapter: { vi: 'Thời gian', en: 'Time', ja: '時間' }, | |
| mathematical_evaluation: { vi: 'Tính toán', en: 'Math', ja: '数学計算' }, | |
| unit_conversion: { vi: 'Chuyển đổi đơn vị', en: 'Unit Conversion', ja: '単位変換' }, | |
| best_match: { vi: 'Best Match', en: 'Best Match', ja: 'ベストマッチ' }, | |
| logic_adapter: { vi: 'Logic Adapter', en: 'Logic Adapter', ja: 'ロジックアダプター' }, | |
| rivescript: { vi: 'RiveScript', en: 'RiveScript', ja: 'RiveScript' }, | |
| fallback_api: { vi: 'Fallback API', en: 'Fallback API', ja: 'Fallback API' }, | |
| web_search: { vi: 'Tìm kiếm Web', en: 'Web Search', ja: 'ウェブ検索' }, | |
| llm_adapter: { vi: 'LLM (WebGPU)', en: 'LLM (WebGPU)', ja: 'LLM(WebGPU)' } | |
| }; | |
| function getAdapterDisplayName(adapterKey) { | |
| var lang = currentLang || 'vi'; | |
| var names = ADAPTER_DISPLAY_NAMES[adapterKey]; | |
| if (!names) return adapterKey; | |
| return names[lang] || names['vi'] || adapterKey; | |
| } | |
| function registerAdapters(bot, lang) { | |
| var ADAPTER_FUNCTIONS = { | |
| best_match: bestMatchAdapter, | |
| logic_adapter: logicAdapterDispatcher, | |
| mathematical_evaluation: mathematicalEvaluationAdapter, | |
| specific_response: specificResponseAdapter, | |
| time_adapter: timeAdapter, | |
| unit_conversion: unitConversionAdapter, | |
| web_search: webSearchAdapter, | |
| llm_adapter: llmAdapter | |
| }; | |
| var adapterNames = Object.keys(ADAPTER_REGISTRY); | |
| for (var i = 0; i < adapterNames.length; i++) { | |
| var name = adapterNames[i]; | |
| var entry = ADAPTER_REGISTRY[name]; | |
| var fn = ADAPTER_FUNCTIONS[name]; | |
| if (typeof fn === 'function') { | |
| // Luôn đăng ký adapter, nhưng wrapper kiểm tra active flag | |
| (function (adapterKey, adapterFn) { | |
| bot.setSubroutine(adapterKey, function (rs, args) { | |
| // Kiểm tra active flag trước khi gọi adapter | |
| if (ADAPTER_REGISTRY[adapterKey] && ADAPTER_REGISTRY[adapterKey].active === false) { | |
| // Adapter bị disabled, trả về thông báo | |
| if (lang === 'en') return 'This adapter is currently disabled.'; | |
| if (lang === 'ja') return 'このアダプターは現在無効です。'; | |
| return 'Adapter này hiện đang bị vô hiệu hóa.'; | |
| } | |
| return adapterFn(rs, args); | |
| }); | |
| })(name, fn); | |
| } | |
| } | |
| } | |
| // Node/test: export to globalThis | |
| if (typeof module !== 'undefined' && module.exports) { | |
| globalThis.ADAPTER_DISPLAY_NAMES = ADAPTER_DISPLAY_NAMES; | |
| globalThis.getAdapterDisplayName = getAdapterDisplayName; | |
| globalThis.registerAdapters = registerAdapters; | |
| } | |