| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- # -*- 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"]
|