# PDF处理工作流程

## 完整流程

```
1. 用户将PDF放入"未处理/中文/"或"未处理/英文/"
2. 执行处理脚本
3. PDF提取文字 → 保存到"处理中/文件名_提取.txt"
4. 判断语言（中文/英文）
5. 如果是英文：
   - 分段（每段4000字符）
   - 逐段翻译（本地Ollama）
   - 合并翻译结果
6. 生成概述（200字纯中文，本地Ollama）
7. 保存翻译文件到"已完成/翻译/"
8. 保存概述文件到"已完成/概述/"
9. 移动PDF到"已完成/原文/"
10. 删除"处理中/提取.txt"
```

## 关键步骤说明

### 1. PDF文字提取

- **工具**: pdfplumber (Python库)
- **输出**: 纯文本，保留页面分隔
- **特点**:
  - 提取所有页面文字
  - 保持段落结构
  - 标记页码（--- 第N页 ---）

### 2. 语言判断

- **方法**: 统计英文单词数量
- **阈值**: >100个英文单词 = 英文PDF
- **策略**:
  - 英文PDF → 翻译
  - 中文PDF → 跳过翻译

### 3. 分段翻译（英文PDF）

- **分段策略**: 每段最多4000字符
- **分段边界**: 优先在段落边界断开（\n\n\n, \n\n, 。, ！, ？）
- **翻译模型**: 本地Ollama (qwen2.5:7b)
- **翻译策略**:
  - 每段独立翻译
  - 使用temperature=0.3保证准确性
  - 合并所有段落的翻译结果

### 4. 概述生成

- **输入**: 前5000字符（摘要和引言部分）
- **模型**: 本地Ollama (qwen2.5:7b)
- **输出要求**:
  - 纯中文，200字以内
  - 包含：研究背景、主要方法、核心贡献、应用价值
  - 清理所有英文、数字、符号

### 5. 文件组织

```
论文处理/
├── 未处理/
│   ├── 中文/
│   └── 英文/
├── 处理中/
│   └── 文件名_提取.txt（临时）
├── 已完成/
│   ├── 原文/
│   ├── 翻译/
│   │   └── 文件名_翻译.txt
│   └── 概述/
│       └── 文件名_概述.txt
└── 索引/
```

## 技术依赖

- **Python库**: pdfplumber, requests, re, shutil, pathlib
- **Ollama**: qwen2.5:7b模型
- **Ollama配置**: 本地服务运行在http://localhost:11434

## 性能特点

- **成本**: 0元（使用本地模型，不消耗线上API）
- **处理时间**:
  - 提取: 秒级
  - 翻译: 每段30秒-1分钟，总时间取决于段数
  - 概述: 秒级
- **质量**:
  - 翻译: 学术准确性高，保持段落结构
  - 概述: 200字纯中文，简洁准确
