refactor: 统一导入方式,移除 sys.path 操作
Some checks failed
构建并部署 AI Agent 服务 / deploy (push) Failing after 6m22s

- 重构所有模块导入,移除 sys.path.insert
- 统一使用 from backend.xxx 的绝对导入方式
- rag_core 包内使用相对导入(from .xxx)
- 移动 visualize_graph.py 到 tools/ 目录
- 添加必要的 __init__.py 文件
- 清理废弃文档和脚本
This commit is contained in:
2026-05-04 12:55:45 +08:00
parent 82dde7113e
commit 4209386c77
24 changed files with 43 additions and 809 deletions

View File

@@ -38,10 +38,6 @@ from .config import (
)
# 从 rag_core 重新导出常用组件
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent / "backend"))
from backend.rag_core import (
LlamaCppEmbedder,
QdrantVectorStore,

View File

@@ -11,19 +11,8 @@ from dotenv import load_dotenv
# 加载 .env 文件
load_dotenv()
# 添加项目根目录和 backend 目录到 Python 路径
sys.path.insert(0, str(Path(__file__).parent.parent))
sys.path.insert(0, str(Path(__file__).parent.parent / "backend"))
# 导入方式:条件导入,支持作为脚本运行和作为包导入
if __name__ == "__main__":
# 作为脚本直接运行时使用绝对导入
from rag_indexer.index_builder import IndexBuilder, IndexBuilderConfig
from rag_indexer.splitters import SplitterType
else:
# 作为包导入时使用相对导入
from .index_builder import IndexBuilder, IndexBuilderConfig
from .splitters import SplitterType
from rag_indexer.index_builder import IndexBuilder, IndexBuilderConfig
from rag_indexer.splitters import SplitterType
logging.basicConfig(
level=logging.INFO,

View File

@@ -12,9 +12,6 @@ from pathlib import Path
from dataclasses import dataclass, field
from typing import List, Union, Optional, Any, Dict
# 添加 backend 目录到路径以导入 rag_core
sys.path.insert(0, str(Path(__file__).parent.parent / "backend"))
from httpx import RemoteProtocolError
from langchain_core.documents import Document
from langchain_core.embeddings import Embeddings
@@ -27,16 +24,11 @@ from qdrant_client.http.models import SparseVectorParams
from .loaders import DocumentLoader
from .splitters import SplitterType, get_splitter
# 从 rag_core 导入
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent / "backend"))
from rag_core import LlamaCppEmbedder, QdrantVectorStore, create_docstore, create_parent_retriever
from backend.rag_core import LlamaCppEmbedder, QdrantVectorStore, create_docstore, create_parent_retriever
# 尝试导入新的 model_services如果可用
try:
from app.model_services import get_embedding_service
from backend.app.model_services import get_embedding_service
HAS_MODEL_SERVICES = True
except ImportError:
HAS_MODEL_SERVICES = False