feat(pchome): automate authorized sales acquisition
Some checks failed
CD Pipeline / deploy (push) Has been cancelled

This commit is contained in:
ogt
2026-07-11 01:30:42 +08:00
parent f68223f0ed
commit 6e65ef00bb
21 changed files with 2428 additions and 617 deletions

View File

@@ -339,6 +339,7 @@ SQL漏斗(~300筆)
> **重要**: 此表由 `import_service.py` 使用 `df.to_sql()` 動態建立。
> 欄位名稱**完全繼承自 PChome 後台匯出的業績 Excel 原始欄位**,加上程式碼追加的 `snapshot_date`。
> V10.605 起,匯入器會掃描所有 worksheet 與前 15 列表頭,優先選擇含「日期 / 商品名稱 / 總業績或銷售金額」的明細工作表;格式或日期真的不合格的檔案會移到 Google Drive `匯入失敗`,避免每 30 分鐘重複告警。
> V10.776 起,`pchome_sales_acquisition_service.py` 依序探測 Google Drive、顯式授權 HTTPS、顯式授權 IMAP 與受控落地目錄;所有非 Drive 檔案先做副檔名/魔術碼/大小檢查與 SHA-256 冪等,再由 `import_service.py` 在同一 DB transaction 內 replace、寫入及驗證 `daily_sales_snapshot` 與 `realtime_sales_monthly`。任一步失敗必須整批 rollback不得留下半同步狀態。每次 run 需把 `trace_id`、OpenTelemetry-compatible `span_id`、`run_id`、`work_item_id`、來源、政策、check、execution、post-verifier 與 terminal 寫入 `pchome_sales_acquisition_receipts`;舊版人工暫停旗標不得停止此 medium-risk controlled-apply lane。正式完成仍要求最新業績 <= 1 天,不能以 source/test/UI 綠燈取代 production freshness closure。
#### 已確認的關鍵欄位PChome 後台報表欄位名稱)

View File

@@ -1,6 +1,6 @@
# PChome AI 自動化優先工作清單
> 最後更新: 2026-07-10 Asia/Taipei
> 最後更新: 2026-07-11 Asia/Taipei
> 範圍: PChome growth / MOMO mapping AI 自動化主線
> 真相來源: Gitea `dev` / `main`、正式環境 `/health`、正式 DB readback、machine-verifiable artifacts
@@ -16,12 +16,12 @@
| 順序 | 工作主線 | 狀態 | 下一個完成條件 |
|---|---|---|---|
| P0-1 | 授權業績資料自動取得與匯入 | 進行中 | 最新業績 <= 1 天source receipt 與 post-verifier 同 run 完成 |
| P0-1 | 授權業績資料自動取得與匯入 | 程式已完成,待正式來源與新鮮資料閉環 | 最新業績 <= 1 天source receipt 與 post-verifier 同 run 完成 |
| P0-2 | 全商品身份圖譜與營收加權對應 | 進行中 | 覆蓋 80% 營收商品的 >= 90% |
| P0-3 | 合法多電商資料取得 | 進行中 | 每個啟用來源具 freshness SLO、normalize、matcher、verifier |
| P0-4 | 多平台營收決策引擎 | 程式已完成,待推版回讀 | 正式環境以至少 2 個已啟用平台產生可重播決策 |
| P0-4 | 多平台營收決策引擎 | 已部署,受多來源資料缺口阻擋 | 正式環境以至少 2 個已啟用平台產生可重播決策 |
| P0-5 | 調價、促銷、內容、曝光實驗與歸因 | 未開始 | 同 run 完成 apply、轉換驗證、增量營收歸因與 rollback |
| P1-1 | 專業 UI/UX 作戰 cockpit | 程式已完成,待推版與視覺 QA | desktop/mobile 首屏無文字牆、無假圖、只顯示一個主要下一步 |
| P1-1 | 專業 UI/UX 作戰 cockpit | V10.776 source-ready待正式推版與視覺 QA | desktop/mobile 首屏無文字牆、無假圖、只顯示一個主要下一步 |
| P1-2 | Ollama-first MCP / RAG / PixelRAG runtime | 進行中 | 正式 flags 啟用PixelRAG receipt 可 replayQwen3-VL 驗證通過 |
| P1-3 | 資安與治理自動化 | 進行中 | low/medium/high controlled apply 自動閉環critical 才 break-glass |
@@ -32,12 +32,23 @@ PixelRAG blocked-page 分類、外部報價正規化、正式 DB 安全邊界。
新增 Yahoo / ETMall / friDay / Rakuten PixelRAG alias、多平台 evidence 與 actionable 分層、
業績 freshness gate、全 catalog 覆蓋率、漏跑排程追趕,以及首屏來源摘要與過期資料阻擋。
2026-07-11 P0-1 source receipt新增 Drive → 授權 HTTPS → 授權 IMAP → 受控落地目錄的
自動取得順序、SHA-256 冪等、同交易雙表 replace/verifier/rollback、
`trace_id/span_id/run_id/work_item_id` durable receipt、舊人工暫停旗標 sunset 與首屏來源 cockpit。
程式完成不等於 production closure正式退出條件仍是取得日期 <= 1 天的授權報表並完成 runtime readback。
### 2026-07-11 外部專業基準落地
- OWASP SSRF Prevention Cheat Sheet授權 HTTPS provider 採 HTTPS scheme、host/port allowlist、公開 IP 驗證、禁止 redirect並固定連到已驗證 IP、保留原 hostname TLS 驗證,降低 DNS rebinding / TOCTOU 風險。
- OpenTelemetry Trace Contextreceipt 使用 32 位小寫 hex `trace_id` 與 16 位小寫 hex `span_id`,保留後續跨服務 log/trace correlation 契約。
- NIST AI RMFacquisition run 以 policy/asset mapping、風險決策、量測/verifier 與 retry/rollback/learning writeback 對應 Govern、Map、Measure、ManageUI 或 source-ready 不得取代 production runtime closure。
## 不可遺漏的插入需求
以下是使用者在主線推進期間插入、且必須保留在完整工作項目裡的要求。後續不得再把這些需求漏掉或變成口頭提醒。
1. 正式環境才是最新版本真相;不得用本機檔案、舊筆記、舊分支蓋過 production truth。
2. 版本不得搞錯;目前正式環境 `/health` 版本推進目標為 `V10.745`完成條件必須包含明確版本 bump、部署與 readback。
2. 版本不得搞錯;2026-07-11 開工 live truth 為正式環境 `V10.775`,本輪 source 目標為 `V10.776`完成條件必須包含明確版本 bump、部署與 readback,後續仍以當下 `/health` 為準
3. GitHub 全面 freeze不得使用 GitHub、`gh`、GitHub API、GitHub Actions、PR、issue、mirror 或 read-only GitHub 流程。
4. 實作結果必須推到 Gitea `dev``main`;若改到 runtime 行為,還必須部署到正式環境並回讀。
5. 主方向是 AI 自動化,不是人工審核;人工欄位只能當 evidence / ledger / UI truth不得阻擋低爆炸半徑、可驗證、可回滾的 controlled apply。
@@ -69,7 +80,7 @@ PixelRAG blocked-page 分類、外部報價正規化、正式 DB 安全邊界。
已完成:
- 正式環境版本真相 guard`/health` 是最高真相,本輪推進目標為 `V10.745`
- 正式環境版本真相 guard`/health` 是最高真相2026-07-11 開工基線為 `V10.775`,本輪 source 目標為 `V10.776`
- Gitea `dev` / `main` source truth 對齊。
- Retry exception controlled apply executor 已落地,目標表為 `pchome_product_matches`
- 正式 DB 已 controlled apply 4 個 selectors: