Spaces:
Sleeping
Sleeping
Commit History
16 days ago
-
feat: 3 example articles; neutral review-step wording
Verified signature3634984 -
feat: progress stepper + highlighted result + correction cards (local compare view)
Verified signature66c1f5b -
feat: switch demo to FT + Opus article review (pipeline_exp_261021_ft_hybrid)
Verified signature3dfc93b
-
fix: swap solar-mini4-preview to solar-mini4 (preview model retired)
The Upstage API now returns 400 invalid_request_body for solar-mini4-preview. solar-mini4 resolves to solar-mini4-260922 and the full v44 pipeline runs cleanly on the demo sample (11 steps, ~4s). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>80208ae
-
chore: drop __pycache__ artifacts from the bundle
Verified signature로컬 검증 중 build/ 안에서 파이썬을 돌려 생긴 .pyc 가 번들에 섞여 올라갔다. 런타임에 영향은 없지만 벤더링된 소스와 갈라질 수 있어 제거한다. build_space.py 는 엔진 copytree 에서 __pycache__ 를 이미 제외하므로, 재조립 시 build/ 를 먼저 지우면 재발하지 않는다.483134a -
feat: switch demo to the solar-mini4 pipeline (v44 = v41 + document chunking)
Verified signature단일 구성 solar-mini4 파이프라인으로 교체. 판정형 step1(5KB) + 문맥 교정 어휘/문법 2스텝 + 결정론 규칙 6층(josa_fix·diff_revert 신규). 옛 pro4 v35 x combo 자산은 이 커밋에서 삭제. 로컬 검증: 번들 내 구성 조립 11스텝 OK, 1,515자 기사 9.9초/4조각, Streamlit HTTP 200.dd41633
-
deploy: v35 document-level chunking (DP split + parallel chunks), progress view, Supabase logbook
Verified signature8debb9c
-
UI: remove pipeline description caption
Verified signature3ded0dd -
UI: side-by-side 원문/교열후 panes, larger input, remove metrics/step view
Verified signaturebaac679 -
Replace v24-era demo with v34 pipeline demo (engine-vendored bundle)
Verified signature9c84f9d
-
fix(title-proofread): never add thousand separators (Chosun style)
조선일보 표기는 천단위 구분 쉼표를 쓰지 않는다. PRIORITY 0 의 천단위 콤마 룰을 반전 — 보충 의무 → 추가 금지 + 기존 콤마 제거. 고객 피드백 반영: `1억6600만원` 에 쉼표가 삽입되던 오류 해소. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>bf83778
-
feat(title-proofread): add optional body context input (v2 prompt)
본문 입력 시 prompt_dev_v2 (PRIORITY 7 본문 참조) 로 자동 분기. 비어있으면 v1 로 fallback. A/B eval (57 본문 의존 typo) 에서 recall 5% → 61%, F1 +63 확인됨 — 특히 이름/지명 (82%) 와 숫자 (56%) 패턴에서 효과 큼. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>cf207fa
-
feat(title-proofread): expand Chosun stylebook coverage in PRIORITY 0
Add 14 new stylebook rules (TIER 1 + selected TIER 2): - 수의 증감: %포인트, N배 가/N배로 구분 - 구두점·표기: 미·중 가운뎃점, K- 붙임표 제거, 물결표+~까지 중복, 외국 언론명 붙여 씀, 현지 시간→현지 시각 - 어법: 이중 피동·사동 금지, 시제 동사/형용사 구분 - 신상·괄호: 이름+직함 순서, 성별 표기 금지, 소괄호 조사 호응 - 번역투: ~에 대해 → ~에게/생략 - 중복 표현: 처음 시작, 거의 대부분, ~보다 더, 100여 명을 웃돌다 등 Verified on 12 regression+stylebook cases. All TIER 1 critical rules pass (천단위 콤마, 미·중, K-, ~까지, 현지 시각, 외국 언론 표기 등). Quote-balance preservation from prior round still intact. Known limitations to address in next iteration: - 이중 피동 (잊혀진→잊힌) 일부 미적용 - 이중 사동 의미차 모호 시 미적용 - 이름 위치 교환 시 조사 누락 가능 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>2cd8075
-
feat(title-proofread): never attempt to balance unbalanced quotes
Customer feedback: when input had a single closing quote, the model sometimes inserted an opening quote at the wrong position, breaking meaning. Customer explicitly noted that recall on unbalanced quotes is impossible to do reliably ("맥락상 잡기 쉽지 않다"), so the safer behavior is to leave such inputs untouched. Strengthens PRIORITY 2 (quotation handling): - Forbid quote *addition*, *removal*, *position move* - Forbid auto-balancing of unbalanced quotes - Explicit example using the exact customer-feedback title Verified: count(") preserved in all three regression cases (unbalanced, paired, none) and thousands-comma rule still active. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>599bfb5 -
feat(title-proofread): address customer feedback round 1
- Add Chosun style-book thousands-comma rule (PRIORITY 0, MANDATORY). Examples: 7870 -> 7,870; 1만2000 -> 1만2,000. Year/code exceptions documented (2030, KF-21). - Strip stray </think> tokens from model output. Handles both paired <think>...</think> and orphan </think> patterns occasionally emitted by solar-pro2. - Lock model to solar-pro2 (production extension target) and drop the pro3 comparison column. Single-column result UI only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>c318017
-
refactor(ui): drop v16 legacy tab
Keep only the v24 (new) feedback tab and the title proofreading sandbox. v16 prompts/pipelines stay in the repo but are no longer surfaced in the UI. _v16_prompt resolution removed from app.py. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>7cd2a55 -
refactor: drop category selector from title proofreading tab
Both pro2 and pro3 outputs were observed to behave the same regardless of selected category, so the selector added no informational value. Internally uses fixed "일반기사" so the existing user template and system prompt stay unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>aa11860 -
feat: add title proofreading sandbox tab
Solar-pro2 vs solar-pro3 side-by-side comparison for Korean newspaper title proofreading. Default prompt loaded internally and not exposed in the UI. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>f338c84
-
ui: surface v24 tab first (default), v16 legacy second
43bd06b -
ui: remove per-tab description blurbs
Both tabs now go straight from the tab header into the input/output UI without an intermediate gr.Markdown blurb.5fe5b65 -
fix(docker): COPY pipelines_v24.py into image
Without this, RUNTIME_ERROR: ModuleNotFoundError: No module named 'pipelines_v24'. The new module was committed in d518386 but the Dockerfile's explicit COPY list didn't include it.6d3f88e -
feat: add v24 pipeline (FT + self-consistency × 2 + tool-calling judge)
New tab "v24 (new · 260429)" alongside existing v16 legacy tab. Pipeline architecture (5 LLM calls/doc): vocab → FT → basic_correction × 2 + intersection → tool-calling judge (round 1 lookups + round 2 decisions) → apply_judge_decisions → vocab_reapply → paragraph_dedupe → post_process paragraph F1 47.04 (vs solar-pro2 prod_251231 mean 44.86, +2.18). Key changes: - pipelines_v24.py: new module with self-consistency wrapper, 2-round tool-calling judge emulation, apply_judge_decisions revert logic, and PMI lookup loader (in-memory dict from gzipped TSV). - pipelines.py: register 260429_v24, add _process_single_bulk_with_raw helper (returns post-text + raw JSON for self-consistency intersection), dispatch new step types (llm_self_consistency, tool_calling_judge, apply_judge_decisions rule), reset v24 state per request. - app.py: gr.Tabs(v16 legacy, v24 new). Keyboard shortcut JS targets the visible tab via offsetParent. - blindtest/ui.py: build_feedback_tab(elem_id_pr…d518386
-
fix: 1-paragraph-per-bulk chunking + KSS sentence-split for overflow
- text_splitter: each paragraph becomes its own bulk; paragraphs > max_chars are split into sentences via KSS (regex fallback on pecab asserts) and packed within that paragraph only - pecab is not thread-safe; serialize KSS calls with a module-level mutex to prevent cross-request contamination - blindtest/ui: drop UI-level chunk_by_paragraph packing and parallel executor; pipeline's internal split_into_bulks is the single chunking step This eliminates two distinct drop modes: - "인접 비슷한 문단이 같은 bulk → LLM 이 중복으로 오판해 drop" (e.g. O42 20%) - "한 문단이 여러 bulk 에 쪼개짐 → LLM 이 불완전 조각으로 오판해 drop" (e.g. JABBR 80%) Verified: 461 runs across 127 articles, 0.22% residual drop rate (down from 20% worst-case). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>a0be335 -
fix: preserve bulk boundary \n + substring-count dedupe + 30-char prefix
- bulk join "" → "\n" to keep paragraph boundaries across bulks - apply_paragraph_dedupe: substring-count input to tolerate LLM paragraph restructuring - prefix_len default 80 → 30 to catch corrected+original echo pairs - temperature 0 → 0.0001 to loosen greedy decoding bias Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>725b08e
-
fix: add paragraph_dedupe post-process to remove residual LLM echoes
Even after PARAGRAPH_SEP + per-bulk <원문> (prior commit), solar-pro3 still probabilistically echoes paragraphs for specific inputs: - Long multi-chunk articles (6788 chars / 13 chunks) - Truncated inputs the model tries to "complete" by restarting Add an output-level safety net: split final text on \n+, count paragraph occurrences in both input and output, drop any paragraph that appears more in output than input. Exact + 80-char-prefix matching. Paragraphs shorter than 40 chars (◇ headers, short interjections) skipped. Verified on full Supabase sweep (75 unique articles): - Before fix 1+2+3: 13.4% dup rate - After: 0.0% (0/75) - Including aid=63 (long article, was 30%) and aid=22 (truncated input, was 80%) — both now clean. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>c540d93 -
fix: restore PARAGRAPH_SEP + per-bulk <원문> to suppress step1 echo
Step1 prompt (dev_260408_v16) expects <paragraph_separator> structure-preservation rule, but the new pipeline sent plain \n. Combined with passing full chunk as <원문> to every bulk, solar-pro3 echoed adjacent paragraphs ~15% of runs on 260408_v16 (measured via Supabase; 251231_default at 0%). - Add PARAGRAPH_SEP conversion at step1+ LLM boundary (matches reference run.py:219-250). - Narrow <원문> to per-bulk pre-FT snapshot, split with same bulker (matches reference: original=step0_sep). - Safe fallback to chunk-wide pre-FT text if bulk counts diverge. Verified on 5 known-bad articles × 10 runs each: 4/5 articles fully recover to 0% dup rate. Remaining case is a truncated-input data quality issue unrelated to this fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>8b6780d
-
Replace 500-char limit with paragraph-greedy chunking + parallel run
20a14d9 -
Limit input to 500 chars (UI cap + handler validation)
6095079 -
Catch step1 LLM duplication via leading-sentence reoccurrence
9c4997d -
Single-tab feedback UI (Good/NotBad/Critical); FT dedup tighter
c421c84
-
Drop supabase SDK; call REST via httpx to avoid websockets conflict
ed17f2a -
Pin websockets>=13 for supabase realtime
b850bf1 -
Remove Supabase UI warnings; add startup diagnostic log
cb5d870 -
Move blindtest tab first; add RLS policies and error surfacing
e92517a -
initial deploy
61d7017 -
initial commit
Verified signature0336a3f