Some checks are pending
CD Pipeline / build-and-deploy (push) Has started running
Phase 31: log_summary_service.py — deepseek-r1:14b K8s Pod日誌異常摘要
- 觸發: signoz_webhook 告警時背景呼叫
- Redis快取 log_summary:{pod}:{date} TTL 24h
- 敏感資料regex遮蔽
Phase 32: local_code_review_service.py — qwen2.5-coder:7b PR自動審查
- Fallback: Gemini (diff > 50KB 或 Ollama超時)
- semaphore 最多2個同時審查
- 雙寫: Redis TTL 7d + pr_reviews表 (phase29 migration)
Phase 33: knowledge_rag_service.py — nomic-embed-text 768維 pgvector RAG
- 向量化(188) + 生成(111) 雙Ollama
- rag_chunks表 (phase28 migration)
- 初期線性搜尋,>100筆啟用ivfflat索引
Phase 34: image_analysis_service.py — llava:latest Telegram圖片分析
- download_and_analyze: Bot API getFile → 下載 → llava → 回應
- Rate limit: 每chat_id每分鐘3次 (Redis sliding window)
- telegram.py webhook新增photo分支
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
22 lines
1.0 KiB
SQL
22 lines
1.0 KiB
SQL
-- Phase 29 (ADR-067): PR 自動審查記錄表
|
|
-- 2026-04-10 Claude Sonnet 4.6 Asia/Taipei
|
|
-- 雙寫: Redis TTL 7d (熱) + PostgreSQL 永久 (冷)
|
|
|
|
CREATE TABLE IF NOT EXISTS pr_reviews (
|
|
id SERIAL PRIMARY KEY,
|
|
pr_id TEXT NOT NULL, -- Gitea PR number (字串化)
|
|
repo TEXT NOT NULL, -- "wooo/awoooi"
|
|
title TEXT, -- PR 標題
|
|
diff_size_bytes INTEGER, -- diff 大小 (bytes)
|
|
model TEXT NOT NULL, -- qwen2.5-coder:7b / gemini-fallback
|
|
provider TEXT NOT NULL DEFAULT 'ollama',
|
|
review_text TEXT NOT NULL, -- 審查全文
|
|
issues_count INTEGER DEFAULT 0, -- 發現問題數
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS ix_pr_reviews_pr_id ON pr_reviews (pr_id);
|
|
CREATE INDEX IF NOT EXISTS ix_pr_reviews_created ON pr_reviews (created_at DESC);
|
|
|
|
COMMENT ON TABLE pr_reviews IS 'PR 自動審查記錄 — Phase 29 ADR-067 (2026-04-10)';
|