final_project / app /logger.py
Ana2012
Deploy backend FastAPI para HF Spaces
614aa6b
import csv
import os
from datetime import datetime
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
LOGS_DIR = os.path.join(BASE_DIR, "logs")
SEARCH_LOG_FILE = os.path.join(LOGS_DIR, "search_logs.csv")
def garantir_pasta_logs():
os.makedirs(LOGS_DIR, exist_ok=True)
def inicializar_arquivo_logs():
garantir_pasta_logs()
if not os.path.exists(SEARCH_LOG_FILE):
with open(SEARCH_LOG_FILE, "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow([
"timestamp",
"query",
"categoria_inferida",
"answer",
"top1_id",
"top1_name",
"top2_id",
"top2_name",
"top3_id",
"top3_name"
])
def salvar_log_busca(resultado):
inicializar_arquivo_logs()
produtos = resultado.get("products", [])
def get_prod(i, campo):
if i < len(produtos):
return produtos[i].get(campo, "")
return ""
with open(SEARCH_LOG_FILE, "a", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow([
datetime.now().isoformat(),
resultado.get("query", ""),
resultado.get("categoria_inferida", ""),
resultado.get("answer", ""),
get_prod(0, "product_id"),
get_prod(0, "product_name"),
get_prod(1, "product_id"),
get_prod(1, "product_name"),
get_prod(2, "product_id"),
get_prod(2, "product_name"),
])
return {"status": "ok"}