v1.0.0
PDF翻译助手 - 英文PDF翻译网站
基于本地LLM服务的英文PDF翻译中文网站。
功能特点
核心功能
- ✅ 上传英文PDF自动翻译成中文
- ✅ 智能缓存机制 - 相同文件秒出结果
- ✅ 翻译进度实时显示
- ✅ 原文译文对比查看
- ✅ 支持重新翻译(带自定义要求)
用户系统
- ✅ 不登录可用(有次数限制)
- ✅ 免费注册获得更多次数
- ✅ 会员等级制度
会员权益
| 用户类型 | 每日次数 | 最大页数 | 特殊功能 |
|---|---|---|---|
| 访客 | 3次 | 20页 | 基础翻译 |
| 免费 | 10次 | 50页 | 历史、重译 |
| 基础会员 | 50次 | 100页 | 导出PDF |
| 专业会员 | 200次 | 500页 | 批量翻译 |
| 企业会员 | 无限 | 无限 | API调用 |
快速启动
# 安装依赖
pip install -r requirements.txt
# 初始化数据库
python app.py
# 启动服务(默认端口5000)
python app.py
访问 http://localhost:5000 即可使用。
配置说明
修改 config.py 文件:
# 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: "翻译要求"}
扩展功能建议
- 导出PDF格式 - 将翻译结果转回PDF保留排版
- 批量翻译 - 支持多个PDF同时上传
- 自定义术语库 - 用户可定义专业术语翻译
- 翻译质量评分 - AI评估翻译质量
- API接口 - 提供外部调用接口
- 导出Word格式 - 方便后续编辑
- 多语言支持 - 支持更多语言互译
技术栈
- 后端: Flask + SQLAlchemy
- 前端: Bootstrap 5 + JavaScript
- LLM: 本地部署的 Qwen3.5 模型
- 缓存: 文件缓存 + 数据库索引
- 异步: Python threading
注意事项
⚠️ Qwen模型有思考模式,翻译速度约30秒/块,适合处理重要文档。
⚠️ 生产环境需要:
- 添加HTTPS支持
- 配置真实数据库(PostgreSQL)
- 实现支付系统
- 添加文件清理机制
Description
Languages
HTML
58.5%
Python
38.3%
JavaScript
2.4%
CSS
0.8%