members · portfolio

會員專區

我自己寫過、跑過的小作品 — 從會議 AI 副駕到自動化工具。每件都看得到封面與技術亮點, 想看完整的架構拆解、實作細節和踩坑紀錄,免費註冊登入就一次解鎖全部。

wez-html:一行指令把任何前端推上內網,拿到一個常駐網址
作品 2026/07/02

wez-html:一行指令把任何前端推上內網,拿到一個常駐網址

推一個 demo 給同事看,以前要做五件事:rsync 推檔、ssh 找 port、起 http.server、貼 URL、兩個月後忘記清。真正有價值的只有「同事拿到一個能點的網址」,其他都是雜務。wez-html 是我自己寫的一套內網靜態站服務:一句 CLI 把資料夾推上去、回一個常駐網址,結束。Go single binary + 純檔案儲存,沒有資料庫;每站附一份輕量 KV JSON store,讓純靜態頁也能做記分板、投票、留言板這種要存狀態的 demo;身份制但不驗證,走內網信任模型換零認證成本。這篇拆解我為什麼選「無資料庫」路線、KV 的四個 REST endpoint 與刻意上限、三種入口(CLI / Web UI / Claude Code plugin 一句中文需求直接寫頁再推),以及一個我踩到自己坑的 TTL 故事——砍功能只改了行為、沒清乾淨殘留欄位與死碼,到期日還在印卻永遠不生效。MIT 開源,附完整實測 round-trip。

Go single binary 靜態站託管
OCR 報帳填表:一疊收據照片自動填進四張差旅報帳 Excel,讀圖、分類、扣抵判定全自動,音訊與影像不離開內網
作品 2026/06/29

OCR 報帳填表:一疊收據照片自動填進四張差旅報帳 Excel,讀圖、分類、扣抵判定全自動,音訊與影像不離開內網

報帳最煩的不是金額,是把一疊收據一張張看、分類、抄進四種格式不同的差旅報帳 Excel——純手工、易錯、還很花時間。OCR 報帳填表是我自己寫的一套自動化:上傳收據/車票/發票照片,內網的視覺模型(Gemma 多模態)一次完成讀圖、正規化、分類、信心評分,產出標準費用 JSON,再自動填進 A/B/C/D 四張報帳 Excel 打包成 zip 下載。信心低或日期不合法的會標「待覆核」讓人在結果頁逐列逐欄補,補完重跑;悠遊卡/高鐵那種「一張含多趟」的明細表,用螢光筆或手寫記號標出要報的列,系統自動把被標金額相加成一筆。最特別的是回填自我學習——模型讀錯被人改對的那筆會累積成樣本,之後讀同類憑證挑最近幾筆當 few-shot 範例,越用越準,且完全不重訓模型。終點是「填好待覆核」,系統不寄出、不上傳,最終由人覆核。這篇拆解完整架構、視覺模型取代傳統 OCR 模板的判讀設計、螢光/手寫雙模式合併邏輯,以及動態 few-shot 怎麼讓固定權重的 vLLM 越用越準。

vLLM 多模態視覺模型 FastAPI
letsMeet:自己寫一套會議現場「即時逐字稿 + AI 追問」副駕,音訊不離開內網
作品 2026/06/25

letsMeet:自己寫一套會議現場「即時逐字稿 + AI 追問」副駕,音訊不離開內網

開會最怕的不是聽不懂,是「會議結束才想到剛剛該追問什麼」。letsMeet 是我自己寫的一套會議副駕:開會時按錄音,對方說的話即時轉成逐字稿;按一下「產生問題」,AI 站在你的視角生成 3-5 條該追問的問題。技術上是 WebSocket 串流 PCM16 音訊 → faster-whisper(Breeze-ASR-25)在 server 端即時轉錄 → 任何 OpenAI-compatible LLM 橋接產問,全程跑在內網、音訊不離開公司。前端純 vanilla JS 零 build step,後端 FastAPI,外加 Caddy 處理 HTTPS(麥克風只在 secure context 開)。這篇拆解完整架構、即時轉錄的串流設計,以及四個真實踩坑——含一個害手機完全連不上的 TLS SNI 坑。

WebSocket faster-whisper FastAPI
checking...