ChatAmoOfertas / app /feedback.py
Ana2012's picture
Upload folder using huggingface_hub
4402d23 verified
Raw
History Blame Contribute Delete
1.97 kB
import csv
import os
from datetime import datetime
from .memory import salvar_memoria_negativa
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
LOGS_DIR = os.path.join(BASE_DIR, "logs")
FEEDBACK_FILE = os.path.join(LOGS_DIR, "feedback.csv")
def garantir_pasta_logs():
os.makedirs(LOGS_DIR, exist_ok=True)
def inicializar_arquivo_feedback():
garantir_pasta_logs()
if not os.path.exists(FEEDBACK_FILE):
with open(FEEDBACK_FILE, mode="w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow([
"timestamp",
"query",
"product_id",
"product_name",
"rating",
"is_helpful"
])
def salvar_feedback(query, product_id, product_name, rating=None, is_helpful=None):
inicializar_arquivo_feedback()
with open(FEEDBACK_FILE, mode="a", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow([
datetime.now().isoformat(),
query,
product_id,
product_name,
rating if rating is not None else "",
is_helpful if is_helpful is not None else ""
])
# Regra simples para criar memória negativa
if rating is not None and rating <= 2:
salvar_memoria_negativa(
query=query,
product_id=product_id,
product_name=product_name,
rating=rating,
motivo="rating_baixo"
)
if is_helpful is False:
salvar_memoria_negativa(
query=query,
product_id=product_id,
product_name=product_name,
rating=rating if rating is not None else "",
motivo="nao_foi_util"
)
return {
"status": "ok",
"message": "Feedback salvo com sucesso."
}