目录一.输入侧1.纯文本TXT/Markdown2.HTML/网页3.Word/PPT4.Email5.可选中文本PDF6.扫描PDF/扫描件/文档图片7.图片/图表/截图/流程图8.文档中的表格9.CSV/XLSX10.音频11.视频12.混合文档二.输出侧1.输出侧结构化最常见的四种实现方式2.常见的修正策略3.总体流程一.输入侧把原始文档转换成系统内部可用的结构化表示。RAG在chunk前,需要把原始文档转成干净、结构化、可切块的文本和元数据。元数据是指文本“来自哪里、属于什么、在什么位置”的信息,例如,文件名,文件类型,页码,章节标题等等,元数据很关键,它决定了后面能不能做来源追踪,过滤检索,章节限定,页码引用等等。那么具体怎么转?1.纯文本TXT/Markdown这类处理最简单,具体流程如下:直接读取文件内容--识别标题、段落、列表、代码块--补充元数据,比如文件名、路径、更新时间、语言--按标题层级或段落做结构化chunking--建立向量索引或者混合索引2.HTML/网页HTML/网页最大的问题不是“读不到”,而是噪声很多:导航栏、脚注、广告、模板区块、JS 注入内容。所以需要先用规则解析,通过预先定义的规则识别并移除那些不属于正文的“噪音”元素,比如导航栏、侧边栏、页脚、版权声明等等。具体流程如下:抓取HTML或页面正文--用 DOM/parser 抽出正文区域--做boilerplate removal,去掉导航、页脚、广告、模板块--保留标题层级、正文、列表、表格、图片的alt文本、链接文本补充URL、抓取时间、站点栏目等metadata--再按标题/段落做 chunking--建索引3.Word/PPT这类格式通常自带结构:标题、正文、列表、幻灯片页、备注区。Tika 能统一抽取 PPT、XLS、PDF 等大量格式的文本和 metadata;Unstructured也支持 doc/docx/ppt/pptx/epub。Tika是一个开源分析工具包,能够从各种不同格式的文件中提取干净文本和元数据。Unstructured是一个专为大型语言模型(LLM)和检索增强生成(RAG)系统设计的开源数据处理工具。其能够将杂乱无章的原始文档,高效地转化为AI能够精准理解和检索的“AI就绪”(AI-Ready)数据。具体流程如下:用parser读取文档--抽取标题、段落、列表、页/幻灯片边界、备注--对嵌入图片和表格分流给图片/表格子管线(子管线是相对于主管线(Main Pipeline)而言的,指在一个大的数据处理流程中,专门用于处理某一种特定类型数据或任务的独立处理分支)--补充文件名、页号、幻灯片号、章节等metadata--统一成元素级JSON--结构化 chunking--建索引4.Email对于邮件,Tika和Unstructured也能处理:Unstructured支持解析 .eml 和 .msg 格式,能够把邮件中的主题、发件人、时间、正文、附件等结构化地提取出来。Tika 同样擅长统一抽取不同文件类型的文本和元数据(包括邮件),不管什么格式,都能输出一致的文本 + 元数据。具体流程如下:解析邮件头:From、To、Cc、Subject、Date--提取正文--识别quoted history,把历史回复链和当前正文区分开--附件递归进入文档处理流水线--线程去重,确保同一封邮件,即使它出现在不同文件夹、不同时间点的导入批次中,只被存储一次,防止数据库中产生重复记录--以“主题+当前正文+关键 metadata”建索引5.可选中文本PDF对于可选中文本PDF,也就是由办公软件、排版软件等直接生成的数字 PDF,里面的文字是可选中的,而不是扫描图片,最常用的处理方式是直接用文本抽取工具,不需要OCR(光学字符识别,图像转文字),用OCR反而会额外引入错误和成本。具体流程如下:读取PDF--按页抽文本--尽可能保留标题、页码、段落边界--检测页面里的表格、图片区域,分别分流