项目启动时间:2025/04/10
最后更新时间:2025/04/10
当前版本:demo-0.110
作者:yyz
Text Wizard
字符操纵 - 大模型驱动的多个功能API组成的字符操纵集成工具
1 DOCX文件的自动排版功能
如何使用
该工具为CLI程序,执行命令如下:
|
|
实现思路
将较大的原docx文件分割后(解决大模型上下文长度的问题)使用DeepSeek模型对内容进行推理识别,让模型按json格式输出后汇总到新的docx文件中
难点
- docx文件是流式文件; 分割文档时,使用常规方法按字数分隔会导致漏字 漏格式(底层XML被切割) 漏内容的问题。且图片和表格的重新排版难度高
- 大模型本身能力不足导致很难准确辨别每一个标题的层级,尤其是文件结构内容复杂时,判断极容易出错,仅凭优化提示词提升效果一般
- 在前后文太短时,它缕不清先后高低,如可能将 1.1和1.1.1 算作同一级标题
- 在前后文太长时,它会遗漏数据,如1.1.1和1.1.2之间的所有文字直接全部丢失
- 编程语言库对word文档的支持较弱,对于格式敏感的文档 很难实现规范排版
解决原理
- 通过判断内容是否为段落的算法,将段落分批传递处理。同时通过判断内容是否为表格或图片的算法,尽可能将原样式原封不动传递。
- 为各种标题设立各自的正则表达式,只有常规程序算法检测不了的结构才交给模型解决。 且为模型设置记忆功能,将前部分的json标题总结作为记忆传递给模型。
- 自写格式应用函数,通过config文件的方式统一管理,提高使用效率
失败的解决思路
- 先将docx转成pdf,通过对每一页进行读取识别,实现真正的按页拆分
- X!切割后表格会变得不连续,排版会变的混乱
目前实现的效果
2张图皆为程序生成的docx文件 蓝色为1级标题、红色为2级标题、绿色为3级标题,针对每一种标题,通过修改配置文件的方式即可更改样式
对于注中的(1、)避开标题检测,而表格中的符号、数据均与原表格一致。