ToxicTweet-Tagger / app /services /feedback.py
Subi003's picture
Upload folder using huggingface_hub
4c01182 verified
import sys
from datetime import datetime, timezone
from src.core.logger import logging
from src.core.exception import AppException
from src.app.monitoring.service_metrics import FEEDBACK_REQUEST_SUCCESS, USER_PREDICTION_FEEDBACK, FEEDBACK_REQUEST_FAILED
class FeedbackService:
def __init__(self, feedback_event_consumer):
self.event_consumer_worker = feedback_event_consumer
def submit_feedback(self, request_id, pred_label, feedback_label):
try:
feedback_record = {
"request_id": request_id,
"time_stamp": datetime.now(timezone.utc).isoformat(),
"predicted_label": pred_label,
"feedback_label": feedback_label
}
self.event_consumer_worker.add_event(feedback_record)
FEEDBACK_REQUEST_SUCCESS.inc()
if feedback_label == 1:
USER_PREDICTION_FEEDBACK.labels(feedback="correct").inc()
else:
USER_PREDICTION_FEEDBACK.labels(feedback="incorrect").inc()
return {
"status": "success",
"message": "Feedback recorded successfully",
}
except Exception as e:
logging.exception(f"Failed to submit feedback for request_id: {request_id} : {e}")
FEEDBACK_REQUEST_FAILED.inc()
raise AppException(e, sys)