Spaces:
Sleeping
Sleeping
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() |