Skip to content

User thumbs-down

All other metrics (eval, judge-LLM, latency) are surrogates. A real thumbs-down from a live human is gold. Don’t wait for a weekly digest — send a push immediately.

@app.post("/api/feedback")
def feedback(req):
if req.thumb == "down":
push(
"👎 Negative feedback",
f"User: {req.user_id}\n"
f"Q: {req.question[:200]}\n"
f"A: {req.answer[:200]}\n"
f"Comment: {req.comment[:200]}\n\n"
f"Trace: https://your-app/admin/sessions/{req.session_id}",
priority=7,
)
db.save_feedback(req)
def push(t, m, p):
requests.post(f"{os.environ['NOTIFLY_URL']}/message",
params={"token": os.environ["NOTIFLY_TOKEN"]},
json={"title": t, "message": m, "priority": p}, timeout=5)

In a high-traffic project there may be many thumbs-downs — add a simple rate limit (1 alert every 5 minutes + daily digest of the count) to avoid drowning the channel. In a small project — don’t, each one is valuable.