Spaces:
Sleeping
Sleeping
| import csv | |
| import os | |
| from datetime import datetime | |
| BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
| # Usa volume persistente do Fly.io montado em /data | |
| # Garante que feedback não seja perdido após deploy/restart | |
| LOGS_DIR = os.getenv("LOGS_DIR", "/data/logs") | |
| NEGATIVE_MEMORY_FILE = os.path.join(LOGS_DIR, "negative_memory.csv") | |
| def garantir_pasta_logs(): | |
| os.makedirs(LOGS_DIR, exist_ok=True) | |
| def inicializar_memoria_negativa(): | |
| garantir_pasta_logs() | |
| if not os.path.exists(NEGATIVE_MEMORY_FILE): | |
| with open(NEGATIVE_MEMORY_FILE, "w", newline="", encoding="utf-8") as f: | |
| writer = csv.writer(f) | |
| writer.writerow([ | |
| "timestamp", | |
| "query", | |
| "product_id", | |
| "product_name", | |
| "rating", | |
| "motivo" | |
| ]) | |
| def salvar_memoria_negativa(query, product_id, product_name, rating, motivo="feedback_negativo"): | |
| inicializar_memoria_negativa() | |
| with open(NEGATIVE_MEMORY_FILE, "a", newline="", encoding="utf-8") as f: | |
| writer = csv.writer(f) | |
| writer.writerow([ | |
| datetime.now().isoformat(), | |
| query, | |
| product_id, | |
| product_name, | |
| rating, | |
| motivo | |
| ]) | |
| return {"status": "ok"} | |
| def caminho_memoria_negativa(): | |
| return NEGATIVE_MEMORY_FILE | |