From b19fdcb9f5befc8d693eedfa83b24aff9b97d094 Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Tue, 3 Mar 2026 14:31:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=B0=86=20services=20=E5=92=8C=20?= =?UTF-8?q?adapters=20=E7=A7=BB=E5=8A=A8=E5=88=B0=20graphs=20=E7=9B=AE?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 src/knowledge/services/upload_graph_service.py 移动到 src/knowledge/graphs/ - 将 src/knowledge/adapters/ 整个目录移动到 src/knowledge/graphs/adapters/ - 更新所有导入路径:src.knowledge.adapters → src.knowledge.graphs.adapters - 保持原有的延迟导入设计以解决循环依赖问题 - 保持向后兼容性:src.knowledge.__init__ 仍然导出 UploadGraphService 和 GraphDatabase 影响范围: - server/routers/graph_router.py - src/knowledge/__init__.py --- server/routers/graph_router.py | 8 +++---- src/knowledge/__init__.py | 2 +- src/knowledge/graphs/__init__.py | 4 ++++ .../{ => graphs}/adapters/__init__.py | 0 src/knowledge/{ => graphs}/adapters/base.py | 0 .../{ => graphs}/adapters/factory.py | 0 .../{ => graphs}/adapters/lightrag.py | 0 src/knowledge/{ => graphs}/adapters/upload.py | 4 ++-- .../upload_graph_service.py | 2 +- web/src/components/McpServersComponent.vue | 22 +++++++++---------- web/src/components/SkillsManagerComponent.vue | 2 +- 11 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 src/knowledge/graphs/__init__.py rename src/knowledge/{ => graphs}/adapters/__init__.py (100%) rename src/knowledge/{ => graphs}/adapters/base.py (100%) rename src/knowledge/{ => graphs}/adapters/factory.py (100%) rename src/knowledge/{ => graphs}/adapters/lightrag.py (100%) rename src/knowledge/{ => graphs}/adapters/upload.py (96%) rename src/knowledge/{services => graphs}/upload_graph_service.py (99%) diff --git a/server/routers/graph_router.py b/server/routers/graph_router.py index ccbad5d8..cf5ba00c 100644 --- a/server/routers/graph_router.py +++ b/server/routers/graph_router.py @@ -4,8 +4,8 @@ from fastapi import APIRouter, Body, Depends, HTTPException, Query from server.utils.auth_middleware import get_admin_user from src import graph_base, knowledge_base -from src.knowledge.adapters.base import GraphAdapter -from src.knowledge.adapters.factory import GraphAdapterFactory +from src.knowledge.graphs.adapters.base import GraphAdapter +from src.knowledge.graphs.adapters.factory import GraphAdapterFactory from src.storage.postgres.models_business import User from src.storage.minio.client import StorageError from src.utils.logging_config import logger @@ -64,7 +64,7 @@ async def get_graphs(current_user: User = Depends(get_admin_user)): neo4j_info = graph_base.get_graph_info() if neo4j_info: # 直接使用 Upload 适配器的默认 metadata - from src.knowledge.adapters.upload import UploadGraphAdapter + from src.knowledge.graphs.adapters.upload import UploadGraphAdapter capabilities = _get_capabilities_from_metadata(UploadGraphAdapter._get_metadata(None)) @@ -85,7 +85,7 @@ async def get_graphs(current_user: User = Depends(get_admin_user)): # 2. 获取 LightRAG 数据库信息 lightrag_dbs = await knowledge_base.get_lightrag_databases() # 直接使用 LightRAG 适配器的默认 metadata - from src.knowledge.adapters.lightrag import LightRAGGraphAdapter + from src.knowledge.graphs.adapters.lightrag import LightRAGGraphAdapter capabilities = _get_capabilities_from_metadata(LightRAGGraphAdapter._get_metadata(None)) diff --git a/src/knowledge/__init__.py b/src/knowledge/__init__.py index 8fec1777..c37d2c52 100644 --- a/src/knowledge/__init__.py +++ b/src/knowledge/__init__.py @@ -6,7 +6,7 @@ from .implementations.dify import DifyKB from .implementations.lightrag import LightRagKB from .implementations.milvus import MilvusKB from .manager import KnowledgeBaseManager -from .services.upload_graph_service import UploadGraphService +from .graphs.upload_graph_service import UploadGraphService # 注册知识库类型 KnowledgeBaseFactory.register("milvus", MilvusKB, {"description": "基于 Milvus 的生产级向量知识库,适合高性能部署"}) diff --git a/src/knowledge/graphs/__init__.py b/src/knowledge/graphs/__init__.py new file mode 100644 index 00000000..925becaa --- /dev/null +++ b/src/knowledge/graphs/__init__.py @@ -0,0 +1,4 @@ +# graphs 目录的包初始化文件 +from .adapters import GraphAdapter, UploadGraphAdapter, LightRAGGraphAdapter, GraphAdapterFactory + +__all__ = ["GraphAdapter", "UploadGraphAdapter", "LightRAGGraphAdapter", "GraphAdapterFactory"] diff --git a/src/knowledge/adapters/__init__.py b/src/knowledge/graphs/adapters/__init__.py similarity index 100% rename from src/knowledge/adapters/__init__.py rename to src/knowledge/graphs/adapters/__init__.py diff --git a/src/knowledge/adapters/base.py b/src/knowledge/graphs/adapters/base.py similarity index 100% rename from src/knowledge/adapters/base.py rename to src/knowledge/graphs/adapters/base.py diff --git a/src/knowledge/adapters/factory.py b/src/knowledge/graphs/adapters/factory.py similarity index 100% rename from src/knowledge/adapters/factory.py rename to src/knowledge/graphs/adapters/factory.py diff --git a/src/knowledge/adapters/lightrag.py b/src/knowledge/graphs/adapters/lightrag.py similarity index 100% rename from src/knowledge/adapters/lightrag.py rename to src/knowledge/graphs/adapters/lightrag.py diff --git a/src/knowledge/adapters/upload.py b/src/knowledge/graphs/adapters/upload.py similarity index 96% rename from src/knowledge/adapters/upload.py rename to src/knowledge/graphs/adapters/upload.py index 44c53cf5..26d61906 100644 --- a/src/knowledge/adapters/upload.py +++ b/src/knowledge/graphs/adapters/upload.py @@ -1,6 +1,6 @@ from typing import TYPE_CHECKING, Any -from src.knowledge.adapters.base import BaseNeo4jAdapter +from src.knowledge.graphs.adapters.base import BaseNeo4jAdapter from .base import GraphAdapter, GraphMetadata @@ -15,7 +15,7 @@ class UploadGraphAdapter(GraphAdapter): super().__init__(config) # 延迟导入以避免循环导入 - from src.knowledge.services.upload_graph_service import UploadGraphService + from src.knowledge.graphs.upload_graph_service import UploadGraphService # 初始化业务逻辑服务 if graph_db_instance and hasattr(graph_db_instance, "_service"): diff --git a/src/knowledge/services/upload_graph_service.py b/src/knowledge/graphs/upload_graph_service.py similarity index 99% rename from src/knowledge/services/upload_graph_service.py rename to src/knowledge/graphs/upload_graph_service.py index b9b69716..bf3a17c7 100644 --- a/src/knowledge/services/upload_graph_service.py +++ b/src/knowledge/graphs/upload_graph_service.py @@ -6,7 +6,7 @@ import warnings from urllib.parse import urlparse from src import config -from src.knowledge.adapters.base import Neo4jConnectionManager +from src.knowledge.graphs.adapters.base import Neo4jConnectionManager from src.models import select_embedding_model from src.storage.minio.client import get_minio_client from src.utils import logger diff --git a/web/src/components/McpServersComponent.vue b/web/src/components/McpServersComponent.vue index 95812a2e..1b0ab7a1 100644 --- a/web/src/components/McpServersComponent.vue +++ b/web/src/components/McpServersComponent.vue @@ -95,10 +95,14 @@
+
+ + {{ currentServer.description }} +
@@ -107,6 +111,12 @@
+
+ + + {{ tag }} + +
-
- - {{ currentServer.description }} -
-
- - - {{ tag }} - -
{{ formatTime(currentServer.created_at) }} diff --git a/web/src/components/SkillsManagerComponent.vue b/web/src/components/SkillsManagerComponent.vue index 8d11c46d..27e2d389 100644 --- a/web/src/components/SkillsManagerComponent.vue +++ b/web/src/components/SkillsManagerComponent.vue @@ -607,7 +607,7 @@ defineExpose({ /* 依赖配置 */ .config-view { - padding: 32px; flex: 1; overflow-y: auto; + padding: 16px; flex: 1; overflow-y: auto; .config-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 32px; flex-shrink: 0;