book-rec-with-LLMs / scripts /benchmark /benchmark_temporal.py
ymlin105's picture
chore: remove obsolete files and update project structure
6ad997d
import pandas as pd
from src.core.rag.vector_db import VectorDB
def run_benchmark():
print("🚀 Starting Temporal Dynamics Benchmark...")
db = VectorDB()
# We use a query where 'newness' matters
query = "latest advancements in technology and science"
print(f"\nQuery: '{query}'")
# 1. Standard Search
print("\n--- Standard Search (No Temporal) ---")
st_docs = db.hybrid_search(query, k=5, rerank=True, temporal=False)
for d in st_docs:
# Get Year
isbn = d.metadata.get("isbn") or d.metadata.get("isbn13")
if not isbn and "ISBN:" in d.page_content:
isbn = d.page_content.split("ISBN:")[1].strip().split()[0]
year = db.pub_years.get(str(isbn), "Unknown")
score = d.metadata.get("relevance_score", 0.0)
# Parse title
title = d.page_content.split('\n')[0].replace("Title: ", "")[:40]
print(f"[{year}] {title}... (Score: {score:.4f})")
# 2. Temporal Search
print("\n--- Temporal Search (Recent Boost) ---")
tm_docs = db.hybrid_search(query, k=5, rerank=True, temporal=True)
for d in tm_docs:
isbn = d.metadata.get("isbn") or d.metadata.get("isbn13")
if not isbn and "ISBN:" in d.page_content:
isbn = d.page_content.split("ISBN:")[1].strip().split()[0]
year = db.pub_years.get(str(isbn), "Unknown")
# In temporal mode, score is boosted
score = d.metadata.get("relevance_score", 0.0)
title = d.page_content.split('\n')[0].replace("Title: ", "")[:40]
print(f"[{year}] {title}... (Score: {score:.4f})")
if __name__ == "__main__":
run_benchmark()