checker_api / app.py

Commit History

Upload 33 files
d4b4554
verified

felixkky commited on

Upload 27 files
4596576
verified

felixkky commited on

Update app.py
0977554
verified

felixkky commited on

Upload 13 files
511f7f8
verified

felixkky commited on

Update app.py
126c5e2
verified

felixkky commited on

Update app.py
54ad522
verified

felixkky commited on

Update app.py
c0829cd
verified

felixkky commited on

Update app.py
0af0b16
verified

felixkky commited on

Update app.py
01a91b1
verified

felixkky commited on

💡 這次改動為你解決了什麼? 智能光照均勻化(remove_photo_shadows_and_glare): 新代碼在圖片送進 OMRChecker 前,會先利用 OpenCV 計算出整張照片的「環境光亮度地圖」。然後用原圖去除以這張亮度地圖。這樣一來,不管你的照片是上方亮下方暗、還是中間有手機倒影,紙張的底色都會被強制算成純白色,只有真正的鉛筆劃記才會保持黑色。這能直接解決因為陰影導致的「空白題變全選」! 深域核心探測(Deep Shrinkage): 我們把 shrink_w 提高到了 22 像素,shrink_h 提高到 12 像素。這相當於把原本 60x30 的氣泡感應格,大幅縮小成只有方框正中央的一小塊區域。就算手機拍照有點斜、或者對齊稍微歪了一點,探測點也絕對不會碰到 DSE 答題卡原本印刷的 [ A ] 外框黑線,從源頭切斷了外框溢入導致的錯誤。 優化多數決安全機制(Smart Voting): 在最後的決策投票中,系統會檢查多輪掃描的狀態。如果某一題在大部分的極端模式下都是空白,只有在某一輪被判定有答案,系統會聰明地識別出那是「雜訊干擾」,自動將其恢復為真正的「空白(—)」。
68cb021
verified

felixkky commited on

Update app.py
efc3463
verified

felixkky commited on

Update app.py
72d338b
verified

felixkky commited on

這裡為您將動態 OpenAPI 容錯補丁、多重採樣與多數決決策融合(Ensemble Voting) 的核心閱卷邏輯,以及支援 API 呼叫的 Gradio 規格(允許傳入 Template JSON) 完美融合。 此版本的設計重點: 介面與功能保持一致:保留了您最核心的 3 輪不同靈敏度(Level 1~3)交叉掃描、分歧偵測、多數決投票與 4 欄式 Markdown 答案摘要輸出。 完美相容 API 呼叫:將 template_content 作為第二個輸入參數,讓 Google Apps Script (GAS) 呼叫時能動態帶入 DSE 考卷的 JSON 結構;若手動在網頁端操作時忘記填寫,程式會自動降級(Fallback)自動撈取當前目錄下的 template*.json 檔案,確保網頁端不用手動貼上 JSON 也能一鍵閱卷! 融合 OpenAPI 容錯補丁:保留了頂部的 Gradio 布林值解析崩潰補丁,確保 API 管道暢通無阻。
b02525f
verified

felixkky commited on

根本原因: 當 Hugging Face 雲端環境或 OMRChecker 的依賴項自動更新了 FastAPI 或 Pydantic 時,新版的 OpenAPI 標準會將 JSON Schema 中的 additionalProperties 欄位輸出為布林值(True 或 False)。 然而,目前該版本的 Gradio 內部解析器硬性假設 additionalProperties 一定是一個「字典(Dict)」,並直接執行了 "const" in schema 檢查。當它讀到布林值時,就會直接拋出 TypeError 導致整個 Web 服務在初始化時 500 崩潰。 🛠️ 解決方案:套用「猴子補丁 (Monkey Patch)」 由於我們無法直接修改 Hugging Face 伺服器內建的 gradio_client 套件原始碼,最完美、最優雅的解法就是在您的 app.py 頂部加入一段動態攔截補丁。當 Gradio 試圖解析布林值的 Schema 時,由補丁提前攔截並安全回傳,防止其崩潰。
aa904f2
verified

felixkky commited on

Update app.py
949ad8f
verified

felixkky commited on

Update app.py
d09add2
verified

felixkky commited on

Update app.py
4bbe0e3
verified

felixkky commited on

Update app.py
ce0e348
verified

felixkky commited on

Update app.py
fbc5fca
verified

felixkky commited on

Update app.py
89f8e2e
verified

felixkky commited on

Update app.py
967fa6c
verified

felixkky commited on

Update app.py
41de365
verified

felixkky commited on

Update app.py
e771198
verified

felixkky commited on

Update app.py
854041f
verified

felixkky commited on

Update app.py
bb1f474
verified

felixkky commited on

Update app.py
bb5a8cf
verified

felixkky commited on

Update app.py
5213eea
verified

felixkky commited on

Update app.py
8a2b1e8
verified

felixkky commited on

Update app.py
d31a2c7
verified

felixkky commited on

Update app.py
adce88d
verified

felixkky commited on

Update app.py
c53c137
verified

felixkky commited on

Update app.py
6e1835b
verified

felixkky commited on

Update app.py
afe9732
verified

felixkky commited on

Update app.py
fdc8df6
verified

felixkky commited on

Update app.py
310044b
verified

felixkky commited on

Update app.py
98c271d
verified

felixkky commited on

Update app.py
c7bbdb8
verified

felixkky commited on

Update app.py
992c796
verified

felixkky commited on

Create app.py
90f73ee
verified

felixkky commited on