main.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/usr/bin/env python
  2. # -*- coding: UTF-8 -*-
  3. '''
  4. @Project :fsatest
  5. @File :main.py
  6. @Author :zhanghui
  7. @Function :主要测试自动化部署
  8. @Date :2025/12/2 17:03
  9. '''
  10. from flask import Flask
  11. # 初始化 Flask 应用
  12. app = Flask(__name__)
  13. # 批量注册所有路由
  14. for router in all_routers:
  15. app.include_router(router)
  16. # 定义根路径的 GET 接口(访问 IP:端口 即可触发)
  17. @app.route('/', methods=['GET'])
  18. def test_env():
  19. # 直接返回响应内容
  20. return "进入测试环境v1.0.0", 200
  21. # 健康检查接口
  22. @app.get("/health", summary="服务健康检查")
  23. async def health_check():
  24. return {"status": "healthy", "service": "multi_domain_intent_recognition"}
  25. # ========== 缓存管理 API ==========
  26. @app.post("/api/v1/cache/clear")
  27. async def clear_all_caches():
  28. """
  29. 清除所有缓存(规则更新后调用)
  30. 功能:
  31. - 清除Layer1规则匹配缓存
  32. - 清除Layer4 LLM缓存
  33. - 清除上下文融合缓存
  34. 用途:
  35. - 开发/测试阶段:修改规则后调用此接口
  36. - 确保新规则立即生效
  37. Returns:
  38. {"status": "success", "message": "所有缓存已清除"}
  39. """
  40. try:
  41. logger = logging.getLogger(__name__)
  42. # 获取各个组件
  43. multi_layer_classifier = getattr(app.state, 'multi_layer_classifier', None)
  44. fuser = getattr(app.state, 'fuser', None)
  45. # 清除Layer1规则匹配缓存
  46. if multi_layer_classifier and hasattr(multi_layer_classifier, 'layer1'):
  47. if hasattr(multi_layer_classifier.layer1, 'matcher'):
  48. if hasattr(multi_layer_classifier.layer1.matcher, 'cache'):
  49. multi_layer_classifier.layer1.matcher.cache.clear()
  50. logger.info("[API] Layer1规则匹配缓存已清除")
  51. # 清除Layer4 LLM缓存
  52. if multi_layer_classifier and hasattr(multi_layer_classifier, 'layer4'):
  53. if hasattr(multi_layer_classifier.layer4, 'clear_cache'):
  54. multi_layer_classifier.layer4.clear_cache()
  55. logger.info("[API] Layer4 LLM缓存已清除")
  56. # 清除上下文融合缓存
  57. if fuser and hasattr(fuser, 'clear_cache'):
  58. fuser.clear_cache()
  59. logger.info("[API] 上下文融合缓存已清除")
  60. return {
  61. "status": "success",
  62. "message": "所有缓存已清除",
  63. "timestamp": time.time()
  64. }
  65. except Exception as e:
  66. logger.error(f"[API] 缓存清除失败: {str(e)}")
  67. return {
  68. "status": "error",
  69. "message": f"缓存清除失败: {str(e)}"
  70. }
  71. if __name__ == "__main__":
  72. # 启动服务:绑定所有网卡(0.0.0.0),端口 5000(可修改)
  73. app.run(host='0.0.0.0', port=5500, debug=False)