__init__.py 1.9 KB

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