# 知识库多人协作处理方案 ## 一、分工方式 将 PDF 文件按数量或类型分配给不同人员处理: | 人员 | 负责文件 | 预计时间 | |-----|---------|---------| | 人员A | 心理测量类 (10个PDF) | 2-3小时 | | 人员B | 心理治疗类 (10个PDF) | 2-3小时 | | 人员C | 心理学基础 (10个PDF) | 2-3小时 | ## 二、每个人需要的文件 将以下文件打包发给每个处理人员: ``` rag-python-处理包/ ├── batch_index.py # 索引脚本 ├── config.py # 配置文件 ├── document_parser.py # 文档解析 ├── text_splitter.py # 文本分块 ├── vector_store.py # 向量存储 ├── knowledge_docs/ # 空目录,用于放PDF ├── index_data/ # 空目录,存放结果 └── requirements.txt # Python依赖 ``` ## 三、处理人员操作步骤 ### 1. 环境准备 ```bash # 安装 Python 依赖 pip install -r requirements.txt # 安装 Tesseract OCR(用于扫描版PDF) # Windows: 下载安装 https://github.com/UB-Mannheim/tesseract/wiki # 安装时勾选中文语言包 # 安装 Ollama 并下载嵌入模型 ollama pull nomic-embed-text ``` ### 2. 放入 PDF 文件 将分配的 PDF 文件放入 `knowledge_docs/` 目录 ### 3. 执行索引 ```bash python batch_index.py ``` 等待处理完成,会显示: - 处理进度 - 每个文件的字符数和向量块数 - 总耗时 ### 4. 返回结果 处理完成后,将 `index_data/` 文件夹打包发回: - 重命名为 `index_data_姓名/` - 包含 `documents.json` 和 `faiss.index` 两个文件 ## 四、合并索引(汇总人员操作) ### 1. 收集所有人的结果 将各人返回的 `index_data_xxx/` 文件夹放到 `to_merge/` 目录: ``` rag-python/ ├── to_merge/ │ ├── index_data_张三/ │ │ ├── documents.json │ │ └── faiss.index │ ├── index_data_李四/ │ │ ├── documents.json │ │ └── faiss.index │ └── index_data_王五/ │ ├── documents.json │ └── faiss.index └── merge_index.py ``` ### 2. 执行合并 ```bash python merge_index.py ``` ### 3. 验证结果 ```bash python app.py # 访问 http://localhost:5000/api/stats 查看统计 ``` ## 五、注意事项 1. **Ollama 必须运行** - 所有处理人员的电脑都需要运行 Ollama 2. **模型要一致** - 都使用 `nomic-embed-text` 模型 3. **避免重复文件** - 不同人员处理的 PDF 不要重复 4. **大文件耐心等待** - 200MB 的 PDF 可能需要 30-60 分钟 ## 六、常见问题 ### Q: 处理中断了怎么办? A: 删除 `index_data/` 目录,重新运行 `batch_index.py` ### Q: 某个 PDF 处理失败怎么办? A: 检查 PDF 是否损坏,或尝试用其他工具转换格式 ### Q: 合并后发现有重复怎么办? A: 合并脚本会自动去重(按文件名判断) ## 七、预估时间 | PDF 类型 | 大小 | 预估时间 | |---------|------|---------| | 文字版 PDF | 10MB | 1-2 分钟 | | 扫描版 PDF | 10MB | 5-10 分钟 | | 大型扫描版 | 200MB | 30-60 分钟 |