一个纯前端的文档批处理工具,专门用于RAG(检索增强生成)知识库的文档预处理。
RAG文档处理器是一个基于AI的文档批处理工具,专门设计用于RAG知识库的文档预处理。它能够帮助个人用户和企业通过自定义的AI智能体批量处理多种格式的文本文件(如md、txt、html等),优化文档结构和内容,使其更适合作为RAG知识库的数据源。
- 🚀 纯前端实现:完全在浏览器端运行,无需后端服务
- 📝 多格式支持:支持处理md、txt、html等多种文本格式
- 🤖 自定义智能体:可配置多个AI智能体,每个智能体有独立的处理逻辑
- 📦 批量处理:支持多文件批量上传和处理
- 📊 处理进度跟踪:实时显示处理进度和状态
- 💾 本地存储:配置和处理结果保存在本地,保护隐私
- 🔄 并发处理:支持多文件并发处理,提高效率
技术 | 描述 |
---|---|
React 18.3.1 | 前端核心框架 |
TypeScript 5.5.3 | 开发语言,提供类型安全 |
Vite 5.4.8 | 现代构建工具,提供快速的开发体验 |
Tailwind CSS | 原子化CSS框架,用于UI样式开发 |
Radix UI | 无样式组件库,提供可访问性组件 |
Zustand | 轻量级状态管理库 |
React Query | API状态管理和缓存 |
Axios | HTTP客户端,用于API调用 |
React Hook Form | 表单管理库 |
Zod | 类型验证库 |
npm install
npm run dev
npm run build
npm run preview
首次使用需要配置OpenAI API密钥:
- 点击"设置"按钮
- 输入您的OpenAI API密钥
- 可选:修改API基础URL(如果使用代理服务)
- 保存配置
- 进入"智能体"页面
- 点击"新建智能体"
- 填写智能体名称和描述
- 编写处理提示词(Prompt)
- 选择模型和参数
- 保存智能体配置
- 进入"文件"页面
- 上传需要处理的文件(支持多选)
- 选择要使用的智能体
- 点击"处理"按钮开始处理
- 等待处理完成
- 下载处理结果
src/
├── components/ # React组件
│ ├── agents/ # 智能体相关组件
│ ├── files/ # 文件处理组件
│ ├── settings/ # 设置相关组件
│ └── common/ # 通用组件
├── hooks/ # 自定义Hooks
├── stores/ # 状态管理
├── api/ # API相关
├── utils/ # 工具函数
├── types/ # 类型定义
└── App.tsx # 应用入口
以下是一个用于优化Markdown文档结构的智能体配置示例:
你是一个专业的文档数据清洗专家,负责处理和优化用于RAG知识库构建的文档。请按照以下指南对提供的文档进行全面清洗和标准化处理:
### 数据清洗任务:
1. 去除无关内容:
- 删除所有广告内容
- 移除页眉页脚信息(如页码、章节标题等重复出现的元素)
- 清除水印文本
- 去除版权声明、免责声明等非核心内容
- 删除装饰性特殊字符和符号
2. 标准化格式:
- 将所有文本转换为UTF-8编码
- 统一标点符号(如将全角标点转为半角,或根据文档主要语言选择合适的标点规范)
- 规范化空格使用(删除多余空格,保持段落间隔一致)
- 对于中文文档,确保使用标准中文标点
- 对于英文部分,统一大小写规范(如专有名词、缩写等)
3. 处理缺失值和噪声:
- 修正OCR错误(如"0"与"O"、"1"与"l"的混淆)
- 识别并修复断行导致的词语分割
- 合并被错误分割的段落
- 修正明显的拼写和语法错误
- 标记无法修复的损坏内容
4. 结构优化:
- 重新组织文档的层次结构(标题、小标题、段落)
- 确保列表格式一致(编号、项目符号等)
- 保持表格数据的完整性和可读性
- 确保图表引用的连贯性
5. 语义保全:
- 确保清洗过程不改变原文档的核心含义
- 保留专业术语和领域特定词汇
- 维持上下文关系和逻辑连贯性
### 输出要求:
1. 严格要求:仅输出清洗后的文档内容,不要包含任何解释、说明或其他额外内容
2. 使用markdown格式输出清洗后的完整文档
3. 不要添加任何前缀、后缀或额外的评论
4. 输出结果强化:
- 确保文档具有清晰的层次结构,使用适当的标题级别(#、##、###等)
- 主要章节使用一级标题(#),子部分使用二级标题(##),更细分的内容使用三级标题(###)
- 相关内容应组织在同一部分下,保持逻辑连贯性
- 为没有明确标题的重要段落添加适当的小标题
- 确保标题层级之间的逻辑关系清晰,避免层级跳跃
应用使用浏览器的LocalStorage存储以下信息:
- API配置(加密存储)
- 智能体配置
- 用户偏好设置
处理中的文件和结果存储在内存中,刷新页面后将丢失。
欢迎贡献代码或提出建议!请遵循以下步骤:
- Fork本仓库
- 创建您的特性分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开一个Pull Request
本项目采用MIT许可证 - 详见 LICENSE 文件
如有问题或建议,请通过Issues提交,或联系项目维护者。
注意:本工具需要OpenAI API密钥才能正常工作。请确保您有有效的API密钥并在设置中正确配置。