Spaces:
Sleeping
Sleeping
File size: 2,167 Bytes
90a7c8d 5e4fe38 90a7c8d 5e4fe38 90a7c8d 5e4fe38 614aa6b 90a7c8d 5e4fe38 90a7c8d 5e4fe38 90a7c8d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | import csv
import os
import tempfile
from datetime import datetime, timezone
from pathlib import Path
DEFAULT_LOGS_DIR = Path(os.getenv("LOGS_DIR", "/data/logs"))
FALLBACK_LOGS_DIR = Path(tempfile.gettempdir()) / "tcc2_agent" / "logs"
def _resolve_logs_dir():
preferred_dir = os.environ.get("LOGS_DIR", "").strip()
candidates = [Path(preferred_dir)] if preferred_dir else []
candidates.extend([DEFAULT_LOGS_DIR, FALLBACK_LOGS_DIR])
for directory in candidates:
try:
directory.mkdir(parents=True, exist_ok=True)
return directory
except OSError:
continue
raise OSError(
"Nao foi possivel criar um diretorio para armazenar a memoria negativa. "
"Defina LOGS_DIR para um caminho gravavel."
)
def caminho_memoria_negativa():
return str(_resolve_logs_dir() / "negative_memory.csv")
def inicializar_memoria_negativa():
memory_file = caminho_memoria_negativa()
if not os.path.exists(memory_file):
with open(memory_file, "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow([
"timestamp",
"search_id",
"rank",
"query",
"product_id",
"product_name",
"rating",
"motivo",
])
def salvar_memoria_negativa(
query,
product_id,
product_name,
rating,
motivo="feedback_negativo",
search_id=None,
rank=None,
):
inicializar_memoria_negativa()
memory_file = caminho_memoria_negativa()
row = [
datetime.now(timezone.utc).isoformat(),
search_id or "",
rank if rank is not None else "",
query or "",
product_id or "",
product_name or "",
rating if rating is not None else "",
motivo or "feedback_negativo",
]
try:
with open(memory_file, "a", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(row)
except Exception as e:
print("Erro ao salvar memoria negativa:", e)
return {"status": "ok"} |