# coding=utf-8 """ @project: maxkb @Author:虎 @file: text_split_handle.py @date:2024/3/27 18:19 @desc: """ import re from typing import List import fitz import os import tempfile import logging from langchain_community.document_loaders import PyPDFLoader from common.handle.base_split_handle import BaseSplitHandle from common.util.split_model import SplitModel import time default_pattern_list = [re.compile('(?<=^)# .*|(?<=\\n)# .*'), re.compile('(?<=\\n)(? 0: split_model = SplitModel(pattern_list, with_filter, limit) else: split_model = SplitModel(default_pattern_list, with_filter=with_filter, limit=limit) except BaseException as e: max_kb.error(f"File: {file.name}, error: {e}") return {'name': file.name, 'content': []} finally: pdf_document.close() # 处理完后可以删除临时文件 os.remove(temp_file_path) return {'name': file.name, 'content': split_model.parse(content) } def support(self, file, get_buffer): file_name: str = file.name.lower() if file_name.endswith(".pdf") or file_name.endswith(".PDF"): return True return False