refac/fix: feedback leaderboard

This commit is contained in:
Timothy Jaeryang Baek
2026-01-09 18:24:09 +04:00
parent 3a57233dd4
commit 10838b3654
6 changed files with 425 additions and 526 deletions
+17
View File
@@ -68,6 +68,13 @@ class FeedbackIdResponse(BaseModel):
updated_at: int
class LeaderboardFeedbackData(BaseModel):
"""Minimal feedback data for leaderboard computation (excludes snapshot/meta)."""
id: str
data: Optional[dict] = None
class RatingData(BaseModel):
rating: Optional[str | int] = None
model_id: Optional[str] = None
@@ -271,6 +278,16 @@ class FeedbackTable:
.all()
]
def get_feedbacks_for_leaderboard(
self, db: Optional[Session] = None
) -> list[LeaderboardFeedbackData]:
"""Fetch only id and data for leaderboard computation (excludes snapshot/meta)."""
with get_db_context(db) as db:
return [
LeaderboardFeedbackData(id=row.id, data=row.data)
for row in db.query(Feedback.id, Feedback.data).all()
]
def get_feedbacks_by_type(
self, type: str, db: Optional[Session] = None
) -> list[FeedbackModel]: