125 lines
3.1 KiB
Markdown
125 lines
3.1 KiB
Markdown
# 知识库多人协作处理方案
|
||
|
||
## 一、分工方式
|
||
|
||
将 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 分钟 |
|