Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 7 additions & 16 deletions engine/preprocessing.py
Original file line number Diff line number Diff line change
@@ -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
5 changes: 2 additions & 3 deletions engine/rag_engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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 = []
Expand Down Expand Up @@ -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)
Expand Down