From 05507ff375c17dce0d440500d681a9b49a1a069e Mon Sep 17 00:00:00 2001
From: Ismail Ashraq <issey1455@gmail.com>
Date: Tue, 9 Jan 2024 18:28:29 +0500
Subject: [PATCH] added option to set sparse_encoder

---
 semantic_router/hybrid_layer.py | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/semantic_router/hybrid_layer.py b/semantic_router/hybrid_layer.py
index cd9f7ccb..5273f531 100644
--- a/semantic_router/hybrid_layer.py
+++ b/semantic_router/hybrid_layer.py
@@ -16,11 +16,21 @@ class HybridRouteLayer:
     score_threshold: float
 
     def __init__(
-        self, encoder: BaseEncoder, routes: list[Route] = [], alpha: float = 0.3
+        self,
+        encoder: BaseEncoder,
+        sparse_encoder: BM25Encoder | None = None,
+        routes: list[Route] = [],
+        alpha: float = 0.3,
     ):
         self.encoder = encoder
         self.score_threshold = self.encoder.score_threshold
-        self.sparse_encoder = BM25Encoder()
+
+        if sparse_encoder is None:
+            logger.warning("No sparse_encoder provided. Using default BM25Encoder.")
+            self.sparse_encoder = BM25Encoder()
+        else:
+            self.sparse_encoder = sparse_encoder
+
         self.alpha = alpha
         # if routes list has been passed, we initialize index now
         if routes:
-- 
GitLab