From a272ec26c58ecf5fe88d43d2eab00a3e99babc51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20K=C3=B6pf?= Date: Wed, 8 Feb 2023 20:13:49 +0100 Subject: [PATCH] exclude banned users from leaderboard --- backend/oasst_backend/user_stats_repository.py | 8 ++++---- .../backend-development/run-local-no-limit.sh | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) create mode 100755 scripts/backend-development/run-local-no-limit.sh diff --git a/backend/oasst_backend/user_stats_repository.py b/backend/oasst_backend/user_stats_repository.py index b5646d5aad..c72366baee 100644 --- a/backend/oasst_backend/user_stats_repository.py +++ b/backend/oasst_backend/user_stats_repository.py @@ -102,7 +102,7 @@ def get_leaderboard( UserStats, ) .join(UserStats, User.id == UserStats.user_id) - .filter(UserStats.time_frame == time_frame.value, User.show_on_leaderboard) + .filter(UserStats.time_frame == time_frame.value, User.show_on_leaderboard, User.enabled) .order_by(UserStats.rank) .limit(limit) ) @@ -121,7 +121,7 @@ def get_leaderboard_user_window( window_size: int = 5, ) -> LeaderboardStats | None: # no window for users who don't show themselves - if not user.show_on_leaderboard: + if not user.show_on_leaderboard or not user.enabled: return None qry = self.session.query(UserStats).filter(UserStats.user_id == user.id, UserStats.time_frame == time_frame) @@ -144,7 +144,7 @@ def get_leaderboard_user_window( UserStats, ) .join(UserStats, User.id == UserStats.user_id) - .filter(UserStats.time_frame == time_frame.value, User.show_on_leaderboard) + .filter(UserStats.time_frame == time_frame.value, User.show_on_leaderboard, User.enabled) .where(UserStats.rank >= min_rank, UserStats.rank <= max_rank) .order_by(UserStats.rank) ) @@ -547,7 +547,7 @@ def update_leader_ranks(self, time_frame: UserStatsTimeFrame = None): ORDER BY leader_score DESC, user_id ) AS "rank", user_id, time_frame FROM user_stats us2 - INNER JOIN "user" u ON us2.user_id = u.id AND u.show_on_leaderboard + INNER JOIN "user" u ON us2.user_id = u.id AND u.show_on_leaderboard AND u.enabled WHERE (:time_frame IS NULL OR time_frame = :time_frame)) AS r WHERE us.user_id = r.user_id diff --git a/scripts/backend-development/run-local-no-limit.sh b/scripts/backend-development/run-local-no-limit.sh new file mode 100755 index 0000000000..9409926c4e --- /dev/null +++ b/scripts/backend-development/run-local-no-limit.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) + +# switch to backend directory +pushd "$parent_path/../../backend" + +export DEBUG_USE_SEED_DATA=True +export DEBUG_SKIP_TOXICITY_CALCULATION=True +export DEBUG_ALLOW_SELF_LABELING=True +export DEBUG_ALLOW_SELF_RANKING=True +export DEBUG_ALLOW_DUPLICATE_TASKS=True +export DEBUG_SKIP_EMBEDDING_COMPUTATION=True +export RATE_LIMIT=0 +export DEBUG_USE_SEED_DATA_PATH=$parent_path/../../backend/test_data/generic/test_generic_data.json + +uvicorn main:app --reload --port 8080 --host 0.0.0.0 + +popd