科研工具

文獻分析系統 —— 用 AI 把化學論文變成筆記與簡報

文獻分析系統 —— 用 AI 把化學論文變成筆記與簡報

一個跨領域科學論文的 AI 分析工具。上傳一篇論文 PDF,它會自動讀懂內容、 判斷論文類型,並用三種不同視角呈現,還能一鍵匯出成 Markdown 筆記與 PowerPoint 簡報。

緣起

讀論文是研究的日常,但同一篇論文,「準備書報討論」「想復刻實驗」「想快速抓重點」 需要的是完全不同的整理方式。我想做一個工具:讀一次、自動整理成我需要的各種樣子, 省下重複手動做筆記、做簡報的時間。

三種視角,一次分析

最核心的設計:AI 只呼叫一次,產出一份完整的「核心知識結構(JSON)」, 前端三個視角只是對同一份資料做不同的渲染 —— 不重複呼叫 API、省錢也省時間。

  • 📋 書報討論:研究問題、摘要、主要發現、機制、圖表解說
  • 🔬 實驗復刻:依論文類型動態渲染對應的完整參數表 + 復刻清單
  • 🎨 視覺圖解:因果流程圖、機制箭頭、圖表網格

它會自動判斷論文屬於哪一類(計算化學 / 有機合成 / 電化學 / 光譜 / 綜述…), 並切換對應的專業欄位(例如計算類顯示 DFT 參數、有機類顯示試劑當量)。

設計上的關鍵決定

兩層式 Schema

所有論文共用一組核心欄位(摘要、發現、機制…),再依論文類型動態套上 domain-specific 欄位。這樣既能統一處理任何論文,又能對不同領域顯示專業細節。

禁止「silent fallback」

這是我最在意的一點:任何 API 失敗、PDF 解析錯誤、模型不存在,都直接把具體錯誤 顯示出來,絕不塞假資料、不靜默忽略。AI 找不到的資訊就老實填「未提及」,不虛構。 對研究工具來說,「寧可報錯,也不能編造」比什麼都重要。

雙模型支援

OpenAI(gpt-4o-mini / gpt-4o)和 Claude(Sonnet / Opus)都能用,用一個統一介面包起來, 可以隨時切換、比較不同模型的分析品質。

技術架構

  • 後端:Python + Flask
  • PDF 解析:PyMuPDF(fitz)萃取文字
  • AI:OpenAI / Anthropic SDK,統一介面 + 含完整 schema 的 system prompt
  • 前端:原生 HTML + Tailwind CSS + Alpine.js,學術感的 Noto Serif TC 標題
  • 匯出:Markdown、JSON、以及自動產生的 PowerPoint 簡報
  • 部署:開發用 python app.py,生產可用 Gunicorn + Docker

開發歷程

分四個階段做:先做能跑的 CLI(PDF → LLM → JSON),再包上 Flask 上傳介面, 接著做三種視角的渲染,最後優化 prompt、加上 Markdown / 簡報匯出與 Docker 打包。 過程中最花心思的是把 prompt 和 JSON schema 設計好 —— 要讓 AI 穩定輸出結構化、 可被程式渲染的資料,而不是一段自由發揮的文字。

已經實際用在

分析過高熵合金的力學性質、天然物全合成、PFAS 檢測等真實論文, 直接產出可用的書報筆記與簡報 —— 這個工具我自己在用。

我學到的東西

  • 怎麼設計 prompt 與 JSON schema,讓 LLM 穩定輸出結構化、可程式處理的結果
  • 「一次運算、多種呈現」這種省成本又乾淨的架構思路
  • 把多家 AI API 包成統一介面
  • 工具型程式的可靠性原則:寧可明確報錯,也不要靜默給假資料

← 回到作品集