From 4d048e7be8ac75a7f2accb9c5ebf45dcd15f0bd7 Mon Sep 17 00:00:00 2001 From: supreme0597 Date: Sun, 24 May 2026 00:13:05 +0800 Subject: [PATCH] =?UTF-8?q?fix(knowledge):=20=E5=9C=A8=20LITE=5FMODE=20?= =?UTF-8?q?=E4=B8=8B=E5=AE=89=E5=85=A8=E8=B7=B3=E8=BF=87=E4=B8=8D=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E7=9A=84=E7=9F=A5=E8=AF=86=E5=BA=93=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=EF=BC=8C=E9=98=B2=E6=AD=A2=20API=20=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 检查并跳过未注册/不支持的 kb_type,避免抛出 KBNotFoundError 导致接口 500 - 分别在初始化 (_initialize_existing_kbs) 和概览列表查询 (get_databases) 中增加 checks --- backend/package/yuxi/knowledge/manager.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/package/yuxi/knowledge/manager.py b/backend/package/yuxi/knowledge/manager.py index b23ed87d..23f8b3e6 100644 --- a/backend/package/yuxi/knowledge/manager.py +++ b/backend/package/yuxi/knowledge/manager.py @@ -62,6 +62,9 @@ class KnowledgeBaseManager: # 为每种使用中的知识库类型创建实例并加载元数据 for kb_type in kb_types_in_use: + if not KnowledgeBaseFactory.is_type_supported(kb_type): + logger.warning(f"[InitializeKB] Skip initialization for unsupported knowledge base type: {kb_type}") + continue try: kb_instance = self._get_or_create_kb_instance(kb_type) # 让 KB 实例自行加载元数据 @@ -180,6 +183,9 @@ class KnowledgeBaseManager: metadata_reloaded_types: set[str] = set() for row in rows: kb_type = row.kb_type or "lightrag" + if not KnowledgeBaseFactory.is_type_supported(kb_type): + logger.warning(f"Skip database {row.db_id} due to unsupported knowledge base type: {kb_type}") + continue kb_instance = self._get_or_create_kb_instance(kb_type) db_info = kb_instance.get_database_info(row.db_id, include_files=False) if not db_info and kb_type not in metadata_reloaded_types: