fix(auto_repair): playbook_seed_service — 從 alert_rules.yaml 初始化 APPROVED Playbook
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled

根本原因: playbooks 表空 → NO_MATCH → 永遠走審批,從不自動修復
修復: startup 時從 alert_rules.yaml seed APPROVED Playbook(冪等)
確保自動修復鏈路有規則可用

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-04-10 21:52:38 +08:00
parent cdccc7e826
commit f33d514391
2 changed files with 113 additions and 0 deletions

View File

@@ -286,6 +286,15 @@ async def lifespan(_app: FastAPI) -> AsyncGenerator[None, None]:
# 2026-04-10 Claude Sonnet 4.6 Asia/Taipei
# 目的: 確保 playbook_embeddings 表有最新向量,供語義相似度查詢
# 使用 asyncio.create_task 非阻塞 — 不影響 API 啟動速度
# Phase ADR-068 2026-04-10: 從 alert_rules.yaml seed Playbook冪等
# 必須在 embedding indexing 之前,確保 playbook 表有資料
try:
from src.services.playbook_seed_service import seed_playbooks_from_rules
asyncio.create_task(seed_playbooks_from_rules())
logger.info("playbook_seed_scheduled")
except Exception as e:
logger.warning("playbook_seed_schedule_failed", error=str(e))
try:
from src.services.playbook_embedding_service import ensure_playbook_embeddings_indexed
asyncio.create_task(ensure_playbook_embeddings_indexed())