RAG知识库数据处理脚本完整流程提示词
本提示词方案旨在为RAG知识库构建者提供一套从原始数据到高质量文本嵌入的完整脚本编写指南。
RAG知识库
数据处理
脚本编写
高质量
提示词内容
可直接复制使用
角色定义与任务定位 请以“RAG数据管道架构师”的身份,运用本方案。您的核心目标是:设计并编写一个自动化、健壮且可复用的数据处理脚本,将原始、异构的文档(如PDF、Word、网页)转化为适合向量数据库存储和检索的、高质量的规范化文本块(Chunks),为后续的嵌入(Embedding)和检索(Retrieval)奠定坚实基础。 适用场景 为新建的RAG系统准备初始知识库数据。 对现有知识库进行数据质量优化与重新索引。 构建持续集成(CI)流水线中的自动化数据处理环节。 处理来自多个源头、格式不统一的文档集合。 核心提示词(模块化指令) 以下提示词可直接用于构建脚本中的关键函数或逻辑描述: 文档加载与解析:“使用 `langchain` 或 `unstructured` 库,根据文件扩展名自动分派对应的加载器(`PyPDFLoader`, `Docx2txtLoader`, `UnstructuredHTMLLoader`)。确保处理编码错误,对扫描件PDF启用OCR选项。” 文本清洗与规范化:“应用清洗管道:移除无意义的换行符和空格、标准化标点符号、过滤不可见字符。识别并保留文档原有的层级结构(如标题、章节)元数据。” 智能分块(Chunking):“采用递归字符文本分割器(`RecursiveCharacterTextSplitter`),以句号、换行、分号为分隔符优先切割。设置块大小(chunk_size)为500-1000字符,块重叠(chunk_overlap)为100-150字符,以保持上下文连贯性。” 元数据增强:“为每个文本块自动附加来源元数据:文件名、来源路径、创建日期、所属章节标题(如可提取)。考虑添加顺序ID(如`doc_001_chunk_003`)以便追溯。” 质量检查与过滤:“实现过滤规则:丢弃纯符号或过短(如少于20字符)的块;检测并标记可能包含大量乱码或表格/图片提取失败的块;可选项:使用轻量级模型对块进行相关性或完整性打分。” 风格方向(脚本设计原则) 工业级稳健:脚本应包含完善的异常处理(try-except)、日志记录(logging)和进度指示(tqdm)。 配置驱动:将分块大小、重叠量、清洗规则等参数外置为配置文件(如YAML),提高灵活性。 模块化与可测试:将加载、清洗、分块、输出等步骤设计为独立函数,便于单元测试和流程重组。 构图建议(流程架构) 构建一个清晰的数据流管道(Pipeline): 输入层:支持指定目录遍历或文件清单输入。 处理核心:顺序执行“加载 -> 解析 -> 清洗 -> 分块 -> 增强”链条,允许在清洗和分块间加入自定义钩子函数。 输出层:将处理后的文本块列表及其元数据,序列化为标准的JSONL(每行一个块)或Parquet格式,便于后续嵌入步骤直接读取。 细节强化 语言处理:集成 `langdetect` 检测文本语言,为后续可能的多语言嵌入模型做准备。 重复数据删除:考虑对高度相似或完全相同的块进行去重(如使用simhash),避免知识库冗余。 敏感信息处理:可集成正则表达式或专门库,对脚本中的邮箱、电话、身份证号等进行模糊化或标记处理。 可中断与恢复:设计检查点(Checkpoint)机制,支持处理大量文档时从中断处恢复。 使用建议 在正式处理全部数据前,先用少量样本文档运行脚本,检查分块边界是否合理、元数据是否准确。 将输出的JSONL文件抽样导入向量数据库进行检索测试,评估分块效果对检索质量的影响。 将此脚本作为数据预处理的标准操作程序(SOP),确保知识库更新的数据一致性。 考虑将关键质量指标(如平均块大小、有效块比例)可视化,用于监控数据健康度。