""" 农村低压配电网电压异常检测 - Gradio 交互式演示 Rural Low-Voltage Distribution Network Voltage Anomaly Detection Demo 用于论文答辩演示,展示 TimesNet 周期建模原理、VoltageTimesNet 创新点、多模型性能对比 HuggingFace Spaces 版本 """ # ── Monkey-patch: 修复 gradio_client 处理 additionalProperties: true 的 bug ── # gradio_client/utils.py 中 _json_schema_to_python_type 无法处理布尔值 schema, # 当 JSON Schema 包含 "additionalProperties": true 时会触发 # TypeError: argument of type 'bool' is not iterable import gradio_client.utils as _gc_utils _original_json_schema_to_python_type = _gc_utils._json_schema_to_python_type def _patched_json_schema_to_python_type(schema, defs=None): # 处理布尔值 schema (JSON Schema 规范允许 true/false 作为 schema) if isinstance(schema, bool): return "Any" if schema else "Never" return _original_json_schema_to_python_type(schema, defs) _gc_utils._json_schema_to_python_type = _patched_json_schema_to_python_type # ── End monkey-patch ── import gradio as gr import sys from pathlib import Path # 添加项目路径 (HuggingFace Spaces 兼容) DEMO_DIR = Path(__file__).parent sys.path.insert(0, str(DEMO_DIR)) # 导入标签页 from tabs.tab1_principle import create_principle_tab from tabs.tab2_innovation import create_innovation_tab from tabs.tab3_arena import create_arena_tab from tabs.tab4_detection import create_detection_tab from tabs.tab5_architecture import create_architecture_tab # 导入配置 from config import GRADIO_THEME, THESIS_COLORS def create_header(): """创建页面头部""" return gr.Markdown( """ # ⚡ 农村低压配电网电压异常检测系统 **基于 TimesNet 的时间序列异常检测方法研究与应用** 本演示系统用于论文答辩,展示研究成果和模型性能。 --- """ ) def create_footer(): """创建页面底部""" return gr.Markdown( """ --- ### 📚 系统说明 | 标签页 | 功能 | 说明 | |--------|------|------| | 原理演示 | FFT 周期发现 | 展示 TimesNet 核心算法原理 | | 创新对比 | 模型改进 | VoltageTimesNet 与 TimesNet 的差异对比 | | 模型竞技场 | 性能对比 | 6 个模型的多维度性能对比 | | 模型结构 | 架构展示 | 6 个模型的网络结构图和详细说明 | | 自定义检测 | 实时推理 | 上传 CSV 进行异常检测 | **技术栈**: PyTorch + Gradio + Plotly **模型**: VoltageTimesNet_v2 (最优) | VoltageTimesNet | TimesNet | TPATimesNet | MTSTimesNet | DLinear ---