2026-03-20
用 Streamlit 搭了个论文助手
最近在写论文,发现每次修改都要在 Word 里来回折腾,格式一不小心就乱了。想着能不能有个工具,让我直接上传 Word,然后 AI 帮我处理,最后还能导回 Word 格式。
最后用 Streamlit 搭了这个论文助手,效果比预想的好。
核心功能
主要做了这么几个功能:
- Word 转 HTML 预览:上传后直接用浏览器预览,保持原有格式
- AI 摘要生成:一键生成指定字数的摘要
- 多语言翻译:支持中、英、日、韩、法、德
- AI 降重:把 AI 生成的文字改写成更像人写的
- 语法纠错:检查英文论文的语法和标点
- 批量处理:一次上传多篇,批量生成摘要
技术方案
Word 转 HTML 用的是 LibreOffice,这个工具能把 Word 文档转成高保真的 HTML/ODT 格式,比 python-docx 或者 mammoth 的效果都好。
核心转换逻辑:
subprocess.run([
'libreoffice', '--headless', '--convert-to', 'html',
'--outdir', '/tmp', input_path
], capture_output=True, timeout=30)
导出的时候再把 HTML 转回 Word,也是用 LibreOffice。这样格式基本不会丢。
遇到的问题
最开始用的是 mammoth 转 HTML,效果一般,表格和复杂格式都会出问题。后来换了 LibreOffice 就好多了。
还有个问题是 AI 并发调用会被限流,所以加了个线程池控制并发数量。
部署
直接用 Streamlit 的 --server.port 部署在 3001 端口,然后用 Nginx 做反向代理和 HTTPS。
域名解析到服务器后,用 certbot 申请了 Let's Encrypt 的免费证书。
总的来说 Streamlit 还是挺方便的,Python 代码直接跑,不需要写前端。