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:
Andreas Köpf
2023-02-07 16:40:25 +01:00
committed by GitHub
parent 22b7fa7152
commit 363a3a1244
4 changed files with 16 additions and 0 deletions
+2
View File
@@ -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,
)
+5
View File
@@ -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):