|
@@ -31,6 +31,63 @@ async def health_check():
|
|
|
return {"status": "healthy", "service": "multi_domain_intent_recognition"}
|
|
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",
|
|
|
|
|
+ "message": "所有缓存已清除",
|
|
|
|
|
+ "timestamp": time.time()
|
|
|
|
|
+ }
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ logger.error(f"[API] 缓存清除失败: {str(e)}")
|
|
|
|
|
+ return {
|
|
|
|
|
+ "status": "error",
|
|
|
|
|
+ "message": f"缓存清除失败: {str(e)}"
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
if __name__ == "__main__":
|
|
if __name__ == "__main__":
|
|
|
# 启动服务:绑定所有网卡(0.0.0.0),端口 5000(可修改)
|
|
# 启动服务:绑定所有网卡(0.0.0.0),端口 5000(可修改)
|
|
|
app.run(host='0.0.0.0', port=5500, debug=False)
|
|
app.run(host='0.0.0.0', port=5500, debug=False)
|