2026-03-20

用 Streamlit 搭了个论文助手

python streamlit

最近在写论文,发现每次修改都要在 Word 里来回折腾,格式一不小心就乱了。想着能不能有个工具,让我直接上传 Word,然后 AI 帮我处理,最后还能导回 Word 格式。

最后用 Streamlit 搭了这个论文助手,效果比预想的好。

核心功能

主要做了这么几个功能:

技术方案

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 代码直接跑,不需要写前端。