From 589894720c5c4765343af4b0f9c34abce8fec38f Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Tue, 27 May 2025 11:14:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=A0=87=E8=AE=B0?= =?UTF-8?q?=E7=AD=89=E5=BE=85=E7=8A=B6=E6=80=81=E6=96=87=E4=BB=B6=E4=B8=BA?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/knowledgebase.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/core/knowledgebase.py b/src/core/knowledgebase.py index c9cbd7d0..0cde0921 100644 --- a/src/core/knowledgebase.py +++ b/src/core/knowledgebase.py @@ -43,6 +43,9 @@ class KnowledgeBase: self._load_models() + # 检查所有 waiting 状态的文件并标记为 failed + self._mark_waiting_files_as_failed() + def _to_dict_safely(self, obj): """安全地将对象转换为字典,避免延迟加载问题""" if hasattr(obj, 'to_dict'): @@ -760,6 +763,16 @@ class KnowledgeBase: updated_db = self.update_database_record(db_id, name, description) return updated_db + def _mark_waiting_files_as_failed(self): + """将所有 status 为 'waiting' 的文件标记为 'failed'""" + with db_manager.get_session_context() as session: + waiting_files = session.query(KnowledgeFile).filter_by(status="waiting").all() + if waiting_files: + for file_obj in waiting_files: + file_obj.status = "failed" + session.commit() + logger.info(f"已将 {len(waiting_files)} 个 waiting 状态的文件标记为 failed") + def parse_node_data(node): # Handles both LlamaIndex NodeWithScore and simple dicts/BaseModel instances