
GPT Academic 批量 Word 文档总结分片式智能摘要的原理、配置与实战指南【免费下载链接】gpt_academic为GPT/GLM等LLM大语言模型提供实用化交互接口特别优化论文阅读/润色/写作体验模块化设计支持自定义快捷按钮函数插件支持Python和C等项目剖析自译解功能PDF/LaTex论文翻译总结功能支持并行问询多种LLM模型支持chatglm3等本地模型。接入通义千问, deepseekcoder, 讯飞星火, 文心一言, llama2, rwkv, claude2, moss等。项目地址: https://gitcode.com/GitHub_Trending/gp/gpt_academicWord 文档是日常工作中最常见的文档格式之一从会议纪要到项目报告大量信息都以 Word 格式存储。当需要快速了解多个 Word 文档的核心内容时GPT Academic 的批量总结Word文档函数插件可以自动完成分片、逐段概括与整体归纳并输出可下载的 Markdown 报告。本文基于该功能的官方文档与仓库源码完整讲清其依赖配置、输入方式、处理流程以及按模型 Token 限制自动分片 渐进式总结的底层实现机制帮助你准确使用并理解这一功能。功能定位与核心特点该功能注册为函数插件批量总结Word文档归属于学术分类AsButton: False即通过下拉菜单调用输入参数为文件路径。在 crazy_functional.py 中的注册配置如下批量总结Word文档: { Group: 学术, Color: stop, AsButton: False, Info: 批量总结word文档 | 输入参数为路径, Function: HotReload(Word_Summary), },其核心特点双格式支持同时支持.docx推荐和.doc格式的 Word 文档批量处理一次处理多个文档自动递归搜索文件夹中的所有 Word 文件智能分片根据当前模型的 Token 限制自动切分长文档渐进式总结对于被切分的文档先分片总结再整体归纳确保完整性前置条件依赖安装与 .doc 格式限制功能入口函数Word_Summary定义在 crazy_functions/Word_Summary.py。启动时它会先尝试导入python-docx若失败则通过report_exception在对话区给出安装提示pip install --upgrade python-docx pywin32根据你要处理的文档格式所需依赖不同# 处理 .docx 格式跨平台 pip install --upgrade python-docx# 处理 .doc 格式仅 Windows pip install --upgrade python-docx pywin32关于 .doc 格式的限制.doc是旧版 Word 格式解析它需要调用 Windows 的 COM 接口通过pywin32库因此仅在 Windows 系统上可用。这一点在 解析docx 的实现中得到印证——非.docx文件会尝试import win32com.client并Dispatch(Word.Application)一旦失败就抛出raise RuntimeError(请先将.doc文档转换为.docx文档。)如果你在 Linux、macOS 上使用或采用 Docker 部署请先将.doc文件转换为.docx用 Microsoft Word 打开后另存为.docx、使用 LibreOffice 批量转换或借助在线转换工具均可。模型配置与分片大小的确定由于文档总结涉及多次 API 调用建议选用性价比较高的模型。分片上限的计算逻辑在 解析docx 中from request_llms.bridge_all import model_info max_token model_info[llm_kwargs[llm_model]][max_token] TOKEN_LIMIT_PER_FRAGMENT max_token * 3 // 4即功能会读取当前所选模型在 request_llms/bridge_all.py 中登记的max_token并取其3/4作为每个片段的上限整数除法* 3 // 4为总结提示词与回复本身预留 Token 余量。使用方法准备文档支持以下输入方式输入方式说明拖拽上传直接将.docx或.doc文件拖入文件上传区压缩包上传将多个文档打包为.zip后上传系统自动解压并搜索输入路径在输入框填写本地文件夹路径处理该路径下所有 Word 文件从源码看Word_Summary对输入参数txt做了如下处理crazy_functions/Word_Summary.py先校验路径有效性若os.path.exists(txt)不成立直接在对话区报错找不到本地项目或无权访问若txt本身以.docx或.doc结尾则file_manifest [txt]即只处理单个指定文件否则用glob递归搜索目录下的**/*.docx与**/*.doc文件file_manifest [f for f in glob.glob(f{project_folder}/**/*.docx, recursiveTrue)] \ [f for f in glob.glob(f{project_folder}/**/*.doc, recursiveTrue)]如果最终清单为空会提示找不到任何.docx或doc文件并退出。执行总结完成文件上传或输入路径在函数插件下拉菜单的学术分类中找到批量总结Word文档点击执行开始处理启动后插件会先在对话区输出一行功能说明批量Word_Summary……注意, 如果是.doc文件, 请先转化为.docx格式随后清空对话历史history []以免输入溢出再开始逐文件处理。处理流程解析从读取到整体归纳对每个 Word 文档系统执行以下步骤实现见 解析docx第一步读取段落文本.docx文件通过python-docx逐段提取from docx import Document doc Document(fp) file_content \n.join([para.text for para in doc.paragraphs]).doc文件仅 Windows则通过 COM 接口打开 Word 应用、读取doc.Range().Text后关闭并退出进程。第二步按 Token 限制分片文本交给 crazy_functions/pdf_fns/breakdown_txt.py 中的breakdown_text_to_satisfy_token_limit完成切分。值得注意的是该函数被run_in_subprocess_with_timeout(..., timeout60)包装在独立子进程中执行并带 60 秒超时避免超长文档的分词计算阻塞主界面。切分算法采用五级降级策略见 breakdown_text_to_satisfy_token_limit_优先在**双空行\n\n**处切分保证段落边界完整失败则退到**单换行\n**处切分再失败则在**英文句号.**处强制插入切分标识后切分切分后还原接着尝试中文句号。全部失败时暴力按字符位置硬切force_breakdown。此外maintain_storage函数在切分过程中对超长待切文本做了分块缓存5 万字符/10 万字符阈值之间转存以加速反复的 Token 计数。第三步逐片总结每个片段都会发起一次独立的模型请求Word_Summary.pyi_say f请对下面的文章片段用中文做概述文件名是{os.path.relpath(fp, project_folder)}文章内容是 {paper_frag} i_say_show_user f请对下面的文章片段做概述: {os.path.abspath(fp)}的第{i1}/{len(paper_fragments)}个片段。 gpt_say yield from request_gpt_model_in_new_thread_with_ui_alive( inputsi_say, inputs_show_useri_say_show_user, llm_kwargsllm_kwargs, chatbotchatbot, history[], sys_prompt总结文章。 )这里有几个源码层面的细节值得注意真实输入与展示输入分离inputs_show_user是显示在界面/报告中的精简版本而inputs才是发给模型的完整提示。这一机制来自 crazy_functions/crazy_utils.py 中request_gpt_model_in_new_thread_with_ui_alive的设计目的是在汇总报告中隐藏啰嗦的真实输入增强报告的可读性每次片段请求的history都是空列表保证各片段总结互不污染该封装函数内部还带有 UI 保活刷新refresh_interval0.2、Token 溢出自动截断handle_token_exceedTrue与未知错误自动重试retry_times_at_unknown_error2处理进度会实时显示在对话区每段结果同时被写入history与该文档专属的this_paper_history为下一步整体归纳提供上下文。第四步整体归纳仅当文档被切分成多个片段时len(paper_fragments) 1才会追加一次整体总结请求Word_Summary.pyif len(paper_fragments) 1: i_say f根据以上的对话总结文章{os.path.abspath(fp)}的主要内容。 gpt_say yield from request_gpt_model_in_new_thread_with_ui_alive( inputsi_say, inputs_show_useri_say, llm_kwargsllm_kwargs, chatbotchatbot, historythis_paper_history, # 携带全部片段的中间总结 sys_prompt总结文章。 )此时this_paper_history中已累积了片段概述问题 片段概述回答的完整对话链模型可基于所有中间结果归纳出整篇文章的主旨。若文档未被切分则跳过此步节省一次 API 调用。输出结果与文件保存每个文档处理完毕后以及全部文档结束后都会执行相同的保存动作Word_Summary.pyres write_history_to_file(history) promote_file_to_downloadzone(res, chatbotchatbot) chatbot.append((所有文件都总结完成了吗, res))write_history_to_file定义于 toolbox.py将完整对话记录写为 Markdown 文件以# GPT-Academic Report开头每条用户输入渲染为二级标题##每条回答紧随其后默认文件名形如GPT-Academic-{时间戳}.md存放在当前用户的 log 目录下promote_file_to_downloadzonetoolbox.py将文件复制一份到当前用户的downloadzone下载区并重命名为时间戳-原文件名使文件下载区出现可下载的链接。因此总结完成后对话区依次显示每个文档的中间总结与整体总结最后一个文件会以所有文件都总结完成了吗收尾并给出保存路径结果文件包含完整的处理历史记录可用任何 Markdown 编辑器打开查看。平台兼容性由于.doc格式依赖 Windows COM 接口不同平台的支持情况如下平台.docx 支持.doc 支持说明Windows✅✅完整支持所有格式Linux✅❌需先将 .doc 转为 .docxmacOS✅❌需先将 .doc 转为 .docxDocker✅❌需先将 .doc 转为 .docx如果在非 Windows 系统上尝试处理.doc文件win32com.client导入失败后会被捕获并抛出请先将.doc文档转换为.docx文档的运行时错误。常见问题提示缺少依赖库根据错误信息安装对应依赖提示缺少python-docx时执行pip install python-docx提示缺少pywin32Windows 处理.doc时执行pip install pywin32。安装完成后重启 GPT Academic 即可。.doc 文件无法处理通常有两种原因一是非 Windows 系统.doc仅支持 Windows请先转换为.docx二是pywin32未正确安装在 Windows 上确保已安装并重启应用。建议统一使用.docx格式它是开放标准跨平台兼容性更好。文档内容提取不完整本功能提取的是文档的段落文本doc.paragraphs以下内容可能不会被包含页眉/页脚中的文字、文本框中的内容、表格中的数据部分情况、嵌入的图片和图表。如果这些内容很重要建议手动检查原文档补充。总结质量不佳可尝试选用上下文能力更强的模型确保文档是规范的文本内容而非大量图片或扫描件对特别重要的文档可改用 批量文件询问 功能进行更精细的处理。小结与相关功能批量 Word 总结的核心链路可以概括为glob 递归收集文件 → python-docx/COM 提取段落文本 → 按模型 max_token × 3/4自适应分片五级降级切分策略→ 逐片独立总结 → 多片段时携带中间历史整体归纳 → Markdown 落盘并推送至下载区。理解这条链路后你就能按需调整模型选择与文档组织方式获得稳定的批量摘要效果。相关功能文档批量总结 PDF — 总结 PDF 格式的文档PDF 问答 — 与文档进行深度交互问答批量文件询问 — 对文件进行更精细的批量问答基础操作 — 了解文件上传等基础操作【免费下载链接】gpt_academic为GPT/GLM等LLM大语言模型提供实用化交互接口特别优化论文阅读/润色/写作体验模块化设计支持自定义快捷按钮函数插件支持Python和C等项目剖析自译解功能PDF/LaTex论文翻译总结功能支持并行问询多种LLM模型支持chatglm3等本地模型。接入通义千问, deepseekcoder, 讯飞星火, 文心一言, llama2, rwkv, claude2, moss等。项目地址: https://gitcode.com/GitHub_Trending/gp/gpt_academic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考