Spaces:
Running
Running
Commit History
-
統計穩定性警示、system prompt 補強、關於面板、多項 bug 修正
統計正確性: - cohens_d()/eta_squared() 分母趨近於零時回傳 None 而非失真數值 (新增 EFFECT_UNSTABLE_LABEL),修掉效果量算出天文數字的 bug - 新增 ZERO_VARIANCE_WARNING:任一組標準差趨近於 0 但檢定仍算出 p 值的退化情況,加註「統計穩定性有限」警示,不隱藏顯著性判斷 - 新增 ZERO_PROPORTION_WARNING(門檻 50%):任一組半數以上樣本值 為 0、SD 未趨近於零但平均數可能被離群值主導的情況,獨立於上面 的 SD 判準另外偵測,兩者可疊加、不重複描述同一組資料 - 修正 docx 差異性分析表格欄位定位改用欄名查表(原本 len(vals)-4 位置推算已對錯欄) - None/NaN 判斷全面改用 pd.isna(),修掉 docx 表格出現 "nan" 文字 - 群組標籤(如「人工翻譯」)修正為會實際套用到送給 LLM 的 difference_analysis 資料,不再只停留在畫面/圖表 - 差異性分析箱形圖:達顯著指標全部畫出(取消前 12 項上限),排序 改為先依組別、組內再依效果量絕對值 - 兩群比較用詞「較高/較低」、三群以上用詞「最高/最低」 System prompt(LLM1): - 補上角色邊界、11 條嚴格禁令(原 5 條)、指標代碼對照表、 metadata 一致性檢查指示 - 新增 INDICATOR_REFERENCE_TABLE:從 INDEX_CATEGORIES 動態產生, 取代手動謄寫,避免與實際指標定義漂移 - 每次分析新增 06_system_prompt.txt 可重現性附件,保留當次實際 送出的完整 system prompt 原文 介面: - 新增「關於」面板(系統版本、免責聲明、姊妹工具、開發紀錄;版權 /聯絡方式/引用格式因論文尚未發表,暫不公開真實姓名或 email) - 情境 1、4 卡片標題拿掉「同一原文的」;情境選擇小標改為 「請選擇最符合您針對同一原文的重譯研究設計的比較情境」 - 「語料 Metadata 說明」全面改稱「語料說明」(含隱形橋接按鈕文字 同步) - 隱私提醒文案調整(移除「先與計畫主持人確認」,改為「先行確認」) Co…f1c47a3
-
AI 頭像/AI對話圖示:兩顆星改成彩虹弧線
- assets/icons/ai-avatar.svg:頭像圖示從兩顆實心星改成三道白色同心弧 (彩虹弧線剪影),底色維持原本紫藍漸層不動 - assets/icons/chat-bubble.svg:AI對話導覽按鈕圖示同步改成同款弧線造型, 改用跟其他導覽圖示一致的單色線稿(#475569 / stroke-width 1.75), 深色模式沿用既有的 grayscale(1) invert(1) 反色濾鏡,不用額外處理 - assets/app.css:同步更新頭像區塊註解,說明沿用漸層 token 而非固定色的理由 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>f1121d3
-
AI 頭像:兩顆星改實心並放大
業主:對話列的 AI 頭像圖案兩顆都要實心,而且現在視覺上有點小。 - assets/icons/ai-avatar.svg 改 fill 實心、不再描邊,path 一併撐大: 大星 x3.9–17.1/y2.2–17.2、小星 x15.3–21.5/y13.6–20.7,幾乎填滿 24 的 viewBox(原本大星只有 x6.6–17.4/y3.4–16.6,小星更小一圈)。 - CSS:img 內距 5px→3px,圖案在 28px 圓內的可用範圍 18px→22px。 兩件事要一起做才有感——只縮內距是把細線稿放大,只放大 path 又會被內距框住。 - _ICON_PATHS 的行內版 path 同步更新,維持「檔案版與行內版一致」的既有慣例。 驗證:實測頭像容器仍 28px、內距 3px、圖案可用範圍 22px;截圖確認兩顆星 都是實心白、在漸層圓內明顯放大。(這次沒有用像素統計當佐證——頁面底色 本身就接近白,用亮度門檻數白點會把背景一起算進去,改以 DOM 量測+截圖 目視為準。) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQuAXWC1hCsiT48TXftPc71b38599 -
使用手冊圖示放大到與其他導覽圖示同量體、radio 欄位標籤對齊文字欄位
1. 使用手冊圖示比其他導覽項目小一圈。用截圖逐一量「非背景像素」的實際 上色範圍才確認:book-open 只有 16×15,folder/chat-bubble/table-cells 都是 18×16(viewBox 全部是 24×24,光看檔案看不出差別)。把 path 撐到 x 3.2–20.8、y 4.5–20,重量後為 18×16,與其他項目一致。 assets/icons/book-open.svg 與 _ICON_PATHS 的行內版同步改,並在註解留下 「新增導覽圖示要量上色像素」這條檢查。 2. 「群組數量/比較方式」欄位標籤原本是一般大小的深色字,跟同一張表單裡 「原文標題/作者」的小灰字粗體不同調——radio 的 fieldset 標籤走的是 Gradio 另一條規則。補上 #metadata_zone fieldset.block > span 對齊成 .7rem/700/--c-text-muted,實測兩者現在都是 11.2px/700/#475569。 .7rem 不是新發明的字級,是對齊 Gradio 既有的欄位標籤值,因此不套 --font-size-base(那是內文用的,標籤本來就小一階)。 驗證:情境 3 實測兩處標籤數值完全相同;十個導覽圖示重新量過上色範圍, 使用手冊已與 folder/chat-bubble/table-cells 同為 18×16。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQuAXWC1hCsiT48TXftPc7502ffd8 -
業主第四輪修改:淺色對比度、AI 頭像、下載位置、使用手冊
1. 淺色模式對比度(深色維持原樣) 新增兩級線條 token:--c-border-strong(結構線,淺色 #7c8798,對白 3.64:1、對近白底 3.2-3.5:1)與 --c-divider(表格資料列細線)。深色值 沿用原本散在 .app-header/欄邊框/標題底線各處的 rgba(148,163,184,.28) 硬寫值,那批個別覆寫規則一併刪除。三個 token 宣告點(app.css :root/ .dark、app_agent.py _DARK_MODE_HEAD_CSS)同步。 對話氣泡:淺色底改 --c-bubble-bg #eef2f7(原本白底疊欄底只有 1.07:1) 並加 1px 結構線邊框。表格表頭底改 --c-thead-bg #e2e8f0、表頭分界線改 結構線。輸入框邊框(淺色)從 1.3:1 改 3.6:1。 2. AI 對話氣泡加頭像 gr.Chatbot(avatar_images=(None, ai-avatar.svg)),28px 圓形。漸層畫在 CSS 的 .avatar-container(吃 accent token、隨主題切換),SVG 檔只放 白色四角星——avatar_images 是 Python 端參數,同一個檔沒辦法隨主題換色。 3. 語言指標分析的下載區塊移到表格下方,與其他五個結果頁順序一致 (純宣告順序調整,_TAB_IDX 位置對應不動)。 4. 左側導覽列最後加「使用手冊」下載項目 放在 result_nav_col 外、nav-items-scroll 最末,全程可見;接專案根目錄 既有的 使用手冊.docx(實測下載 41783 bytes 一致,不用改 allowed_paths)。 它是下載動作不是頁面,不進 _ALL_NAV_IDS,不搶導覽 active 狀態。 #nav_guide_btn 比照 #reset_btn 加進導覽列樣式與收合狀態的選擇器清單。 順帶讓 result_nav_col 只佔內容高度(Gradio 預設 flex:1 1 auto 會把它 撐滿、把使用手冊推到欄底)。 docs/design.md 同步:兩級線條準則、對話氣泡…f5990cb
-
研究選擇搬回工作區成正式第1步+首頁改版+導覽列/對話區視覺打磨(Batch A-G)
- 3-A:情境選擇從首頁搬回工作區,成為步驟列正式第1步「研究選擇」(_STEPS 3→4步) - 2-B:nav-col 三段式改版、對話圖示改對話氣泡樣式 - 2-C:對話輸入框改常駐隱藏、對話氣泡字級調整為14px - 首頁置中、品牌字標2行1.1rem、頂部列去標題、捲軸懸停才顯示 - 4-B/4-C 導覽列消失、重置殘留等回歸問題修復 - 新增「重新選擇研究情境」返回鈕 - .gitignore 補 .gradio/(Gradio本機憑證快取,比照 .venv/ 排除)698954d
-
新增整包下載:導覽列四顆下載捷徑 + beforeunload 防手滑 + 修復重置後情境卡片失效
整包下載(需求文件缺口 1,原訂只做假按鈕,改為直接實作完整後端): - 新增 _ZIP_GROUPS/_make_result_zips(),把產出分成指標數據/統計圖表/ 研究報告/完整分析結果四包 zip - 呼叫點放在 _populate_tabs 而非運算流程:結果頁提供下載的是改過名的 複本(TransPrism_LLM Report_*.docx)且刻意排除原始 .txt,重新命名就 發生在 _populate_tabs 裡,在那裡打包才能保證 zip 內容與使用者在頁面上 看到的檔案一致,也不用把「哪些檔案是給使用者的」寫兩遍 - 內容為空的那包不產生,對應按鈕就不出現(LLM 報告失敗時「下載研究報告」 不會亮出來);只有一組有內容時不另外產生整包,避免兩顆按鈕內容一樣 - nav-col 底部新增四顆 gr.DownloadButton,接在 _TAB_OUTPUTS 尾端 26-29 - _populate_tabs 開頭明確把這四顆設回隱藏:其他結果元件都住在 canvas_*_col 裡,重置時整個 Column 被藏起來看不到殘值;這四顆住在 result_nav_col, 而它會在下次選定情境時重新顯示,不歸零的話上一輪的 zip 會跟著冒出來 - state 的 zip_path(從專案第一天就只被初始化成 None)改成 zip_paths 字典 - 新增 download.svg(照既有規格:24x24、stroke #475569、stroke-width 1.75) 防手滑: - 工作區顯示期間掛上 beforeunload,回到首頁自動解除 - 兩個瀏覽器層面的限制寫進註解:需先與頁面互動確認框才會出現、提示文字 無法自訂 順帶修復測試中發現的既有 bug(已用 git stash 在原版程式碼上重現確認,非本次 改動造成):按「開始新分析」回到首頁後,情境卡片點了完全沒反應,必須重新 整理頁面才能再選,等於 Bug1「選錯情境無法變更」的修復只有一半。根因是 homepage_col 設成 visible=False 時 Svelte 會銷毀整個子樹而非加 display:none, 重新顯示時是全新節點,原本掛在 #homepage_scenario_grid 上的 listener …ab5ce10 -
步驟列收斂 8 步 → 6 步 + 導覽列與頁殼視覺調整
步驟列: - _STEPS 改為 文本上傳/格式驗證/語料說明/指標計算/統計分析/報告產出 - 移除的 4 步都不帶資訊:情境選擇已搬到首頁、上傳引導與文本上傳在同一個 generator 內連續完成、報告撰寫與下載成果本來就寫在同一行一起標記 - 新增「語料說明」步驟,修正填表期間步驟列誤亮「指標計算 進行中」 - failed_step 5,6 → 4,5;_COMPUTING_STEP_LABELS key 5,6,7 → 4,5,6 - 格式驗證失敗退回重傳時,一併把該步從 done_steps 移除(原本只設 current_step,_build_header_html 判斷順序 done > current,步驟列會停在 「✓ 文本上傳」與畫面要求補傳自相矛盾) - 全部完成後步驟列整條隱藏,只留產品名 視覺: - 頂部列扁平化(去框線/漸層/圓角,只留 1px 下邊框,產品名與步驟列改上下兩行) - .upload-zone/.metadata-zone 去框線/陰影/底色 - .nav-col/.chat-col 各加 border-right - 導覽列改 Bootstrap 5.3 nav-underline 垂直版(選取項左緣 2px 主色線) - 統計比較分析 4 個子頁改一般項目+各配圖示、左緣齊平,手風琴預設展開 - 主項目 .result-nav-btn 改用 #result_nav_col 祖先提高 specificity,蓋掉 Gradio 的 button.svelte-xxx.secondary 預設框線(子項目先前已修,主項目漏了) - 新增 table-cells/scale/academic-cap/squares-2x2 四個 Heroicons 圖示 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>5033f69
-
排版重構 Phase 2:nav-col 真正的頁面切換模型
千卉確認的核心行為:情境選擇→上傳→格式驗證→Metadata→運算中這段流程 進行中,對話欄常駐顯示;點導覽列任何一個結果類項目(語言指標分析/ 統計比較分析/LLM輔助分析/技術執行紀錄)互斥顯示、收起對話欄、 Canvas 佔滿寬度;點「AI對話」(原「回到上傳/表單」改名)對話欄彈回。 這是全新邏輯,取代 8-C/8-D「有資料就全部堆疊、使用者自己往下捲」的 舊行為(8-C 程式碼註解本來就把這個標成「8-D 待辦」,8-D 當時只做了 捲動+子分頁切換,沒真的做互斥頁面,這次補完)。 - 技術執行紀錄從手風琴(exec_log_accordion)轉正成獨立頁面 (canvas_exec_col),跟其他三個結果頁同一種 visible=True/False 語意, 不再需要 open/label 收合狀態邏輯,_accordion_update/_accordion_label 兩個函式跟著移除;nav-col 新增「技術執行紀錄」項目,跟主要三項用 分隔線+降低視覺權重區隔 - 純 JS 實作(applyActivePage(),_APP_HEAD_SCRIPT):在 .main-layout-row 設 data-page 屬性+chat-collapsed class,canvas-scroll 底下 7 個直屬 區塊按頁面歸屬只清除或強制 inline display:none,絕不強制顯示—— Python 的 visible=False(資料是否存在)永遠優先,沿用 8-E 驗證過的 inline style 優先權技巧。延續這批 nav 按鈕「刻意不接 Python .click()」 的既有設計原則,不新增 Gradio queue 往返 - 「開始新分析」reset 流程新增把頁面狀態重置回 chat(.main-layout-row 這個 DOM 節點在 Gradio 重置時不會銷毀重建,data-page 不會自動清空) 兩個新踩坑: 1. Gradio 的 Svelte reactivity 在元件 visible prop 改變時會整個重寫 inline style(不是疊加,是覆蓋),把 JS 手動加的 !important 覆寫 一併洗掉——運算完成那一刻 canva…b234dbb -
Phase 8-E:nav-col 桌面收合 icon bar + 手機漢堡抽屜
nav-col 收合成窄 icon bar(桌面,60px,localStorage 記住狀態)與 off-canvas 抽屜(手機 ≤900px,漢堡鈕開/X、背景遮罩、Esc 都能關)。 提前補上 Heroicons 風格圖示(plus/home/trending-up/document,assets/ icons/*.svg + gr.Button(icon=);統計比較分析用 CSS ::before 掛 chart-bar,Accordion 沒有 icon 參數)——因為收合後純文字按鈕沒有圖示 會看不懂,跟千卉確認後決定把原訂「下一輪視覺打磨」的圖示需求提前 到這次一起做,範圍限縮在 nav-col 這批新按鈕。 gr.Button(icon=) 這版 Gradio 是渲染成 <img>,不是行內 svg,深色模式 用 filter 反相+去彩處理(img 不吃 currentColor)。收合狀態下重置 按鈕若被點擊,JS 會先自動展開 nav-col 再顯示確認彈窗,避免彈窗擠在 窄欄裡;nav-col 原本 gr.Column(min_width=200) 的 inline min-width 需要 額外用 !important 覆寫才能真正收窄(min-width 優先於 max-width)。 已用 Playwright 驗證 375/768/900/1024/1440 五個斷點無跑版無橫向捲動、 淺色/深色模式圖示皆正常、桌面收合展開/手機抽屜開關四種關閉路徑 (X、背景、Esc、點導覽項目自動關)、重置流程收合狀態下正確自動展開。3ced5f9