#!/usr/bin/env python # -*- coding: UTF-8 -*- ''' @Project :fsatest @File :main.py @Author :zhanghui @Function :主要测试自动化部署 @Date :2025/12/2 17:03 ''' from flask import Flask # 初始化 Flask 应用 app = Flask(__name__) # 配置 CORS 中间件 - 允许跨域请求 app.add_middleware( CORSMiddleware, allow_origins=[ "http://localhost:5173", # Vue 开发服务器 "http://127.0.0.1:5173", # Vue 开发服务器(另一个地址) "http://47.22.23.25:5173", # 局域网 Vue 地址 "*", # 允许所有来源(生产环境建议限制具体域名) ], allow_credentials=True, allow_methods=["*"], # 允许所有 HTTP 方法 (GET, POST, PUT, DELETE 等) allow_headers=["*"], # 允许所有请求头 ) # 批量注册所有路由 for router in all_routers: app.include_router(router) # 定义根路径的 GET 接口(访问 IP:端口 即可触发) @app.route('/', methods=['GET']) def test_env(): # 直接返回响应内容 return "进入测试环境v1.0.0", 200 # 健康检查接口 @app.get("/health", summary="服务健康检查") async def health_check(): return {"status": "healthy", "service": "multi_domain_intent_recognition"} # ========== 缓存管理 API ========== @app.post("/api/v1/cache/clear") async def clear_all_caches(): """ 清除所有缓存(规则更新后调用) 功能: - 清除Layer1规则匹配缓存 - 清除Layer4 LLM缓存 - 清除上下文融合缓存 用途: - 开发/测试阶段:修改规则后调用此接口 - 确保新规则立即生效 Returns: {"status": "success", "message": "所有缓存已清除"} """ try: logger = logging.getLogger(__name__) # 获取各个组件 multi_layer_classifier = getattr(app.state, 'multi_layer_classifier', None) fuser = getattr(app.state, 'fuser', None) # 清除Layer1规则匹配缓存 if multi_layer_classifier and hasattr(multi_layer_classifier, 'layer1'): if hasattr(multi_layer_classifier.layer1, 'matcher'): if hasattr(multi_layer_classifier.layer1.matcher, 'cache'): multi_layer_classifier.layer1.matcher.cache.clear() logger.info("[API] Layer1规则匹配缓存已清除") # 清除Layer4 LLM缓存 if multi_layer_classifier and hasattr(multi_layer_classifier, 'layer4'): if hasattr(multi_layer_classifier.layer4, 'clear_cache'): multi_layer_classifier.layer4.clear_cache() logger.info("[API] Layer4 LLM缓存已清除") # 清除上下文融合缓存 if fuser and hasattr(fuser, 'clear_cache'): fuser.clear_cache() logger.info("[API] 上下文融合缓存已清除") return { "status": "success", "code": 200, "message": "所有缓存已清除", "timestamp": time.time() } except Exception as e: logger.error(f"[API] 缓存清除失败: {str(e)}") return { "status": "error", "message": f"缓存清除失败: {str(e)}" } if __name__ == "__main__": # 启动服务:绑定所有网卡(0.0.0.0),端口 5000(可修改) app.run(host='0.0.0.0', port=5500, debug=False)