# -*- coding: utf-8 -*- """规则层(RULES)。 只放可配置、可补充、可由 AI 生成并审阅的规则。 按 ARCHITECTURE.md §5 三类代码划分: CORE -> 人工主导,不可由 AI 直接生成 RULE FRAMEWORK -> 可由 AI 起草,必须人工维护(dl/rules/runtime/) AI RULE -> 可以生成(dl/rules/patterns / keywords / site_templates / ...) 按 ARCHITECTURE.md §5.4 AI RULE 禁止事项: - 不得直接加载模型或调用 TF/PyTorch/Keras - 不得直接连接 Redis/PG/MongoDB/外部 HTTP - 不得 import predictors.* / assembly.* / pipeline.* 内部实现 - 不得在模块 import 时执行文件扫描、网络请求、数据库查询 - 不得写入文件、删除文件、修改模型权重 - 不得使用未限制的 eval / exec / 动态 import 目录结构: loader.py <- 规则加载器(YAML → re.Pattern / 关键词分类器) validator.py <- 校验器(schema + 黄金样例 + 正则性能) runtime/ <- 规则执行框架(人工维护) patterns/ <- YAML 正则规则 keywords/ <- CSV 关键词字典 site_templates/ <- 站源模板 supplements/ <- YAML 补充规则 generated/ <- AI 生成区,必须有 GENERATED-RULE 头部元信息 schema/ <- JSON Schema 定义 依赖方向约束(ARCHITECTURE.md §4.3): rules 可被 assembly / predictors / interface / pipeline 引用, 但 rules 自身只依赖 common,不反向依赖业务层。 使用方式:: from BiddingKG.dl.rules.loader import RuleLoader loader = RuleLoader() pattern = loader.get_pattern("failure_keywords") if pattern.search(text): ... money_label = loader.classify("money_source", "财政拨款") # -> "财政资金,上级拨款" """ from __future__ import absolute_import from BiddingKG.dl.rules.loader import RuleLoader __all__ = ["RuleLoader"]