From 8ae2a556e4639225c04769d7945af32c6a971c06 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Sat, 25 Oct 2025 15:06:07 +0800 Subject: [PATCH] feat: remove tips from knowledge base creation form and add persistent hints for field modifications --- astrbot/core/pipeline/process_stage/utils.py | 23 ++++++++----------- .../en-US/features/knowledge-base/index.json | 1 - .../zh-CN/features/knowledge-base/index.json | 1 - dashboard/src/views/knowledge-base/KBList.vue | 8 ++----- 4 files changed, 11 insertions(+), 22 deletions(-) diff --git a/astrbot/core/pipeline/process_stage/utils.py b/astrbot/core/pipeline/process_stage/utils.py index 8a319bf8b..e799ad4d0 100644 --- a/astrbot/core/pipeline/process_stage/utils.py +++ b/astrbot/core/pipeline/process_stage/utils.py @@ -1,6 +1,6 @@ from ..context import PipelineContext from astrbot.core.provider.entities import ProviderRequest -from astrbot.api import logger +from astrbot.api import logger, sp async def inject_kb_context( @@ -15,7 +15,6 @@ async def inject_kb_context( p_ctx: Pipeline context req: Provider request """ - from astrbot.core import sp kb_mgr = p_ctx.plugin_manager.context.kb_manager @@ -23,12 +22,12 @@ async def inject_kb_context( session_config = await sp.session_get(umo, "kb_config", default={}) if session_config and "kb_ids" in session_config: - # 使用会话级配置 + # 会话级配置 kb_ids = session_config.get("kb_ids", []) # 如果配置为空列表,明确表示不使用知识库 if not kb_ids: - logger.info(f"[KB注入] 会话 {umo} 已配置为不使用知识库") + logger.info(f"[知识库] 会话 {umo} 已被配置为不使用知识库") return top_k = session_config.get("top_k", 5) @@ -41,33 +40,29 @@ async def inject_kb_context( if kb_helper: kb_names.append(kb_helper.kb.kb_name) else: - logger.warning(f"[KB注入] 知识库不存在或未加载: {kb_id}") + logger.warning(f"[知识库] 知识库不存在或未加载: {kb_id}") invalid_kb_ids.append(kb_id) if invalid_kb_ids: logger.warning( - f"[KB注入] 会话 {umo} 配置的以下知识库无效: {invalid_kb_ids}" + f"[知识库] 会话 {umo} 配置的以下知识库无效: {invalid_kb_ids}" ) if not kb_names: - logger.warning( - f"[KB注入] 会话 {umo} 配置的所有知识库都无效,跳过知识库上下文注入" - ) return - logger.debug(f"[KB注入] 使用会话级配置,知识库数量: {len(kb_names)}") + logger.debug(f"[知识库] 使用会话级配置,知识库数量: {len(kb_names)}") else: - # 回退到全局配置 kb_names = p_ctx.astrbot_config.get("kb_names", []) top_k = p_ctx.astrbot_config.get("kb_final_top_k", 5) - logger.debug(f"[KB注入] 使用全局配置,知识库数量: {len(kb_names)}") + logger.debug(f"[知识库] 使用全局配置,知识库数量: {len(kb_names)}") top_k_fusion = p_ctx.astrbot_config.get("kb_fusion_top_k", 20) if not kb_names: return - logger.debug(f"[KB注入] 开始检索知识库,数量: {len(kb_names)}, top_k={top_k}") + logger.debug(f"[知识库] 开始检索知识库,数量: {len(kb_names)}, top_k={top_k}") kb_context = await kb_mgr.retrieve( query=req.prompt, kb_names=kb_names, @@ -81,5 +76,5 @@ async def inject_kb_context( formatted = kb_context.get("context_text", "") if formatted: results = kb_context.get("results", []) - logger.debug(f"[KB注入] 为会话 {umo} 注入了 {len(results)} 条相关知识块") + logger.debug(f"[知识库] 为会话 {umo} 注入了 {len(results)} 条相关知识块") req.system_prompt = f"{formatted}\n\n{req.system_prompt or ''}" diff --git a/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json b/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json index bfcfa2e31..aa82a3e05 100644 --- a/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json +++ b/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json @@ -30,7 +30,6 @@ "rerankModelLabel": "Rerank Model (Optional)", "providerInfo": "Provider: {id} | Dimensions: {dimensions}", "rerankProviderInfo": "Provider: {id}", - "tips": "Tip: Once you select an embedding model, do not modify the model or vector dimensions, as this will severely affect recall rate.", "cancel": "Cancel", "submit": "Create", "nameRequired": "Please enter knowledge base name" diff --git a/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json b/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json index 4691c4384..107594f10 100644 --- a/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json +++ b/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json @@ -30,7 +30,6 @@ "rerankModelLabel": "重排序模型 (Rerank Model, 可选)", "providerInfo": "提供商: {id} | 维度: {dimensions}", "rerankProviderInfo": "提供商: {id}", - "tips": "提示: 一旦选择了嵌入模型,请不要修改该提供商的模型或向量维度,否则将严重影响召回率。", "cancel": "取消", "submit": "创建", "nameRequired": "请输入知识库名称" diff --git a/dashboard/src/views/knowledge-base/KBList.vue b/dashboard/src/views/knowledge-base/KBList.vue index 33516a215..d9bbe64e6 100644 --- a/dashboard/src/views/knowledge-base/KBList.vue +++ b/dashboard/src/views/knowledge-base/KBList.vue @@ -87,14 +87,14 @@ + :rules="[v => !!v || t('create.nameRequired')]" required class="mb-4" hint="后续如修改知识库名称,需重新在配置文件更新。" persistent-hint /> + :label="t('create.embeddingModelLabel')" variant="outlined" class="mb-4" :disabled="editingKB !== null" hint="嵌入模型选择后无法修改,如需更换请创建新的知识库。" persistent-hint>