From e34711793e50b54bdca76d3e72dd3ef9dcf36d84 Mon Sep 17 00:00:00 2001 From: luke Date: Tue, 3 Jun 2025 23:31:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81LLM=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E5=8C=BA=E9=85=8D=E7=BD=AE=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 2 +- pages/settings.html | 5 +++++ readme.md | 1 + scripts/config.js | 3 +++ scripts/llm.js | 14 ++++++++++---- scripts/settings.js | 18 +++++++++++++++--- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/manifest.json b/manifest.json index cea2096..7bde9e3 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "渠道应用开发部知识库", - "version": "2.0.1", + "version": "2.0.2", "description": "通过关键词快速搜索内部文档", "permissions": ["storage"], "host_permissions": [ diff --git a/pages/settings.html b/pages/settings.html index 3362a5b..f583e26 100644 --- a/pages/settings.html +++ b/pages/settings.html @@ -139,6 +139,11 @@
超出有效期将重新获取
+
+ + +
固定值:部门知识库
+
diff --git a/readme.md b/readme.md index 276efe9..a2ad6a4 100644 --- a/readme.md +++ b/readme.md @@ -5,4 +5,5 @@ |------------|--------|---------|---------------------| | 2025.06.02 | V2.0.0 | Luke.Ye | 完成插件配置化改造 | | 2025.06.03 | V2.0.1 | Luke.Ye | 完成llm token过期时间的配置化 | +| 2025.06.03 | V2.0.2 | Luke.Ye | 支持LLM工作区配置化 | diff --git a/scripts/config.js b/scripts/config.js index a5138fd..5bb93b3 100644 --- a/scripts/config.js +++ b/scripts/config.js @@ -1,6 +1,7 @@ const defaultConfig = { tokenExpireHours: 24, llmTokenExpireHours: 24, + llmWorkspaceName: "部门知识库", apiConfig: { materialPublicUrl: { name: "材料公开地址", @@ -84,6 +85,8 @@ function loadMergedConfig() { res.customConfig.tokenExpireHours != null ? res.customConfig.tokenExpireHours : merged.tokenExpireHours; merged.llmTokenExpireHours = res.customConfig.llmTokenExpireHours != null ? res.customConfig.llmTokenExpireHours : merged.llmTokenExpireHours; + merged.llmWorkspaceName = + res.customConfig.llmWorkspaceName != null ? res.customConfig.llmWorkspaceName : merged.llmWorkspaceName; for (const key in merged.apiConfig) { const override = res.customConfig.apiConfig?.[key]; if (override) { diff --git a/scripts/llm.js b/scripts/llm.js index 39b31c9..889c9dd 100644 --- a/scripts/llm.js +++ b/scripts/llm.js @@ -323,6 +323,7 @@ async function getLLMToken(forceRefresh = false) { async function getLLMWorkspaceSlug(token, forceRefresh = false) { const config = await loadMergedConfig(); const wsCfg = config.apiConfig.workspaces; + const llmWorkspaceName = config.llmWorkspaceName; const workspacesField = wsCfg.responseParams.find(p => p.field)?.field; return new Promise((resolve, reject) => { @@ -342,10 +343,15 @@ async function getLLMWorkspaceSlug(token, forceRefresh = false) { const data = await response.json(); const list = data[workspacesField] || []; - if (list.length > 0 && list[0].slug) { - chrome.storage.local.set({ llmWorkspaceSlug: list[0].slug, llmWorkspaceAt: now }); - log("获取llmWorkspaceSlug: " + JSON.stringify(list)) - resolve(list[0].slug); + + let target = list.find(ws => ws.name === llmWorkspaceName); + // 若找不到,默认用第一个 + if (!target && list.length > 0) target = list[0]; + + if (target && target.slug) { + chrome.storage.local.set({ llmWorkspaceSlug: target.slug, llmWorkspaceAt: now }); + log("获取llmWorkspaceSlug: " + JSON.stringify(target)); + resolve(target.slug); } else { reject("未获取到LLM工作区slug"); } diff --git a/scripts/settings.js b/scripts/settings.js index 0b4f999..dc1b7c0 100644 --- a/scripts/settings.js +++ b/scripts/settings.js @@ -5,6 +5,7 @@ function getMergedConfig(callback) { function renderConfig(config) { document.getElementById("tokenExpireHours").value = config.tokenExpireHours; document.getElementById("llmTokenExpireHours").value = config.llmTokenExpireHours; + document.getElementById("llmWorkspaceName").value = config.llmWorkspaceName; const container = document.getElementById("endpointSection"); container.innerHTML = ""; @@ -56,10 +57,17 @@ function renderConfig(config) { function collectUserConfig() { let tokenExpireHours = parseInt(document.getElementById("tokenExpireHours").value); - if (isNaN(tokenExpireHours) || tokenExpireHours > 168 || tokenExpireHours < 0) tokenExpireHours = 24; + if (isNaN(tokenExpireHours) || tokenExpireHours > 168 || tokenExpireHours < 0) { + tokenExpireHours = 24; + } let llmTokenExpireHours = parseInt(document.getElementById("llmTokenExpireHours").value); - if (isNaN(llmTokenExpireHours) || llmTokenExpireHours > 168 || llmTokenExpireHours < 0) llmTokenExpireHours = 24; + if (isNaN(llmTokenExpireHours) || llmTokenExpireHours > 168 || llmTokenExpireHours < 0) { + llmTokenExpireHours = 24; + } + + let llmWorkspaceName = document.getElementById("llmWorkspaceName").value; + llmWorkspaceName = llmWorkspaceName && llmWorkspaceName.trim() ? llmWorkspaceName.trim() : "部门知识库"; const apiConfig = {}; @@ -82,7 +90,7 @@ function collectUserConfig() { } } - return { tokenExpireHours, llmTokenExpireHours, apiConfig }; + return { tokenExpireHours, llmTokenExpireHours, llmWorkspaceName, apiConfig }; } @@ -108,4 +116,8 @@ document.addEventListener("DOMContentLoaded", () => { const popupUrl = chrome.runtime.getURL("pages/popup.html"); chrome.tabs.create({ url: popupUrl }); }); + document.getElementById("llmWorkspaceName").addEventListener("change", function() { + log("llmWorkspaceName有变化,清空缓存!") + chrome.storage.local.remove(["llmWorkspaceSlug", "llmWorkspaceAt"]); + }); });