fix: deploy scripts/ files properly (correct directory)
This commit is contained in:
@@ -29,34 +29,35 @@ STATE_PATH = DATA_DIR / "macro_risk_state.json"
|
||||
# HIGH: 任何一条匹配 → 立即 HIGH 预警
|
||||
HIGH_PATTERNS = [
|
||||
# 全球巨头+核心产业
|
||||
r"苹果.*(?:涨价|降价|推迟|取消|禁|制裁|调查|召回|大跌|暴跌)",
|
||||
r"openai.*(?:推迟|取消|风险|调查|起诉|倒闭|ipo)",
|
||||
r"英伟达|nvidia.*(?:跌|调查|制裁|推迟|禁令)",
|
||||
r"台积电.*(?:跌|推迟|取消|地震|火灾|禁)",
|
||||
r"苹果[^。]*(?:涨价|降价|推迟|取消|禁|制裁|调查|召回|大跌|暴跌)",
|
||||
r"openai[^。]*(?:推迟|取消|风险|调查|起诉|倒闭|ipo)",
|
||||
r"(?:英伟达|nvidia)[^。]*(?:跌|调查|制裁|推迟|禁令)",
|
||||
r"台积电[^。]*(?:跌|推迟|取消|地震|火灾|禁)",
|
||||
r"特斯拉.*(?:暴跌|召回|调查|破产|禁)",
|
||||
# 美联储/央行意外
|
||||
r"美联储.*(?:意外|紧急|缩表|风暴|警告|超预期|加息\s*50|降息\s*50|紧急\s*(?:会议|声明))",
|
||||
r"美联储.*(?:利率|决议).*(?:超预期|意外|紧急)",
|
||||
r"fed.*(?:emergency|unexpected|surprise|hike|cut)",
|
||||
# 指数暴跌
|
||||
r"指数.*(?:跌幅|暴跌|熔断|闪崩|重挫)",
|
||||
# 指数暴跌(需 ≥2% 跌幅或使用更强范围词)
|
||||
r"指数[^。]*?(?:暴跌|熔断|闪崩|重挫)",
|
||||
r"指数[^。]*?(?:跌幅|下跌)[^。]*?[2-9]%",
|
||||
r"(?:暴跌|重挫|熔断).*[5-9]%",
|
||||
r"熔断|闪崩",
|
||||
# 地缘+贸易
|
||||
r"关税.*(?:升级|新|报复|制裁)",
|
||||
r"制裁.*(?:新|升级|全面)",
|
||||
r"战争|开战|入侵|核|导弹.*发射",
|
||||
r"战争|开战|入侵|核(?:威胁|武器|弹头|试验|攻击|冲突|导弹|战争|潜艇|问题|危机|设施)|导弹[^。]*(?:发射|袭击|攻击)",
|
||||
# 系统性能源
|
||||
r"原油.*(?:跌破|暴跌|崩盘|断供)",
|
||||
r"石油.*(?:禁运|制裁|断供)",
|
||||
r"能源危机|粮食危机",
|
||||
# 系统金融
|
||||
r"银行.*(?:倒闭|挤兑|破产|接管|危机)",
|
||||
r"金融危机|债务危机|违约潮|系统性",
|
||||
r"金融危机(?:风险|爆发|蔓延|冲击|预警|警示|逼近|担忧|席卷|升级|恐慌|进入|出现|形成|即将|来袭|警报|当前|新一轮|全面|全球性)|债务危机|违约潮|系统性(?:风险|危机)",
|
||||
# AI/科技板块重挫
|
||||
r"半导体.*(?:暴跌|熔断|崩盘|跌幅)",
|
||||
r"科技股.*(?:暴跌|熔断|崩盘|重挫)",
|
||||
r"费城半导体|sox.*(?:跌|崩)",
|
||||
r"(?:费城半导体|sox)[^。]*?(?:跌|崩)",
|
||||
]
|
||||
|
||||
# MEDIUM: 累计匹配2条以上 → MEDIUM 预警
|
||||
@@ -75,6 +76,39 @@ MEDIUM_PATTERNS = [
|
||||
r"黑天鹅|灰犀牛",
|
||||
]
|
||||
|
||||
# ── 模式完整性校验(防 .pyc 缓存/版本回退) ──
|
||||
# 直接检查关键特征字符串是否存在于模式中
|
||||
# 原理: 旧版有 standalone |核| , 新版有 核(?:威胁
|
||||
# 旧版有 银行.*倒闭|挤兑|破产 , 新版有 银行.*(?:倒闭|挤兑|破产
|
||||
_PATTERN_CHECKS = {
|
||||
8: ["暴跌|熔断|闪崩|重挫"], # index pattern must use strong crash words, not "跌幅"
|
||||
9: ["[2-9]%"], # 指数+跌幅 requires ≥2%
|
||||
14: ["核(?:威胁", "核威胁|武器|弹头"], # must NOT have standalone 核
|
||||
18: ["倒闭|挤兑|破产"], # bank pattern must have crisis keywords
|
||||
19: ["金融危机(?:风险", "危机|债务危机"], # must NOT have standalone 金融危机
|
||||
}
|
||||
_KNOWN_BAD_SIGS = {
|
||||
# Known stale .pyc signature fragments that indicate wrong version
|
||||
"指数.*跌幅": "旧版用 .* 跨句匹配且无 ≥2% 阈值",
|
||||
"|核|": "旧版有独立单字核",
|
||||
"英伟达|nvidia.*跌": "旧版 alternation 分组错误",
|
||||
"导弹.*发射": "旧版只匹配发射不匹配袭击",
|
||||
"|金融危机|": "旧版 standalone 金融危机匹配历史参照",
|
||||
}
|
||||
for idx, required_list in _PATTERN_CHECKS.items():
|
||||
if not any(req in HIGH_PATTERNS[idx] for req in required_list):
|
||||
print(f"[MACRO-安全] ⚠️ HIGH_PATTERNS[{idx}] 签名不匹配!")
|
||||
print(f"[MACRO-安全] 当前: {HIGH_PATTERNS[idx][:100]}")
|
||||
print(f"[MACRO-安全] 预期应包含: {required_list[0]}")
|
||||
print(f"[MACRO-安全] 可能原因: .pyc 缓存过期 / 回退到旧版本")
|
||||
|
||||
# 额外扫描:检查是否有已知的旧版签名残留
|
||||
_all_patterns_text = "\n".join(HIGH_PATTERNS)
|
||||
for bad_sig, reason in _KNOWN_BAD_SIGS.items():
|
||||
if bad_sig in _all_patterns_text:
|
||||
print(f"[MACRO-安全] ⚠️ 检测到旧版模式签名 '{bad_sig}' ({reason})")
|
||||
print(f"[MACRO-安全] .pyc 缓存可能未刷新,当前 HIGH_PATTERNS 可能仍为旧版本")
|
||||
|
||||
def ensure_tables(conn):
|
||||
conn.execute("""
|
||||
CREATE TABLE IF NOT EXISTS macro_raw_news (
|
||||
|
||||
Reference in New Issue
Block a user