From 1f930a5f8f10e687e690490da9388d4f4c7b6c56 Mon Sep 17 00:00:00 2001
From: Siraj R Aizlewood <siraj@aurelio.ai>
Date: Sun, 29 Sep 2024 22:19:05 +0400
Subject: [PATCH] Update layer.py

Following a request to be able to update route thresholds directly without having to fit.
---
 semantic_router/layer.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/semantic_router/layer.py b/semantic_router/layer.py
index bed1ef28..6c9950ff 100644
--- a/semantic_router/layer.py
+++ b/semantic_router/layer.py
@@ -832,6 +832,22 @@ class RouteLayer:
 
     def _get_route_names(self) -> List[str]:
         return [route.name for route in self.routes]
+    
+    def update_route_thresholds(self, threshold_dict: Dict[str, float]):
+        """
+        Update thresholds for specified routes.
+
+        :param threshold_dict: A dictionary mapping route names to new threshold values.
+        :type threshold_dict: Dict[str, float]
+        """
+        for route_name, new_threshold in threshold_dict.items():
+            route = self.get(route_name)
+            if route:
+                old_threshold = route.score_threshold
+                route.score_threshold = new_threshold
+                logger.info(f"Updated threshold for route '{route_name}' from {old_threshold} to {new_threshold}")
+            else:
+                logger.warning(f"Route '{route_name}' not found. Skipping threshold update.")
 
 
 def threshold_random_search(
-- 
GitLab