import json import os from datetime import datetime from typing import List, Any from config import ACTIVE_LEARNING_LOG def log_for_retraining(query: str, confidence: float, results: List[Any]): """ Logs queries that have low confidence or zero results for active learning (retraining). Logic: - If confidence < 0.6 OR len(results) == 0: Append to logs/active_learning_queue.jsonl """ should_log = False reason = [] if confidence < 0.6: should_log = True reason.append("low_confidence") if len(results) == 0: should_log = True reason.append("zero_results") if should_log: entry = { "timestamp": datetime.now().isoformat(), "query": query, "confidence": float(confidence), "result_count": len(results), "reasons": reason } try: with open(ACTIVE_LEARNING_LOG, "a") as f: f.write(json.dumps(entry) + "\n") except Exception as e: print(f"Error logging for active learning: {e}")