|
|
@@ -13,21 +13,6 @@ from flask import Flask
|
|
|
|
|
|
# 初始化 Flask 应用
|
|
|
app = Flask(__name__)
|
|
|
-# 配置 CORS 中间件 - 允许跨域请求
|
|
|
-app.add_middleware(
|
|
|
- CORSMiddleware,
|
|
|
- allow_origins=[
|
|
|
- "http://47.105.23.25: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:端口 即可触发)
|
|
|
@@ -35,69 +20,7 @@ for router in all_routers:
|
|
|
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(可修改)
|