diff --git a/pages/popup.html b/pages/popup.html index a41db31..cefe1a1 100644 --- a/pages/popup.html +++ b/pages/popup.html @@ -43,7 +43,6 @@
-
智能助手答案
diff --git a/pages/popup.js b/pages/popup.js index f26315e..bc7879b 100644 --- a/pages/popup.js +++ b/pages/popup.js @@ -286,7 +286,7 @@ document.addEventListener("DOMContentLoaded", async () => { // 实时渲染,思考内容和正式回答分区块 msgBox.innerHTML = (thinkStr - ? `
模型思考过程:${thinkStr}
` + ? `
${thinkStr}
` : "") + `智能助手:${answerStr}`; llmResultContent.scrollTop = llmResultContent.scrollHeight; @@ -405,8 +405,8 @@ document.addEventListener("DOMContentLoaded", async () => { }); } - async function fetchResults(keywords, page) { - log("执行搜索:", keywords, "page:", page); + async function fetchResults(rawInput, page) { + log("执行搜索:", rawInput, "page:", page); if (!token) { log("token 未初始化,跳转 login"); @@ -415,9 +415,9 @@ document.addEventListener("DOMContentLoaded", async () => { } currentPage = page; - lastKeywords = keywords; + lastKeywords = rawInput; - const keywordGroups = keywords.map(k => [k]); + const keywordGroups = parseKeywordGroups(rawInput); const requestBody = { keywordGroups, page: currentPage, @@ -479,21 +479,41 @@ document.addEventListener("DOMContentLoaded", async () => { } } + function parseKeywordGroups(inputStr) { + if (typeof inputStr !== "string") return []; + + return inputStr + .trim() + .split("||") // 用 || 分组(表示 OR) + .map(group => { + group = group.trim(); + if (group.startsWith("(") && group.endsWith(")")) { + group = group.slice(1, -1); // 去括号 + } + return group.split(/\s+/).filter(Boolean); // 空格分词(AND) + }) + .filter(g => g.length > 0); + } + + + function triggerSearch() { if (!token) { log("triggerSearch 中 token 丢失,取消搜索"); return; } - const val = input.value.trim(); - if (!val) return clearResults(); - const keywords = val.split(/\s+/); - updateHistory(val); + + const raw = input?.value?.trim(); + if (!raw) return clearResults(); + + updateHistory(raw); // 并发触发 AnythingLLM + ES - fetchLLMAnswer(val); - fetchResults(keywords, 1); + fetchLLMAnswer(raw); + fetchResults(raw, 1); // 传字符串,不是 keywords[] } + function bindEvents() { log("绑定事件成功"); searchBtn.addEventListener("click", triggerSearch);