From db38035577496d3323046e3a67a9acd7f67495be Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Fri, 27 Jun 2025 01:47:52 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84=E8=84=9A=E6=9C=AC=E5=92=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=97=A5=E5=BF=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除了 download_models.sh 和 migrate_kb_to_sqlite.py 脚本,清理不必要的代码。 - 在 base_router.py 中更新日志信息,调整为英文以提高可读性。 - 移除 retriever.restart() 调用,简化重启逻辑。 - 优化 OCRPlugin 中的注释,去除冗余代码。 --- docker/download_models.sh | 5 -- server/routers/base_router.py | 7 +- src/core/migrate_kb_to_sqlite.py | 84 -------------------- src/core/operators.py | 48 ----------- src/plugins/_ocr.py | 6 -- web/src/components/MessageInputComponent.vue | 2 +- web/src/views/AgentView.vue | 6 +- web/src/views/GraphView.vue | 5 +- web/src/views/SettingView.vue | 8 -- 9 files changed, 8 insertions(+), 163 deletions(-) delete mode 100644 docker/download_models.sh delete mode 100644 src/core/migrate_kb_to_sqlite.py delete mode 100644 src/core/operators.py diff --git a/docker/download_models.sh b/docker/download_models.sh deleted file mode 100644 index cafff6d6..00000000 --- a/docker/download_models.sh +++ /dev/null @@ -1,5 +0,0 @@ -#! /bin/sh -source src/.env - -# OCR 模型 -huggingface-cli download SWHL/RapidOCR --local-dir ${MODEL_DIR}/SWHL/RapidOCR \ No newline at end of file diff --git a/server/routers/base_router.py b/server/routers/base_router.py index 4d2b6000..5fc81ae1 100644 --- a/server/routers/base_router.py +++ b/server/routers/base_router.py @@ -4,7 +4,7 @@ from pathlib import Path from fastapi import Request, Body, Depends, HTTPException from fastapi import APIRouter -from src import config, retriever, knowledge_base, graph_base +from src import config, knowledge_base, graph_base from server.utils.auth_middleware import get_admin_user, get_superadmin_user from server.models.user_model import User from src.utils.logging_config import logger @@ -20,18 +20,17 @@ def load_info_config(): # 检查文件是否存在 if not config_path.exists(): - logger.warning(f"配置文件 {config_path} 不存在,使用默认配置") + logger.debug(f"The config file {config_path} does not exist, using default config") return get_default_info_config() # 读取配置文件 with open(config_path, encoding='utf-8') as file: config = yaml.safe_load(file) - # logger.info(f"成功加载信息配置文件: {config_path}") return config except Exception as e: - logger.error(f"加载信息配置文件失败: {e}") + logger.error(f"Failed to load info config: {e}") return get_default_info_config() def get_default_info_config(): diff --git a/src/core/migrate_kb_to_sqlite.py b/src/core/migrate_kb_to_sqlite.py deleted file mode 100644 index 6e3686d5..00000000 --- a/src/core/migrate_kb_to_sqlite.py +++ /dev/null @@ -1,84 +0,0 @@ -import os -import json -import time -from src import config -from src.utils import logger, hashstr -from server.db_manager import db_manager - -def migrate_json_to_sqlite(): - """ - 将旧的JSON格式知识库数据迁移到SQLite数据库 - - Returns: - bool: 是否成功迁移,如果没有JSON文件或已经迁移过则返回False - """ - json_path = os.path.join(config.save_dir, "data", "database.json") - - # 检查JSON文件是否存在 - if not os.path.exists(json_path): - logger.info("没有找到旧的JSON数据文件,无需迁移") - return False - - try: - # 读取旧的JSON文件 - with open(json_path, encoding='utf-8') as f: - old_data = json.load(f) - - if not old_data or not isinstance(old_data, dict) or not old_data.get("databases"): - logger.warning("JSON文件格式不正确或为空") - return False - - # 获取知识库列表 - databases = old_data.get("databases", {}) - - # 迁移每个知识库 - for db_id, db_info in databases.items(): - logger.info(f"正在迁移知识库: {db_info.get('name')} (ID: {db_id})") - - # 创建知识库 - db_manager.create_database( - db_id=db_id, - name=db_info.get('name', '未命名知识库'), - description=db_info.get('description', ''), - embed_model=db_info.get('embed_model'), - dimension=db_info.get('dimension') - ) - - # 迁移文件 - files = db_info.get('files', {}) - for file_id, file_info in files.items(): - logger.info(f" 正在迁移文件: {file_info.get('filename')} (ID: {file_id})") - - # 添加文件 - db_manager.add_file( - db_id=db_id, - file_id=file_id, - filename=file_info.get('filename', '未命名文件'), - path=file_info.get('path', ''), - file_type=file_info.get('type', 'unknown'), - status=file_info.get('status', 'done') - ) - - # 迁移节点 - nodes = file_info.get('nodes', []) - for node in nodes: - db_manager.add_node( - file_id=file_id, - text=node.get('text', ''), - hash_value=node.get('hash'), - start_char_idx=node.get('start_char_idx'), - end_char_idx=node.get('end_char_idx'), - metadata=node.get('metadata', {}) - ) - - # 备份旧的JSON文件 - backup_path = f"{json_path}.bak.{int(time.time())}" - os.rename(json_path, backup_path) - logger.info(f"迁移完成,旧的JSON文件已备份到: {backup_path}") - logger.warning(f"请手动删除旧的JSON文件: {json_path}") - - return True - - except Exception as e: - logger.error(f"迁移过程中出错: {e}") - return False diff --git a/src/core/operators.py b/src/core/operators.py deleted file mode 100644 index af43f26c..00000000 --- a/src/core/operators.py +++ /dev/null @@ -1,48 +0,0 @@ -""" -这里面存放是 RAG 相关的一些组件 -""" - -from src.utils import prompts - -class BaseOperator: - """ - 基类 - """ - template = None - - def __init__(self): - pass - - def call(self, **kwargs): - pass - - def __call__(self, **kwargs): - """ - 所有 RAG 相关组件的调用接口 - """ - return self.call(**kwargs) - - - -class HyDEOperator(BaseOperator): - """ - HyDE 重写查询 - """ - template = prompts.HYDE_PROMPT_TEMPLATE - - def __init__(self): - super().__init__() - - @classmethod - def call(cls, model_callable, query, context_str, **kwargs): - """ - 重写查询 - - Args: - model_callable: 模型调用函数 - query: 查询 - context_str: 上下文 - """ - prompt = cls.template.format(query=query, context_str=context_str) - response = model_callable(prompt) - return response diff --git a/src/plugins/_ocr.py b/src/plugins/_ocr.py index d306ed79..8e01b23d 100644 --- a/src/plugins/_ocr.py +++ b/src/plugins/_ocr.py @@ -123,12 +123,6 @@ class OCRPlugin: raise FileNotFoundError(f"PDF file not found: {pdf_path}") try: - # 检查是否为文本PDF,可能会出现错误,比如每一页都有可读取的水印文字,但是内容本身是扫描件,需要使用OCR处理 - # if is_text_pdf(pdf_path): - # from src.core.indexing import pdfreader - # logger.info("PDF file is text, use llama_index.readers.file to read") - # return pdfreader(pdf_path) - images = [] pdfDoc = fitz.open(pdf_path) diff --git a/web/src/components/MessageInputComponent.vue b/web/src/components/MessageInputComponent.vue index 41187002..12efb7f9 100644 --- a/web/src/components/MessageInputComponent.vue +++ b/web/src/components/MessageInputComponent.vue @@ -137,7 +137,7 @@ onMounted(() => { width: 100%; height: auto; margin: 0 auto; - padding: 0.4rem 0.75rem; + padding: 0.6rem 0.75rem 0.4rem 0.75rem; border: 2px solid var(--gray-200); border-radius: 0.8rem; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); diff --git a/web/src/views/AgentView.vue b/web/src/views/AgentView.vue index 37ac801b..dd57f1be 100644 --- a/web/src/views/AgentView.vue +++ b/web/src/views/AgentView.vue @@ -58,7 +58,7 @@