Files
ewoooc/migrations/034_add_embedding_signature_to_rag_tables.sql
OoO 14c5349b69
All checks were successful
CD Pipeline / deploy (push) Successful in 56s
補齊 AI 觀測表 ORM 與 embedding 簽名
2026-05-12 23:13:20 +08:00

41 lines
1.9 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- Migration 034: rag_query_log / learning_episodes embedding_signature
-- Operation Ollama-First v5.0 — BGE-M3 cross-table guardrail
-- 日期: 2026-05-12 台北
-- =============================================================================
-- 背景:
-- migration 026 已替 ai_insights.embedding 加 embedding_signature
-- rag_query_log.query_embedding 與 learning_episodes.embedding 仍缺同一護欄。
-- 一旦 bge-m3:latest / normalize / dim 漂移,跨表 cosine 會退化且無法定位。
--
-- 設計:
-- 1. 新增 nullable VARCHAR(64)metadata-only不回填、不重寫大表。
-- 2. 新寫入由 services/rag_service.py 與 services/openclaw_learning_service.py 補簽名。
-- 3. 既有 NULL 代表歷史資料,查詢端可保守放行或在後續 backfill 後收緊。
-- =============================================================================
ALTER TABLE IF EXISTS rag_query_log
ADD COLUMN IF NOT EXISTS embedding_signature VARCHAR(64);
COMMENT ON COLUMN rag_query_log.embedding_signature IS
'BGE-M3 一致性簽名;對應 query_embeddingNULL = 歷史資料或 embedding 失敗';
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_rag_query_log_embedding_signature
ON rag_query_log (embedding_signature)
WHERE query_embedding IS NOT NULL AND embedding_signature IS NOT NULL;
ALTER TABLE IF EXISTS learning_episodes
ADD COLUMN IF NOT EXISTS embedding_signature VARCHAR(64);
COMMENT ON COLUMN learning_episodes.embedding_signature IS
'BGE-M3 一致性簽名;對應 embeddingNULL = 尚未 embedding 或歷史資料';
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_le_embedding_signature
ON learning_episodes (embedding_signature)
WHERE embedding IS NOT NULL AND embedding_signature IS NOT NULL;
DO $$
BEGIN
RAISE NOTICE 'Migration 034 done: embedding_signature added to rag_query_log and learning_episodes';
END $$;