api.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # -*- coding: utf-8 -*-
  2. r"""观澜 · 本体与知识层 —— **对外公开面**(P0 阶段:接口先立,实现仍在既有路径)。
  3. 用户令 2026-09-22:按模块重构源代码目录,**每模块只许经 `api.py` 被别的模块调用**。
  4. 本文件当前把公开名**惰性转发**到既有实现(src/ontology/*、src/sop/*),因此:
  5. * 调用的行为与重构前完全一致(零行为变化);
  6. * 后续阶段(见 `docs/重构方案_模块化_v0.1.md`)把实现搬到本模块目录后,**只改这里的目标映射**,
  7. 调用方一行都不用动;
  8. * 惰性转发(PEP 562)保证 import 本文件不会连带 import 重依赖。
  9. """
  10. from __future__ import annotations
  11. import importlib
  12. # 公开名 → 现有实现(P0 转发目标;P1 起改为本模块内的实现模块)
  13. _TARGETS: dict[str, str] = {
  14. 'store': 'src.ontology.store',
  15. 'schema': 'src.ontology.schema',
  16. 'codes': 'src.ontology.codes',
  17. 'kb_ingest': 'src.ontology.kb_ingest',
  18. 'populate': 'src.ontology.populate',
  19. 'chain_ingest': 'src.ontology.chain_ingest',
  20. 'trend_ingest': 'src.ontology.trend_ingest',
  21. 'retrieval': 'src.ontology.retrieval',
  22. 'maintenance': 'src.ontology.maintenance',
  23. 'decisions': 'src.ontology.decisions',
  24. 'audit': 'src.ontology.audit',
  25. 'fast_agent': 'src.ontology.fast_agent',
  26. 'llm_gate': 'src.ontology.llm_gate',
  27. }
  28. __all__ = list(_TARGETS)
  29. def __getattr__(name: str):
  30. target = _TARGETS.get(name)
  31. if target is None:
  32. raise AttributeError(
  33. f'{__name__} 未公开 {name!r};公开面见 __all__ —— 模块间调用只许走 api.py'
  34. )
  35. mod = importlib.import_module(target)
  36. globals()[name] = mod
  37. return mod