From 3c3293818db1843bb2bbadac7d9b477b1d187a8b Mon Sep 17 00:00:00 2001 From: lbykkkk Date: Sun, 20 Oct 2024 01:14:42 +0800 Subject: [PATCH 1/7] Change the word document summary function to document summary function --- crazy_functional.py | 19 +++++- .../{总结word文档.py => 总结文档.py} | 59 +++++-------------- 2 files changed, 32 insertions(+), 46 deletions(-) rename crazy_functions/{总结word文档.py => 总结文档.py} (60%) diff --git a/crazy_functional.py b/crazy_functional.py index de07c1bb..d9df4879 100644 --- a/crazy_functional.py +++ b/crazy_functional.py @@ -21,7 +21,7 @@ def get_crazy_functions(): from crazy_functions.询问多个大语言模型 import 同时问询 from crazy_functions.SourceCode_Analyse import 解析一个Lua项目 from crazy_functions.SourceCode_Analyse import 解析一个CSharp项目 - from crazy_functions.总结word文档 import 总结word文档 + from crazy_functions.总结文档 import 总结文件 from crazy_functions.解析JupyterNotebook import 解析ipynb文件 from crazy_functions.Conversation_To_File import 载入对话历史存档 from crazy_functions.Conversation_To_File import 对话历史存档 @@ -34,6 +34,7 @@ def get_crazy_functions(): from crazy_functions.谷歌检索小助手 import 谷歌检索小助手 from crazy_functions.理解PDF文档内容 import 理解PDF文档内容标准文件输入 from crazy_functions.Latex全文润色 import Latex中文润色 + from crazy_functions.Arxiv_论文对话 import Arxiv_论文对话 from crazy_functions.Latex全文润色 import Latex英文纠错 from crazy_functions.Markdown_Translate import Markdown中译英 from crazy_functions.虚空终端 import 虚空终端 @@ -108,12 +109,12 @@ def get_crazy_functions(): "Function": HotReload(Latex翻译中文并重新编译PDF), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用 "Class": Arxiv_Localize, # 新一代插件需要注册Class }, - "批量总结Word文档": { + "批量总结文档": { "Group": "学术", "Color": "stop", "AsButton": False, "Info": "批量总结word文档 | 输入参数为路径", - "Function": HotReload(总结word文档), + "Function": HotReload(总结文件), }, "解析整个Matlab项目": { "Group": "编程", @@ -347,6 +348,18 @@ def get_crazy_functions(): "Function": HotReload(Latex翻译中文并重新编译PDF), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用 "Class": Arxiv_Localize, # 新一代插件需要注册Class }, + "📚Arxiv论文交互对话(输入arxivID)": { + "Group": "学术", + "Color": "stop", + "AsButton": False, + "AdvancedArgs": True, + "ArgsReminder": r"如果有必要, 请在此处给出自定义翻译命令, 解决部分词汇翻译不准确的问题。 " + r"例如当单词'agent'翻译不准确时, 请尝试把以下指令复制到高级参数区: " + r'If the term "agent" is used in this section, it should be translated to "智能体". ', + "Info": "Arixv论文精细翻译 | 输入参数arxiv论文的ID,比如1812.10695", + "Function": HotReload(Arxiv_论文对话), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用 + "Class": Arxiv_Localize, # 新一代插件需要注册Class + }, "📚本地Latex论文精细翻译(上传Latex项目)[需Latex]": { "Group": "学术", "Color": "stop", diff --git a/crazy_functions/总结word文档.py b/crazy_functions/总结文档.py similarity index 60% rename from crazy_functions/总结word文档.py rename to crazy_functions/总结文档.py index 99f0919b..37213530 100644 --- a/crazy_functions/总结word文档.py +++ b/crazy_functions/总结文档.py @@ -2,33 +2,17 @@ from toolbox import update_ui from toolbox import CatchException, report_exception from toolbox import write_history_to_file, promote_file_to_downloadzone from crazy_functions.crazy_utils import request_gpt_model_in_new_thread_with_ui_alive +from crazy_functions.rag_fns.rag_file_support import extract_text, supports_format + fast_debug = False -def 解析docx(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt): +def 文档总结(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt): import time, os # pip install python-docx 用于docx格式,跨平台 # pip install pywin32 用于doc格式,仅支持Win平台 for index, fp in enumerate(file_manifest): - if fp.split(".")[-1] == "docx": - from docx import Document - doc = Document(fp) - file_content = "\n".join([para.text for para in doc.paragraphs]) - else: - try: - import win32com.client - word = win32com.client.Dispatch("Word.Application") - word.visible = False - # 打开文件 - doc = word.Documents.Open(os.getcwd() + '/' + fp) - # file_content = doc.Content.Text - doc = word.ActiveDocument - file_content = doc.Range().Text - doc.Close() - word.Quit() - except: - raise RuntimeError('请先将.doc文档转换为.docx文档。') - + file_content = extract_text(fp) # private_upload里面的文件名在解压zip后容易出现乱码(rar和7z格式正常),故可以只分析文章内容,不输入文件名 from crazy_functions.pdf_fns.breakdown_txt import breakdown_text_to_satisfy_token_limit from request_llms.bridge_all import model_info @@ -37,8 +21,8 @@ def 解析docx(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatbot paper_fragments = breakdown_text_to_satisfy_token_limit(txt=file_content, limit=TOKEN_LIMIT_PER_FRAGMENT, llm_model=llm_kwargs['llm_model']) this_paper_history = [] for i, paper_frag in enumerate(paper_fragments): - i_say = f'请对下面的文章片段用中文做概述,文件名是{os.path.relpath(fp, project_folder)},文章内容是 ```{paper_frag}```' - i_say_show_user = f'请对下面的文章片段做概述: {os.path.abspath(fp)}的第{i+1}/{len(paper_fragments)}个片段。' + i_say = f'请对下面的内容用中文做概述,文件名是{os.path.relpath(fp, project_folder)},内容是 ```{paper_frag}```' + i_say_show_user = f'请对下面的内容片段做概述: {os.path.abspath(fp)}的第{i+1}/{len(paper_fragments)}个片段。' gpt_say = yield from request_gpt_model_in_new_thread_with_ui_alive( inputs=i_say, inputs_show_user=i_say_show_user, @@ -54,14 +38,14 @@ def 解析docx(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatbot # 已经对该文章的所有片段总结完毕,如果文章被切分了, if len(paper_fragments) > 1: - i_say = f"根据以上的对话,总结文章{os.path.abspath(fp)}的主要内容。" + i_say = f"根据以上的对话,总结文件{os.path.abspath(fp)}的主要内容。" gpt_say = yield from request_gpt_model_in_new_thread_with_ui_alive( inputs=i_say, inputs_show_user=i_say, llm_kwargs=llm_kwargs, chatbot=chatbot, history=this_paper_history, - sys_prompt="总结文章。" + sys_prompt="总结文件内容。" ) history.extend([i_say,gpt_say]) @@ -79,25 +63,15 @@ def 解析docx(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatbot @CatchException -def 总结word文档(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt, user_request): +def 总结文件(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt, user_request): import glob, os # 基本信息:功能、贡献者 chatbot.append([ "函数插件功能?", - "批量总结Word文档。函数插件贡献者: JasonGuo1。注意, 如果是.doc文件, 请先转化为.docx格式。"]) + f"批量总结各类文件。函数插件贡献者: JasonGuo1 and BoyinLiu。支持的文件类型包括:{",".join(supports_format)}。"]) yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 - # 尝试导入依赖,如果缺少依赖,则给出安装建议 - try: - from docx import Document - except: - report_exception(chatbot, history, - a=f"解析项目: {txt}", - b=f"导入软件依赖失败。使用该模块需要额外依赖,安装方法```pip install --upgrade python-docx pywin32```。") - yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 - return - # 清空历史,以免输入溢出 history = [] @@ -111,17 +85,16 @@ def 总结word文档(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_pr return # 搜索需要处理的文件清单 - if txt.endswith('.docx') or txt.endswith('.doc'): - file_manifest = [txt] - else: - file_manifest = [f for f in glob.glob(f'{project_folder}/**/*.docx', recursive=True)] + \ - [f for f in glob.glob(f'{project_folder}/**/*.doc', recursive=True)] + file_manifest = [] + + for ext in supports_format: + file_manifest += [f for f in glob.glob(f'{project_folder}/**/*{ext}', recursive=True)] # 如果没找到任何文件 if len(file_manifest) == 0: - report_exception(chatbot, history, a=f"解析项目: {txt}", b=f"找不到任何.docx或doc文件: {txt}") + report_exception(chatbot, history, a=f"解析项目: {txt}", b=f"找不到任何支持的文件类型: {txt}") yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 return # 开始正式执行任务 - yield from 解析docx(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt) + yield from 文档总结(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt) \ No newline at end of file From 8498ddf6bff5b02ed8c4a01f934ede315a4df7c0 Mon Sep 17 00:00:00 2001 From: lbykkkk Date: Sat, 19 Oct 2024 17:31:30 +0000 Subject: [PATCH 2/7] up --- crazy_functional.py | 1 - crazy_functions/总结文档.py | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/crazy_functional.py b/crazy_functional.py index d9df4879..45570616 100644 --- a/crazy_functional.py +++ b/crazy_functional.py @@ -34,7 +34,6 @@ def get_crazy_functions(): from crazy_functions.谷歌检索小助手 import 谷歌检索小助手 from crazy_functions.理解PDF文档内容 import 理解PDF文档内容标准文件输入 from crazy_functions.Latex全文润色 import Latex中文润色 - from crazy_functions.Arxiv_论文对话 import Arxiv_论文对话 from crazy_functions.Latex全文润色 import Latex英文纠错 from crazy_functions.Markdown_Translate import Markdown中译英 from crazy_functions.虚空终端 import 虚空终端 diff --git a/crazy_functions/总结文档.py b/crazy_functions/总结文档.py index 37213530..3ba142d1 100644 --- a/crazy_functions/总结文档.py +++ b/crazy_functions/总结文档.py @@ -67,9 +67,11 @@ def 总结文件(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt import glob, os # 基本信息:功能、贡献者 + supports_format = ["pdf", "docx", "txt", "md"] # 假设支持的文件格式 chatbot.append([ "函数插件功能?", - f"批量总结各类文件。函数插件贡献者: JasonGuo1 and BoyinLiu。支持的文件类型包括:{",".join(supports_format)}。"]) + f"批量总结各类文件。函数插件贡献者: JasonGuo1 and BoyinLiu。支持的文件类型包括:{', '.join(supports_format)}。" + ]) yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 # 清空历史,以免输入溢出 From 8733c4e1e90e063ff46269e7d0a8dfe0d8e530a9 Mon Sep 17 00:00:00 2001 From: lbykkkk Date: Sun, 20 Oct 2024 01:33:00 +0800 Subject: [PATCH 3/7] file type support --- crazy_functions/rag_fns/rag_file_support.py | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 crazy_functions/rag_fns/rag_file_support.py diff --git a/crazy_functions/rag_fns/rag_file_support.py b/crazy_functions/rag_fns/rag_file_support.py new file mode 100644 index 00000000..98ba3bee --- /dev/null +++ b/crazy_functions/rag_fns/rag_file_support.py @@ -0,0 +1,22 @@ +import os +from llama_index.core import SimpleDirectoryReader + +supports_format = ['.csv', '.docx', '.epub', '.ipynb', '.mbox', '.md', '.pdf', '.txt', '.ppt', + '.pptm', '.pptx'] + + +# 修改后的 extract_text 函数,结合 SimpleDirectoryReader 和自定义解析逻辑 +def extract_text(file_path): + _, ext = os.path.splitext(file_path.lower()) + + # 使用 SimpleDirectoryReader 处理它支持的文件格式 + if ext in supports_format: + try: + reader = SimpleDirectoryReader(input_files=[file_path]) + documents = reader.load_data() + if len(documents) > 0: + return documents[0].text + except Exception as e: + pass + + return None From 701018f48c57a0b0c9ecad50ede7957882c62b6a Mon Sep 17 00:00:00 2001 From: lbykkkk Date: Mon, 21 Oct 2024 00:30:18 +0800 Subject: [PATCH 4/7] up --- crazy_functional.py | 13 +----- crazy_functions/rag_fns/rag_file_support.py | 50 +++++++++++++++++---- crazy_functions/总结文档.py | 13 +++--- 3 files changed, 49 insertions(+), 27 deletions(-) diff --git a/crazy_functional.py b/crazy_functional.py index 45570616..83915813 100644 --- a/crazy_functional.py +++ b/crazy_functional.py @@ -112,6 +112,7 @@ def get_crazy_functions(): "Group": "学术", "Color": "stop", "AsButton": False, + "AdvancedArgs": True, "Info": "批量总结word文档 | 输入参数为路径", "Function": HotReload(总结文件), }, @@ -347,18 +348,6 @@ def get_crazy_functions(): "Function": HotReload(Latex翻译中文并重新编译PDF), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用 "Class": Arxiv_Localize, # 新一代插件需要注册Class }, - "📚Arxiv论文交互对话(输入arxivID)": { - "Group": "学术", - "Color": "stop", - "AsButton": False, - "AdvancedArgs": True, - "ArgsReminder": r"如果有必要, 请在此处给出自定义翻译命令, 解决部分词汇翻译不准确的问题。 " - r"例如当单词'agent'翻译不准确时, 请尝试把以下指令复制到高级参数区: " - r'If the term "agent" is used in this section, it should be translated to "智能体". ', - "Info": "Arixv论文精细翻译 | 输入参数arxiv论文的ID,比如1812.10695", - "Function": HotReload(Arxiv_论文对话), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用 - "Class": Arxiv_Localize, # 新一代插件需要注册Class - }, "📚本地Latex论文精细翻译(上传Latex项目)[需Latex]": { "Group": "学术", "Color": "stop", diff --git a/crazy_functions/rag_fns/rag_file_support.py b/crazy_functions/rag_fns/rag_file_support.py index 98ba3bee..dd2137f3 100644 --- a/crazy_functions/rag_fns/rag_file_support.py +++ b/crazy_functions/rag_fns/rag_file_support.py @@ -1,22 +1,56 @@ import os from llama_index.core import SimpleDirectoryReader -supports_format = ['.csv', '.docx', '.epub', '.ipynb', '.mbox', '.md', '.pdf', '.txt', '.ppt', - '.pptm', '.pptx'] +supports_format = ['.csv', '.docx','.doc', '.epub', '.ipynb', '.mbox', '.md', '.pdf', '.txt', '.ppt', + '.pptm', '.pptx','.py', '.xls', '.xlsx', '.html', '.json', '.xml', '.yaml', '.yml' ,'.m'] +def read_docx_doc(file_path): + if file_path.split(".")[-1] == "docx": + from docx import Document + doc = Document(file_path) + file_content = "\n".join([para.text for para in doc.paragraphs]) + else: + try: + import win32com.client + word = win32com.client.Dispatch("Word.Application") + word.visible = False + # 打开文件 + doc = word.Documents.Open(os.getcwd() + '/' + file_path) + # file_content = doc.Content.Text + doc = word.ActiveDocument + file_content = doc.Range().Text + doc.Close() + word.Quit() + except: + raise RuntimeError('请先将.doc文档转换为.docx文档。') + return file_content # 修改后的 extract_text 函数,结合 SimpleDirectoryReader 和自定义解析逻辑 +import os + def extract_text(file_path): _, ext = os.path.splitext(file_path.lower()) # 使用 SimpleDirectoryReader 处理它支持的文件格式 - if ext in supports_format: + if ext in ['.docx', '.doc']: + return read_docx_doc(file_path) + else: + # 尝试读取文件为纯文本 try: - reader = SimpleDirectoryReader(input_files=[file_path]) - documents = reader.load_data() - if len(documents) > 0: - return documents[0].text + with open(file_path, 'r', encoding='utf-8') as f: + return f.read() + except UnicodeDecodeError: + # 如果遇到解码错误,说明文件不是纯文本 + print(f"Error: {file_path} is not a valid text file.") except Exception as e: - pass + # 捕获其他可能的异常 + print(f"Error reading file {file_path}: {e}") + try: + reader = SimpleDirectoryReader(input_files=[file_path]) + documents = reader.load_data() + if len(documents) > 0: + return documents[0].text + except Exception as e: + pass return None diff --git a/crazy_functions/总结文档.py b/crazy_functions/总结文档.py index 3ba142d1..afb5ede9 100644 --- a/crazy_functions/总结文档.py +++ b/crazy_functions/总结文档.py @@ -14,6 +14,8 @@ def 文档总结(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatb for index, fp in enumerate(file_manifest): file_content = extract_text(fp) # private_upload里面的文件名在解压zip后容易出现乱码(rar和7z格式正常),故可以只分析文章内容,不输入文件名 + if file_content==None: + continue from crazy_functions.pdf_fns.breakdown_txt import breakdown_text_to_satisfy_token_limit from request_llms.bridge_all import model_info max_token = model_info[llm_kwargs['llm_model']]['max_token'] @@ -21,8 +23,8 @@ def 文档总结(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatb paper_fragments = breakdown_text_to_satisfy_token_limit(txt=file_content, limit=TOKEN_LIMIT_PER_FRAGMENT, llm_model=llm_kwargs['llm_model']) this_paper_history = [] for i, paper_frag in enumerate(paper_fragments): - i_say = f'请对下面的内容用中文做概述,文件名是{os.path.relpath(fp, project_folder)},内容是 ```{paper_frag}```' - i_say_show_user = f'请对下面的内容片段做概述: {os.path.abspath(fp)}的第{i+1}/{len(paper_fragments)}个片段。' + i_say = f'请对下面的内容用中文做概述,文件名是{os.path.relpath(fp, project_folder)},做概述时请注意以下要求:{plugin_kwargs['advanced_arg']}:内容是 ```{paper_frag}```' + i_say_show_user = f'请对下面的内容片段做概述,做概述时请注意以下要求:{plugin_kwargs['advanced_arg']}: {os.path.abspath(fp)}的第{i+1}/{len(paper_fragments)}个片段。' gpt_say = yield from request_gpt_model_in_new_thread_with_ui_alive( inputs=i_say, inputs_show_user=i_say_show_user, @@ -38,7 +40,7 @@ def 文档总结(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatb # 已经对该文章的所有片段总结完毕,如果文章被切分了, if len(paper_fragments) > 1: - i_say = f"根据以上的对话,总结文件{os.path.abspath(fp)}的主要内容。" + i_say = f"根据以上的对话,总结时请注意以下要求:{plugin_kwargs['advanced_arg']},总结文件{os.path.abspath(fp)}的主要内容。" gpt_say = yield from request_gpt_model_in_new_thread_with_ui_alive( inputs=i_say, inputs_show_user=i_say, @@ -67,7 +69,6 @@ def 总结文件(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt import glob, os # 基本信息:功能、贡献者 - supports_format = ["pdf", "docx", "txt", "md"] # 假设支持的文件格式 chatbot.append([ "函数插件功能?", f"批量总结各类文件。函数插件贡献者: JasonGuo1 and BoyinLiu。支持的文件类型包括:{', '.join(supports_format)}。" @@ -87,10 +88,8 @@ def 总结文件(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt return # 搜索需要处理的文件清单 - file_manifest = [] - for ext in supports_format: - file_manifest += [f for f in glob.glob(f'{project_folder}/**/*{ext}', recursive=True)] + file_manifest = [f for f in glob.glob(f'{project_folder}/**', recursive=True) if os.path.isfile(f)] # 如果没找到任何文件 if len(file_manifest) == 0: From 21111d3bd09d4bfc80e3ec321c8e60e668a7a8fd Mon Sep 17 00:00:00 2001 From: lbykkkk Date: Mon, 21 Oct 2024 00:57:29 +0800 Subject: [PATCH 5/7] refine --- crazy_functions/rag_fns/rag_file_support.py | 11 ----------- crazy_functions/总结文档.py | 6 +++--- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/crazy_functions/rag_fns/rag_file_support.py b/crazy_functions/rag_fns/rag_file_support.py index dd2137f3..f826fab1 100644 --- a/crazy_functions/rag_fns/rag_file_support.py +++ b/crazy_functions/rag_fns/rag_file_support.py @@ -34,17 +34,6 @@ def extract_text(file_path): # 使用 SimpleDirectoryReader 处理它支持的文件格式 if ext in ['.docx', '.doc']: return read_docx_doc(file_path) - else: - # 尝试读取文件为纯文本 - try: - with open(file_path, 'r', encoding='utf-8') as f: - return f.read() - except UnicodeDecodeError: - # 如果遇到解码错误,说明文件不是纯文本 - print(f"Error: {file_path} is not a valid text file.") - except Exception as e: - # 捕获其他可能的异常 - print(f"Error reading file {file_path}: {e}") try: reader = SimpleDirectoryReader(input_files=[file_path]) documents = reader.load_data() diff --git a/crazy_functions/总结文档.py b/crazy_functions/总结文档.py index afb5ede9..94c3c2c2 100644 --- a/crazy_functions/总结文档.py +++ b/crazy_functions/总结文档.py @@ -15,6 +15,8 @@ def 文档总结(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatb file_content = extract_text(fp) # private_upload里面的文件名在解压zip后容易出现乱码(rar和7z格式正常),故可以只分析文章内容,不输入文件名 if file_content==None: + chatbot.append( + [f"上传文件: {os.path.basename(fp)}", f"此文件解析失败,无法提取文本内容。失败原因可能为:1.文档格式过于复杂;2. 不支持的文件格式,支持的文件格式后缀有:" + ", ".join(supports_format)+ "等其他文本格式类型文件。"]) continue from crazy_functions.pdf_fns.breakdown_txt import breakdown_text_to_satisfy_token_limit from request_llms.bridge_all import model_info @@ -55,13 +57,11 @@ def 文档总结(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatb res = write_history_to_file(history) promote_file_to_downloadzone(res, chatbot=chatbot) - chatbot.append(("完成了吗?", res)) + chatbot.append((f"路径{fp}文件解读完成了吗?", "解读完成,存储路径为"+res)) yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 res = write_history_to_file(history) promote_file_to_downloadzone(res, chatbot=chatbot) - chatbot.append(("所有文件都总结完成了吗?", res)) - yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 @CatchException From 89dc6c7265445f659c1c4c8eadbf46a705717686 Mon Sep 17 00:00:00 2001 From: lbykkkk Date: Mon, 21 Oct 2024 22:58:04 +0800 Subject: [PATCH 6/7] refine --- crazy_functions/总结文档.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crazy_functions/总结文档.py b/crazy_functions/总结文档.py index 94c3c2c2..95f17718 100644 --- a/crazy_functions/总结文档.py +++ b/crazy_functions/总结文档.py @@ -25,8 +25,8 @@ def 文档总结(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatb paper_fragments = breakdown_text_to_satisfy_token_limit(txt=file_content, limit=TOKEN_LIMIT_PER_FRAGMENT, llm_model=llm_kwargs['llm_model']) this_paper_history = [] for i, paper_frag in enumerate(paper_fragments): - i_say = f'请对下面的内容用中文做概述,文件名是{os.path.relpath(fp, project_folder)},做概述时请注意以下要求:{plugin_kwargs['advanced_arg']}:内容是 ```{paper_frag}```' - i_say_show_user = f'请对下面的内容片段做概述,做概述时请注意以下要求:{plugin_kwargs['advanced_arg']}: {os.path.abspath(fp)}的第{i+1}/{len(paper_fragments)}个片段。' + i_say = f'请对下面的内容用中文做概述,文件名是{os.path.relpath(fp, project_folder)},做概述时请优先满足以下要求:{plugin_kwargs['advanced_arg']}:内容是 ```{paper_frag}```' + i_say_show_user = f'请对下面的内容片段做概述,做概述时请优先满足以下要求:{plugin_kwargs['advanced_arg']}: {os.path.abspath(fp)}的第{i+1}/{len(paper_fragments)}个片段。' gpt_say = yield from request_gpt_model_in_new_thread_with_ui_alive( inputs=i_say, inputs_show_user=i_say_show_user, From 5dab7b2290af241c72cf3725cd33dfac1fc94207 Mon Sep 17 00:00:00 2001 From: lbykkkk Date: Tue, 29 Oct 2024 23:54:55 +0800 Subject: [PATCH 7/7] refine --- crazy_functions/总结文档.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crazy_functions/总结文档.py b/crazy_functions/总结文档.py index 95f17718..271c123d 100644 --- a/crazy_functions/总结文档.py +++ b/crazy_functions/总结文档.py @@ -2,13 +2,13 @@ from toolbox import update_ui from toolbox import CatchException, report_exception from toolbox import write_history_to_file, promote_file_to_downloadzone from crazy_functions.crazy_utils import request_gpt_model_in_new_thread_with_ui_alive -from crazy_functions.rag_fns.rag_file_support import extract_text, supports_format fast_debug = False def 文档总结(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt): import time, os + from crazy_functions.rag_fns.rag_file_support import extract_text, supports_format # pip install python-docx 用于docx格式,跨平台 # pip install pywin32 用于doc格式,仅支持Win平台 for index, fp in enumerate(file_manifest):