diff --git a/src/sentry/feedback/endpoints/organization_feedback_categories.py b/src/sentry/feedback/endpoints/organization_feedback_categories.py index c0f4e49a26fd76..314f37d4780038 100644 --- a/src/sentry/feedback/endpoints/organization_feedback_categories.py +++ b/src/sentry/feedback/endpoints/organization_feedback_categories.py @@ -219,7 +219,6 @@ def get(self, request: Request, organization: Organization) -> Response: timeout=SEER_TIMEOUT_S, retries=SEER_RETRIES, ) - response_data = response.json() except Exception: logger.exception("Seer failed to generate user feedback label groups") return Response( @@ -233,7 +232,7 @@ def get(self, request: Request, organization: Organization) -> Response: return Response( {"detail": "Failed to generate user feedback label groups"}, status=500 ) - label_groups = response_data["data"] + label_groups = response.json()["data"] else: # If there are less than THRESHOLD_TO_GET_ASSOCIATED_LABELS feedbacks, we don't ask for associated labels # The more feedbacks there are, the LLM does a better job of generating associated labels since it has more context diff --git a/src/sentry/feedback/usecases/label_generation.py b/src/sentry/feedback/usecases/label_generation.py index bb718106251049..050106d156b686 100644 --- a/src/sentry/feedback/usecases/label_generation.py +++ b/src/sentry/feedback/usecases/label_generation.py @@ -46,7 +46,6 @@ def generate_labels(feedback_message: str, organization_id: int) -> list[str]: timeout=SEER_TIMEOUT_S, retries=SEER_RETRIES, ) - response_data = response.json() except Exception: logger.exception("Seer failed to generate user feedback labels") raise @@ -58,7 +57,5 @@ def generate_labels(feedback_message: str, organization_id: int) -> list[str]: ) raise Exception("Seer returned non-200 response") - labels = response_data["data"]["labels"] - # Guaranteed to be a list of strings (validated in Seer) - return labels + return response.json()["data"]["labels"] diff --git a/src/sentry/feedback/usecases/spam_detection.py b/src/sentry/feedback/usecases/spam_detection.py index 200506cd3d132d..53adb33131ccae 100644 --- a/src/sentry/feedback/usecases/spam_detection.py +++ b/src/sentry/feedback/usecases/spam_detection.py @@ -35,7 +35,6 @@ def is_spam_seer(message: str, organization_id: int) -> bool | None: timeout=SEER_TIMEOUT_S, retries=SEER_RETRIES, ) - response_data = response.json() except Exception: logger.exception("Seer failed to check if message is spam") return None @@ -47,6 +46,7 @@ def is_spam_seer(message: str, organization_id: int) -> bool | None: ) return None + response_data = response.json() if ( not isinstance(response_data, dict) or "is_spam" not in response_data diff --git a/src/sentry/feedback/usecases/title_generation.py b/src/sentry/feedback/usecases/title_generation.py index dbcb5b1f4da389..9ba0b2cf9d14bd 100644 --- a/src/sentry/feedback/usecases/title_generation.py +++ b/src/sentry/feedback/usecases/title_generation.py @@ -77,7 +77,6 @@ def get_feedback_title_from_seer(feedback_message: str, organization_id: int) -> timeout=SEER_TIMEOUT_S, retries=SEER_RETRIES, ) - response_data = response.json() except Exception: return None @@ -93,7 +92,7 @@ def get_feedback_title_from_seer(feedback_message: str, organization_id: int) -> return None try: - return response_data["title"].strip() or None + return response.json()["title"].strip() or None except Exception: return None