ibfs_demo / utils.py
MarginallyEffective's picture
Upload folder using huggingface_hub
55b0a04 verified
import os
import json
import uuid
from datetime import datetime
from pathlib import Path
from dotenv import load_dotenv
from typing import Dict, Any, List, Optional
# Load environment variables
load_dotenv()
# Create directory for saving results if it doesn't exist
def ensure_directories():
"""Create necessary directories if they don't exist."""
os.makedirs("ibfs_results", exist_ok=True)
def generate_user_id() -> str:
"""Generate a unique user ID."""
return str(uuid.uuid4())
def save_results(user_id: str, query: str, final_answer: str, method: str = "ibfs",
strategy_path: Optional[List[str]] = None) -> str:
"""
Save the results to a file.
Args:
user_id: Unique identifier for the user
query: Original query
final_answer: Final answer generated
method: Method used (ibfs or zero_shot)
strategy_path: Path of selected strategies (for IBFS)
Returns:
Filename where results were saved
"""
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
result = {
"user_id": user_id,
"timestamp": timestamp,
"method": method,
"query": query,
"final_answer": final_answer
}
# Add strategy path for IBFS method
if method == "ibfs" and strategy_path:
result["strategy_path"] = strategy_path
filename = f"ibfs_results/{user_id}_{method}_{timestamp}.json"
with open(filename, "w") as f:
json.dump(result, f, indent=2)
return filename
# Initialize directories when module is imported
ensure_directories()