初始提交: PDF翻译网站
功能: - 上传PDF自动翻译成中文 - 不登录可用(次数限制) - 登录后获得更多次数 - 会员等级制度(不同权益) - 智能缓存(相同文件秒出结果) - 原文译文对比查看 - 支持重新翻译(自定义要求) - 翻译历史记录 技术栈: Flask + SQLAlchemy + Bootstrap5
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
# PDF翻译助手 - 英文PDF翻译网站
|
||||
|
||||
基于本地LLM服务的英文PDF翻译中文网站。
|
||||
|
||||
## 功能特点
|
||||
|
||||
### 核心功能
|
||||
- ✅ 上传英文PDF自动翻译成中文
|
||||
- ✅ 智能缓存机制 - 相同文件秒出结果
|
||||
- ✅ 翻译进度实时显示
|
||||
- ✅ 原文译文对比查看
|
||||
- ✅ 支持重新翻译(带自定义要求)
|
||||
|
||||
### 用户系统
|
||||
- ✅ 不登录可用(有次数限制)
|
||||
- ✅ 免费注册获得更多次数
|
||||
- ✅ 会员等级制度
|
||||
|
||||
### 会员权益
|
||||
|
||||
| 用户类型 | 每日次数 | 最大页数 | 特殊功能 |
|
||||
|---------|---------|---------|---------|
|
||||
| 访客 | 3次 | 20页 | 基础翻译 |
|
||||
| 免费 | 10次 | 50页 | 历史、重译 |
|
||||
| 基础会员 | 50次 | 100页 | 导出PDF |
|
||||
| 专业会员 | 200次 | 500页 | 批量翻译 |
|
||||
| 企业会员 | 无限 | 无限 | API调用 |
|
||||
|
||||
## 快速启动
|
||||
|
||||
```bash
|
||||
# 安装依赖
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 初始化数据库
|
||||
python app.py
|
||||
|
||||
# 启动服务(默认端口5000)
|
||||
python app.py
|
||||
```
|
||||
|
||||
访问 http://localhost:5000 即可使用。
|
||||
|
||||
## 配置说明
|
||||
|
||||
修改 `config.py` 文件:
|
||||
|
||||
```python
|
||||
# LLM服务配置
|
||||
LLM_CONFIG = {
|
||||
"api_base": "http://192.168.2.5:1234/v1", # LLM API地址
|
||||
"api_key": "your-api-key",
|
||||
"model": "qwen/qwen3.5-35b-a3b",
|
||||
}
|
||||
|
||||
# 用户权限配置
|
||||
USER_LIMITS = {
|
||||
"guest": {"daily_translations": 3, "max_pages": 20},
|
||||
"free": {"daily_translations": 10, "max_pages": 50},
|
||||
# ...
|
||||
}
|
||||
```
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
pdf-translate-web/
|
||||
├── app.py # Flask主应用
|
||||
├── config.py # 配置文件
|
||||
├── models.py # 数据库模型
|
||||
├── services.py # 翻译服务
|
||||
├── requirements.txt # 依赖列表
|
||||
├── templates/ # HTML模板
|
||||
│ ├── index.html # 首页
|
||||
│ ├── login.html # 登录页
|
||||
│ ├── register.html # 注册页
|
||||
│ ├── pricing.html # 会员定价
|
||||
│ ├── history.html # 翻译历史
|
||||
│ └── translation.html # 翻译详情
|
||||
├── static/ # 静态资源
|
||||
│ ├── css/style.css # 样式
|
||||
│ └ js/main.js # 前端脚本
|
||||
├── uploads/ # 上传文件目录
|
||||
├── cache/ # 翻译缓存目录
|
||||
└── outputs/ # 输出文件目录
|
||||
```
|
||||
|
||||
## API接口
|
||||
|
||||
### 上传翻译
|
||||
```
|
||||
POST /api/upload
|
||||
参数: file (PDF文件), instruction (翻译要求,可选)
|
||||
返回: {translation_id, from_cache, task_id}
|
||||
```
|
||||
|
||||
### 翻译状态
|
||||
```
|
||||
GET /api/status/<translation_id>
|
||||
返回: {status, progress}
|
||||
```
|
||||
|
||||
### 获取结果
|
||||
```
|
||||
GET /api/result/<translation_id>
|
||||
返回: {filename, content}
|
||||
```
|
||||
|
||||
### 下载结果
|
||||
```
|
||||
GET /api/download/<translation_id>
|
||||
返回: Markdown文件
|
||||
```
|
||||
|
||||
### 重新翻译
|
||||
```
|
||||
POST /api/retranslate/<translation_id>
|
||||
参数: {instruction: "翻译要求"}
|
||||
```
|
||||
|
||||
## 扩展功能建议
|
||||
|
||||
1. **导出PDF格式** - 将翻译结果转回PDF保留排版
|
||||
2. **批量翻译** - 支持多个PDF同时上传
|
||||
3. **自定义术语库** - 用户可定义专业术语翻译
|
||||
4. **翻译质量评分** - AI评估翻译质量
|
||||
5. **API接口** - 提供外部调用接口
|
||||
6. **导出Word格式** - 方便后续编辑
|
||||
7. **多语言支持** - 支持更多语言互译
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **后端**: Flask + SQLAlchemy
|
||||
- **前端**: Bootstrap 5 + JavaScript
|
||||
- **LLM**: 本地部署的 Qwen3.5 模型
|
||||
- **缓存**: 文件缓存 + 数据库索引
|
||||
- **异步**: Python threading
|
||||
|
||||
## 注意事项
|
||||
|
||||
⚠️ Qwen模型有思考模式,翻译速度约30秒/块,适合处理重要文档。
|
||||
|
||||
⚠️ 生产环境需要:
|
||||
- 添加HTTPS支持
|
||||
- 配置真实数据库(PostgreSQL)
|
||||
- 实现支付系统
|
||||
- 添加文件清理机制
|
||||
Reference in New Issue
Block a user