diff --git a/engine/preprocessing.py b/engine/preprocessing.py index 4234beb..19d4d4b 100644 --- a/engine/preprocessing.py +++ b/engine/preprocessing.py @@ -1,20 +1,11 @@ -import re - -def normalize_query(query: str) -> str: +def preprocess_query(query: str) -> str: """ - Normalize user query before retrieval: - - Lowercase conversion - - Remove unnecessary punctuation - - Remove extra whitespace + Basic query preprocessing: + - Lowercases text + - Strips extra whitespace """ + if not query: + return "" - # Convert to lowercase - query = query.lower() - - # Remove punctuation (keep alphanumeric and spaces) - query = re.sub(r"[^\w\s]", "", query) - - # Remove extra whitespace - query = re.sub(r"\s+", " ", query).strip() - + query = query.lower().strip() return query \ No newline at end of file diff --git a/engine/rag_engine.py b/engine/rag_engine.py index 2e6caf5..dbd099e 100644 --- a/engine/rag_engine.py +++ b/engine/rag_engine.py @@ -14,6 +14,7 @@ import streamlit as st import numpy as np import logging +from engine.preprocessing import preprocess_query logger = logging.getLogger(__name__) try: @@ -202,9 +203,6 @@ def _emb_search(query: str, top_k: int = 3): try: model = load_embedding_model() - # --- USE CACHED MODEL HERE --- - model = load_embedding_model() - qvec = model.encode([query], convert_to_numpy=True)[0] scores = [] @@ -262,6 +260,7 @@ def _keyword_search(query: str, top_k: int = 3): return results[:top_k] def search_pdfs(query: str, top_k: int = 3): + query = preprocess_query(query) """ Hybrid Retrieval: - Runs vector search (if available)