Spaces:
Paused
Paused
File size: 4,540 Bytes
f3b0f00 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | const AI_TOPIC_PATCH_VERSION = "1.0.0";
function normalizeAiText(text) {
return (text || "")
.toLowerCase()
.replace(/\bai\b/g, " ai ")
.replace(/\ba\.i\b/g, " ai ")
.replace(/a i/g, " ai ")
.replace(/\bllm\b/g, " llm ")
.replace(/\bllms\b/g, " llms ")
.replace(/\bml\b/g, " ml ")
.replace(/\bdl\b/g, " dl ")
.replace(/\bgpt\b/g, " gpt ")
.replace(/\bgemini\b/g, " gemini ")
.replace(/\bqwen\b/g, " qwen ")
.replace(/\bclaude\b/g, " claude ")
.replace(/\bopenai\b/g, " openai ")
.replace(/\bchatgpt\b/g, " chatgpt ")
.replace(/\bdeep learning\b/g, " deep learning ")
.replace(/\bmachine learning\b/g, " machine learning ")
.replace(/\bgenerative ai\b/g, " generative ai ")
.replace(/\bgen ai\b/g, " gen ai ")
.replace(/\bcomputer vision\b/g, " computer vision ")
.replace(/\bnatural language processing\b/g, " natural language processing ")
.replace(/\bnlp\b/g, " nlp ")
.replace(/\brobotics\b/g, " robotics ")
.replace(/\brobot\b/g, " robot ")
.replace(/\bchatbot\b/g, " chatbot ")
.replace(/\bchat bot\b/g, " chatbot ")
.replace(/\btrí tuệ nhân tạo\b/g, " trí tuệ nhân tạo ")
.replace(/\bkhí cụ nhân tạo\b/g, " trí tuệ nhân tạo ")
.replace(/\bthông minh nhân tạo\b/g, " trí tuệ nhân tạo ")
.replace(/\bứng dụng ai\b/g, " ứng dụng ai ")
.replace(/\bdạy học ai\b/g, " dạy học ai ")
.replace(/\btạo ảnh bằng ai\b/g, " tạo ảnh bằng ai ")
.replace(/\btạo video bằng ai\b/g, " tạo video bằng ai ")
.replace(/\bchatbot ai\b/g, " chatbot ai ")
.replace(/\bAI\b/g, " ai ")
.replace(/\bLLM\b/g, " llm ")
.replace(/\bGPT\b/g, " gpt ")
.replace(/\bQwen\b/g, " qwen ")
.replace(/\bClaude\b/g, " claude ")
.replace(/\bOpenAI\b/g, " openai ")
.replace(/\bChatGPT\b/g, " chatgpt ")
.replace(/\bGemini\b/g, " gemini ")
.replace(/\bGenK\b/g, " genk ")
.replace(/\bKimi\b/g, " kimi ")
.replace(/\bKimi K3\b/g, " kimi k3 ")
.replace(/\bKimi k3\b/g, " kimi k3 ");
}
function detectAiTopic(text) {
const t = normalizeAiText(text);
const aiTerms = [
" trí tuệ nhân tạo ", " ai ", " artificial intelligence ", " machine learning ", " deep learning ",
" generative ai ", " gen ai ", " llm ", " llms ", " chatbot ", " chatgpt ", " openai ", " gpt ",
" gemini ", " qwen ", " claude ", " kimi ", " kimi k3 ", " nlp ", " natural language processing ",
" computer vision ", " robotics ", " robot ", " chatbot ai ", " ứng dụng ai ", " dạy học ai ",
" tạo ảnh bằng ai ", " tạo video bằng ai "
];
return aiTerms.some((term) => t.includes(term));
}
function escapeHtml(text) {
return String(text || "")
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
function renderAiTopicChip() {
if (document.getElementById("ai-topic-inline")) return;
const chatMessages = document.getElementById("chat-messages");
if (!chatMessages) return;
const wrap = document.createElement("div");
wrap.className = "topic-tags";
wrap.id = "ai-topic-inline";
const chip = document.createElement("button");
chip.type = "button";
chip.className = "topic-chip ai-topic-chip";
chip.textContent = "# AI";
chip.title = "Mở tin tức AI / trí tuệ nhân tạo";
chip.addEventListener("click", () => {
const chatInput = document.getElementById("chat-input");
if (chatInput) chatInput.value = "Tin tức AI, trí tuệ nhân tạo mới nhất";
const btn = document.getElementById("chat-send-btn");
if (btn) btn.click();
});
wrap.appendChild(chip);
chatMessages.appendChild(wrap);
chatMessages.scrollTop = chatMessages.scrollHeight;
}
function injectAiTopicIntoSearchContext(text) {
const original = text || "";
if (!detectAiTopic(original)) return original;
const aiText = `Chủ đề AI cần ưu tiên: tin tức AI, trí tuệ nhân tạo, machine learning, deep learning, chatbot, generative AI, LLM, Kimi, Qwen, Gemini, GPT, OpenAI, Claude, ứng dụng AI, tạo ảnh bằng AI, tạo video bằng AI.`;
if (original.includes(aiText)) return original;
return `${original}\n\n${aiText}`;
}
window.AiTopicPatch = {
version: AI_TOPIC_PATCH_VERSION,
detectAiTopic,
injectAiTopicIntoSearchContext,
renderAiTopicChip,
};
document.addEventListener("DOMContentLoaded", () => {
window.AiTopicPatch.renderAiTopicChip();
}); |