| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- from pathlib import Path
- import config
- from extensions import GatewayBinding, ResultBinding
- from extensions.main_fan.schemas import MainFanInput, MainFanResult
- from extensions.main_fan.exploration_tools import (prepare_main_fan_task, fetch_main_fan_data,
- query_fan_timeseries, query_fan_sensor_realtime, query_fan_equipment_realtime,
- query_fan_equipment_timeseries, run_python, submit_main_fan_report)
- from extensions.main_fan.service import validate_result
- from extensions.main_fan.batch_tools import (submit_main_fan_mine_plan, query_main_fan_history,
- fetch_main_fan_reports, archive_main_fan_report)
- def enabled():
- return config.get_bool("MAIN_FAN_ENABLED", True)
- def validate_config():
- from extensions.main_fan.targets import load_catalog
- load_catalog()
- from extensions.main_fan.pipeline import load_rules
- load_rules()
- def setup(registry):
- from extensions.main_fan.middleware import MainFanSandboxMiddleware
- if config.get_bool('MAIN_FAN_LOCAL_BATCH_ENABLED', False):
- from extensions.main_fan.batch_service import service
- registry.register_service('main_fan_batches', service, requires=('shaanxi_gateway',))
- registry.register_business_agent(
- name="main_fan", display_name="矿井主通风机研判智能体",
- description="联合分析主通风机与备用风机的报告参数、性能测定数据和实际切换前后风量风压,形成一致性研判报告。",
- prompt=Path(__file__).with_name("prompt.md").read_text(encoding="utf-8"),
- tools=[prepare_main_fan_task, fetch_main_fan_data, query_fan_sensor_realtime, query_fan_timeseries,
- query_fan_equipment_realtime, query_fan_equipment_timeseries, run_python, submit_main_fan_report,
- submit_main_fan_mine_plan, query_main_fan_history, fetch_main_fan_reports, archive_main_fan_report],
- input_schema=MainFanInput,
- result_schema=MainFanResult, max_concurrency=config.get_int("MAIN_FAN_MAX_CONCURRENCY", 1),
- result_validator=validate_result,
- skill_path='/skills/main-fan-equivalent-capability-assessment/SKILL.md',
- result_binding=ResultBinding(
- agent_code=config.get_str("MAIN_FAN_RESULT_AGENT_CODE", "main_fan_equivalence_agent"),
- agent_name=config.get_str("MAIN_FAN_RESULT_AGENT_NAME", "矿井主通风机同等能力研判"),
- ),
- gateway=GatewayBinding(
- agent_code=config.get_str("MAIN_FAN_AGENT_CODE", "main_fan_equivalence_agent"),
- check_type_code=config.get_str("MAIN_FAN_CHECK_TYPE_CODE", "main_fan_equivalence"),
- sensor_type_list=config.get_str("MAIN_FAN_SENSOR_TYPES"),
- topics=tuple(t.strip() for t in config.get_str("MAIN_FAN_TOPICS").split(",") if t.strip()),
- ),
- )
- registry.register_middleware('MainFanSandboxMiddleware', lambda services: MainFanSandboxMiddleware(),
- targets=['main_fan'])
|