Skip to content

Commit 4d7be8e

Browse files
committed
wait for pending message reviews before entering ranking state
1 parent 39a107e commit 4d7be8e

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

backend/oasst_backend/tree_manager.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,9 @@ class TaskRole(Enum):
4141

4242
class ActiveTreeSizeRow(pydantic.BaseModel):
4343
message_tree_id: UUID
44-
tree_size: int
4544
goal_tree_size: int
45+
tree_size: int
46+
awaiting_review: Optional[int]
4647

4748
@property
4849
def remaining_messages(self) -> int:
@@ -625,8 +626,8 @@ def check_condition_for_ranking_state(self, message_tree_id: UUID) -> bool:
625626

626627
# check if desired tree size has been reached and all nodes have been reviewed
627628
tree_size = self.query_tree_size(message_tree_id)
628-
if tree_size.remaining_messages > 0:
629-
logger.debug(f"False {tree_size.remaining_messages=}")
629+
if tree_size.remaining_messages > 0 or tree_size.awaiting_review > 0:
630+
logger.debug(f"False {tree_size.remaining_messages=}, {tree_size.awaiting_review=}")
630631
return False
631632

632633
self._enter_state(mts, message_tree_state.State.RANKING)
@@ -884,18 +885,21 @@ def query_extendible_trees(self, lang: str) -> list[ActiveTreeSizeRow]:
884885
def query_tree_size(self, message_tree_id: UUID) -> ActiveTreeSizeRow:
885886
"""Returns the number of reviewed not deleted messages in the message tree."""
886887

888+
required_reviews = settings.tree_manager.num_reviews_reply
887889
qry = (
888890
self.db.query(
889891
MessageTreeState.message_tree_id.label("message_tree_id"),
890892
MessageTreeState.goal_tree_size.label("goal_tree_size"),
891-
func.count(Message.id).label("tree_size"),
893+
func.count(Message.id).filter(Message.review_result).label("tree_size"),
894+
func.count(Message.id)
895+
.filter(not_(Message.review_result), Message.review_count < required_reviews)
896+
.label("awaiting_review"),
892897
)
893898
.select_from(MessageTreeState)
894899
.outerjoin(Message, MessageTreeState.message_tree_id == Message.message_tree_id)
895900
.filter(
896901
MessageTreeState.active,
897902
not_(Message.deleted),
898-
Message.review_result,
899903
MessageTreeState.message_tree_id == message_tree_id,
900904
)
901905
.group_by(MessageTreeState.message_tree_id, MessageTreeState.goal_tree_size)
@@ -1207,6 +1211,7 @@ def purge_user(self, user_id: UUID, ban: bool = True) -> None:
12071211
sql_purge_user = """
12081212
DELETE FROM journal WHERE user_id = :user_id;
12091213
DELETE FROM message_reaction WHERE user_id = :user_id;
1214+
DELETE FROM message_emoji WHERE user_id = :user_id;
12101215
DELETE FROM task WHERE user_id = :user_id;
12111216
DELETE FROM message WHERE user_id = :user_id;
12121217
DELETE FROM user_stats WHERE user_id = :user_id;

oasst-shared/oasst_shared/schemas/protocol.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,9 @@ class EmojiCode(str, enum.Enum):
440440
thumbs_down = "-1" # 👎
441441
red_flag = "red_flag" # 🚩
442442
hundred = "100" # 💯
443-
rofl = "rofl" # 🤣"
443+
rofl = "rofl" # 🤣
444+
clap = "clap" # 👏
445+
diamond = "diamond" # 💎
444446
heart_eyes = "heart_eyes" # 😍
445447
disappointed = "disappointed" # 😞
446448
poop = "poop" # 💩

0 commit comments

Comments
 (0)