Skip to content

修正供應鏈風險資料處理:分析狀態、去重、排程與保存一致性 - #16

Draft
wweyuiop1205-lgtm wants to merge 5 commits into
mainfrom
codex/batch1-isolated
Draft

wweyuiop1205-lgtm wants to merge 5 commits into
mainfrom
codex/batch1-isolated

Conversation

@wweyuiop1205-lgtm

@wweyuiop1205-lgtm wweyuiop1205-lgtm commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

AI 分析失敗原本可能被保存成「相關、延遲 7 天」,重複新聞與不一致的地區判斷也會影響熱圖與後續分析。本 PR 分離原始新聞與分析狀態,讓失敗、未知與零值各自保留正確意義,並統一分析、審核及保存流程。

此 PR 維持 Draft,等待組員 L1~L3 成果比對與整合,暫不合併或部署。

修改範圍

  1. AI 失敗隔離:原始內容與分析欄位分開;失敗/未驗證新聞不直接成為有效風險或正式來源事件。
  2. 排程入口:明確啟用、設定間隔與重試;SQLite 記錄工作識別碼與狀態,OS 鎖避免同時執行,已成功工作跳過。
  3. 新聞去重:分析前依 URL 與內容識別鍵查重,唯一索引防重複寫入;失敗可重試,成功新聞不重做逐篇分析。
  4. AI 輸出驗證:檢查結構、編號、類型與數值;0 為有效值,null 為未知,錯誤為失敗;熱圖另驗證合法據點。
  5. 地區一致性:熱圖、供應商、採購與缺貨分析共用匹配規則,避免同名地區跨國混算。
  6. 畫面與保存一致:審核與寫入共用解析;熱圖百分比與延遲以同一交易保存,0%/0 天可重新讀回。

另加入隔離啟動與一次性真實新聞驗收入口,修正 GNews 搜尋條件及小寫國家代碼。原始新聞、測試資料庫、金鑰與本機驗收快照不包含於 PR。

驗證

  • 功能提交 b258d44,Windows/Python 3.12.3:完整 pytest 388 passed in 27.41s;其後此批新增為文件整理。
  • GNews 真實擷取 6 篇;後續使用模擬 AI 的流程驗收 14 項通過,與 pytest 數量分開計算。
  • git diff --check 通過。
  • 測試使用獨立 ERP_DB_PATH,封鎖後續外部連線,不呼叫付費模型、不發送真實通知、不啟動正式背景排程。
  • GitHub Actions(提交 7538a41,Ubuntu/Python 3.11):388 passed in 13.75spytest CI 通過,包含 POSIX 環境的鎖定測試。

資料與行為注意事項

  • 初始化新增分析欄位、識別索引、熱圖延遲與排程記錄;保留舊新聞/事件 ID,舊新聞標記 legacy_unverified。舊資料曾被覆寫的原文無法自動還原,正式資料遷移尚未驗收。
  • 隔離網站按鈕重播快照;真正 GNews 擷取使用 scripts/accept_live_news.py --source gnews --env-file <本機設定路徑>,每次建立獨立驗收資料夾。
  • 尚未驗證真實 LLM 判斷品質、真實 LINE、正式負載與長時間排程。格式驗證不等於證據充分,AI 分析成功不等於人工確認,新聞去重不等於事件去重。
  • 尚未包含完整 L1 摘要共享、事件識別重整、L2 提案至 L3 審批回寫等組員成果;這些需取得對方 PR 後整合。

審查入口

主要審查檔案:backend/news_store.pyrisk_validation.pyregion_matching.pyscheduler.pysupply_chain_news.pysupply_chain_risk.py,以及 frontend/components/risk_dashboard.pysupply_map.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant