refactor: 将 services 和 adapters 移动到 graphs 目录
- 将 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
This commit is contained in:
parent
a963241088
commit
b19fdcb9f5
@ -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))
|
||||
|
||||
|
||||
@ -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 的生产级向量知识库,适合高性能部署"})
|
||||
|
||||
4
src/knowledge/graphs/__init__.py
Normal file
4
src/knowledge/graphs/__init__.py
Normal file
@ -0,0 +1,4 @@
|
||||
# graphs 目录的包初始化文件
|
||||
from .adapters import GraphAdapter, UploadGraphAdapter, LightRAGGraphAdapter, GraphAdapterFactory
|
||||
|
||||
__all__ = ["GraphAdapter", "UploadGraphAdapter", "LightRAGGraphAdapter", "GraphAdapterFactory"]
|
||||
@ -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"):
|
||||
@ -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
|
||||
@ -95,10 +95,14 @@
|
||||
<a-tabs v-model:activeKey="detailTab" class="detail-tabs">
|
||||
<a-tab-pane key="general">
|
||||
<template #tab>
|
||||
<span class="tab-title"><Settings2 :size="14" />通用</span>
|
||||
<span class="tab-title"><Settings2 :size="14" />信息</span>
|
||||
</template>
|
||||
<div class="tab-content">
|
||||
<div class="info-grid">
|
||||
<div class="info-item" v-if="currentServer.description">
|
||||
<label>描述</label>
|
||||
<span>{{ currentServer.description }}</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<label>传输类型</label>
|
||||
<span>
|
||||
@ -107,6 +111,12 @@
|
||||
</a-tag>
|
||||
</span>
|
||||
</div>
|
||||
<div class="info-item" v-if="Array.isArray(currentServer.tags) && currentServer.tags.length > 0">
|
||||
<label>标签</label>
|
||||
<span>
|
||||
<a-tag v-for="tag in currentServer.tags" :key="tag">{{ tag }}</a-tag>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- HTTP 类型显示 URL -->
|
||||
<template v-if="currentServer.transport === 'streamable_http' || currentServer.transport === 'sse'">
|
||||
@ -148,16 +158,6 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<div class="info-item" v-if="currentServer.description">
|
||||
<label>描述</label>
|
||||
<span>{{ currentServer.description }}</span>
|
||||
</div>
|
||||
<div class="info-item" v-if="Array.isArray(currentServer.tags) && currentServer.tags.length > 0">
|
||||
<label>标签</label>
|
||||
<span>
|
||||
<a-tag v-for="tag in currentServer.tags" :key="tag">{{ tag }}</a-tag>
|
||||
</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<label>创建时间</label>
|
||||
<span>{{ formatTime(currentServer.created_at) }}</span>
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user