mirror of
https://github.com/wassname/Open-Assistant.git
synced 2026-06-27 16:10:30 +08:00
Ignore up/down votes (emojis) for own messages (#1302)
* ignore up/down votes (emojis) for own messages * add 'user_is_author' bool porperty to protocol.ConversationMessage
This commit is contained in:
@@ -17,6 +17,7 @@ def prepare_message(m: Message) -> protocol.Message:
|
||||
created_date=m.created_date,
|
||||
emojis=m.emojis or {},
|
||||
user_emojis=m.user_emojis or [],
|
||||
user_is_author=m.user_is_author,
|
||||
review_result=m.review_result,
|
||||
review_count=m.review_count,
|
||||
)
|
||||
@@ -36,6 +37,7 @@ def prepare_conversation_message(message: Message) -> protocol.ConversationMessa
|
||||
is_assistant=(message.role == "assistant"),
|
||||
emojis=message.emojis or {},
|
||||
user_emojis=message.user_emojis or [],
|
||||
user_is_author=message.user_is_author,
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -64,6 +64,7 @@ class Message(SQLModel, table=True):
|
||||
|
||||
emojis: Optional[dict[str, int]] = Field(default=None, sa_column=sa.Column(pg.JSONB), nullable=False)
|
||||
_user_emojis: Optional[list[str]] = PrivateAttr(default=None)
|
||||
_user_is_author: Optional[bool] = PrivateAttr(default=None)
|
||||
|
||||
def ensure_is_message(self) -> None:
|
||||
if not self.payload or not isinstance(self.payload.payload, MessagePayload):
|
||||
@@ -83,3 +84,7 @@ class Message(SQLModel, table=True):
|
||||
@property
|
||||
def user_emojis(self) -> str:
|
||||
return self._user_emojis
|
||||
|
||||
@property
|
||||
def user_is_author(self) -> str:
|
||||
return self._user_is_author
|
||||
|
||||
@@ -876,6 +876,7 @@ class PromptRepository:
|
||||
user_emojis = x["user_emojis"]
|
||||
if user_emojis:
|
||||
m._user_emojis = user_emojis.split(",")
|
||||
m._user_is_author = self.user_id and self.user_id == m.user_id
|
||||
messages.append(m)
|
||||
return messages
|
||||
|
||||
@@ -1090,6 +1091,13 @@ WHERE message.id = cc.id;
|
||||
message_id, protocol_schema.EmojiOp.remove, protocol_schema.EmojiCode.thumbs_up
|
||||
)
|
||||
|
||||
if message.user_id == self.user_id and emoji in (
|
||||
protocol_schema.EmojiCode.thumbs_up,
|
||||
protocol_schema.EmojiCode.thumbs_down,
|
||||
):
|
||||
logger.debug(f"Ignoring add emoji op for user's own message ({emoji=})")
|
||||
return message
|
||||
|
||||
# insert emoji record & increment count
|
||||
message_emoji = MessageEmoji(message_id=message.id, user_id=self.user_id, emoji=emoji)
|
||||
self.db.add(message_emoji)
|
||||
|
||||
@@ -76,6 +76,7 @@ class ConversationMessage(BaseModel):
|
||||
is_assistant: bool
|
||||
emojis: Optional[dict[str, int]] = None
|
||||
user_emojis: Optional[list[str]] = None
|
||||
user_is_author: Optional[bool] = None
|
||||
|
||||
|
||||
class Conversation(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user