| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #!/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.95.102.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)
|