api.py 5.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # -*- coding: utf-8 -*-
  2. r"""观澜 · 本体与知识层 —— **对外公开面**(P6 起:实现已在本模块目录内)。
  3. 用户令 2026-09-22:按模块重构源代码目录,**每模块只许经 `api.py` 被别的模块调用**。
  4. 本模块负责(P6 完成):本体对象库与码表(`ontology/`)与 SOP/知识层(`sop/`):契约闸、判别器、
  5. 调查与案例、台账与日期口径、可用性与各类校验、检索与决策台、本机模型闸。
  6. 旧路径(`src/ontology/*.py`、`src/sop/*.py`)一律留兼容壳:`from src.sop.cases import …` 与
  7. `python -m src.ontology.kb_ingest`(重算链 ⑦ 步用的入口)都照旧可用。
  8. 公开名 → 本模块内的实现模块(PEP 562 惰性转发,import 本文件不连带重依赖)。
  9. """
  10. from __future__ import annotations
  11. import importlib
  12. _TARGETS: dict[str, str] = {
  13. 'store': 'app_ontology.app_ontology_guanlan.ontology.store',
  14. 'schema': 'app_ontology.app_ontology_guanlan.ontology.schema',
  15. 'codes': 'app_ontology.app_ontology_guanlan.ontology.codes',
  16. 'kb_ingest': 'app_ontology.app_ontology_guanlan.ontology.kb_ingest',
  17. 'populate': 'app_ontology.app_ontology_guanlan.ontology.populate',
  18. 'chain_ingest': 'app_ontology.app_ontology_guanlan.ontology.chain_ingest',
  19. 'trend_ingest': 'app_ontology.app_ontology_guanlan.ontology.trend_ingest',
  20. 'retrieval': 'app_ontology.app_ontology_guanlan.ontology.retrieval',
  21. 'maintenance': 'app_ontology.app_ontology_guanlan.ontology.maintenance',
  22. 'decisions': 'app_ontology.app_ontology_guanlan.ontology.decisions',
  23. 'audit': 'app_ontology.app_ontology_guanlan.ontology.audit',
  24. 'fast_agent': 'app_ontology.app_ontology_guanlan.ontology.fast_agent',
  25. 'llm_gate': 'app_ontology.app_ontology_guanlan.ontology.llm_gate',
  26. 'acceptance_fsm': 'app_ontology.app_ontology_guanlan.ontology.acceptance_fsm',
  27. 'mcp_server': 'app_ontology.app_ontology_guanlan.ontology.mcp_server',
  28. 'migrate': 'app_ontology.app_ontology_guanlan.ontology.migrate',
  29. 'monthly_roll': 'app_ontology.app_ontology_guanlan.ontology.monthly_roll',
  30. 'scenario_29': 'app_ontology.app_ontology_guanlan.ontology.scenario_29',
  31. 'seed_rudong29': 'app_ontology.app_ontology_guanlan.ontology.seed_rudong29',
  32. 'sop_schemas': 'app_ontology.app_ontology_guanlan.sop.schemas',
  33. 'sop_contract_gate': 'app_ontology.app_ontology_guanlan.sop.contract_gate',
  34. 'sop_analysis_kit': 'app_ontology.app_ontology_guanlan.sop.analysis_kit',
  35. 'sop_discriminators': 'app_ontology.app_ontology_guanlan.sop.discriminators',
  36. 'sop_farm_pipeline': 'app_ontology.app_ontology_guanlan.sop.farm_pipeline',
  37. 'sop_survey': 'app_ontology.app_ontology_guanlan.sop.survey',
  38. 'sop_goem': 'app_ontology.app_ontology_guanlan.sop.goem',
  39. 'sop_vib_impact': 'app_ontology.app_ontology_guanlan.sop.vib_impact',
  40. 'sop_vib_confidence': 'app_ontology.app_ontology_guanlan.sop.vib_confidence',
  41. 'sop_vib_confidence_wire': 'app_ontology.app_ontology_guanlan.sop.vib_confidence_wire',
  42. 'sop_fusion_diag': 'app_ontology.app_ontology_guanlan.sop.fusion_diag',
  43. 'sop_cases': 'app_ontology.app_ontology_guanlan.sop.cases',
  44. 'sop_scenarios': 'app_ontology.app_ontology_guanlan.sop.scenarios',
  45. 'sop_ledger_dates': 'app_ontology.app_ontology_guanlan.sop.ledger_dates',
  46. 'sop_price': 'app_ontology.app_ontology_guanlan.sop.price',
  47. 'sop_backfill': 'app_ontology.app_ontology_guanlan.sop.backfill',
  48. 'sop_wrapup': 'app_ontology.app_ontology_guanlan.sop.wrapup',
  49. 'sop_learn_loop': 'app_ontology.app_ontology_guanlan.sop.learn_loop',
  50. 'sop_schema_guard': 'app_ontology.app_ontology_guanlan.sop.schema_guard',
  51. 'sop_fleet_query': 'app_ontology.app_ontology_guanlan.sop.fleet_query',
  52. 'sop_assistant': 'app_ontology.app_ontology_guanlan.sop.assistant',
  53. 'sop_assistant_llm': 'app_ontology.app_ontology_guanlan.sop.assistant_llm',
  54. 'sop_agent_query_common': 'app_ontology.app_ontology_guanlan.sop.agent_query_common',
  55. 'sop_fatigue_validation': 'app_ontology.app_ontology_guanlan.sop.fatigue_validation',
  56. 'sop_hydraulic_validation': 'app_ontology.app_ontology_guanlan.sop.hydraulic_validation',
  57. 'sop_icing_validation': 'app_ontology.app_ontology_guanlan.sop.icing_validation',
  58. 'sop_pitch_validation': 'app_ontology.app_ontology_guanlan.sop.pitch_validation',
  59. 'sop_reactive_validation': 'app_ontology.app_ontology_guanlan.sop.reactive_validation',
  60. 'sop_sensor_validation': 'app_ontology.app_ontology_guanlan.sop.sensor_validation',
  61. 'sop_thermreg_validation': 'app_ontology.app_ontology_guanlan.sop.thermreg_validation',
  62. 'sop_yaw_validation': 'app_ontology.app_ontology_guanlan.sop.yaw_validation',
  63. 'sop_validate_pair': 'app_ontology.app_ontology_guanlan.sop.validate_pair',
  64. 'sop_stat_clean': 'app_ontology.app_ontology_guanlan.sop.stat_clean',
  65. 'sop_derive10min': 'app_ontology.app_ontology_guanlan.sop.derive10min',
  66. 'sop_farm_paths': 'app_ontology.app_ontology_guanlan.sop.farm_paths',
  67. 'sop_analysis_lock': 'app_ontology.app_ontology_guanlan.sop.analysis_lock',
  68. 'sop_schedule': 'app_ontology.app_ontology_guanlan.sop.schedule',
  69. 'sop_wind_coupling': 'app_ontology.app_ontology_guanlan.sop.wind_coupling',
  70. 'sop_xlsx_read': 'app_ontology.app_ontology_guanlan.sop.xlsx_read',
  71. }
  72. __all__ = list(_TARGETS)
  73. def __getattr__(name: str):
  74. target = _TARGETS.get(name)
  75. if target is None:
  76. raise AttributeError(
  77. f'{__name__} 未公开 {name!r};公开面见 __all__ —— 模块间调用只许走 api.py'
  78. )
  79. mod = importlib.import_module(target)
  80. globals()[name] = mod
  81. return mod