in src/frontends/streamlit_adk/frontend/utils/stream_handler.py [0:0]
def log_feedback(self, feedback_dict: dict[str, Any], invocation_id: str) -> None:
"""Log user feedback for a specific run."""
score = feedback_dict["score"]
if score == "😞":
score = 0.0
elif score == "🙁":
score = 0.25
elif score == "😐":
score = 0.5
elif score == "🙂":
score = 0.75
elif score == "😀":
score = 1.0
feedback_dict["score"] = score
feedback_dict["invocation_id"] = invocation_id
feedback_dict["log_type"] = "feedback"
# Ensure text field is not None
if feedback_dict.get("text") is None:
feedback_dict["text"] = ""
feedback_dict.pop("type")
url = urljoin(self.url, "feedback")
headers = {
"Content-Type": "application/json",
}
if self.url:
url = urljoin(self.url, "feedback")
headers = {
"Content-Type": "application/json",
}
if self.authenticate_request:
headers["Authorization"] = f"Bearer {self.id_token}"
requests.post(
url, data=json.dumps(feedback_dict), headers=headers, timeout=10
)
elif self.agent is not None:
self.agent.register_feedback(feedback=feedback_dict)
else:
raise ValueError("No agent or URL configured for feedback logging")