Timothy Jaeryang Baek 1 неделя назад
Родитель
Сommit
272c6f5ec5
1 измененных файлов с 58 добавлено и 36 удалено
  1. 58 36
      backend/open_webui/models/messages.py

+ 58 - 36
backend/open_webui/models/messages.py

@@ -174,19 +174,27 @@ class MessageTable:
                 .order_by(Message.created_at.desc())
                 .all()
             )
-            return [
-                MessageReplyToResponse.model_validate(
-                    {
-                        **MessageModel.model_validate(message).model_dump(),
-                        "reply_to_message": (
-                            self.get_message_by_id(message.reply_to_id).model_dump()
-                            if message.reply_to_id
-                            else None
-                        ),
-                    }
+
+            messages = []
+            for message in all_messages:
+                reply_to_message = (
+                    self.get_message_by_id(message.reply_to_id)
+                    if message.reply_to_id
+                    else None
                 )
-                for message in all_messages
-            ]
+                messages.append(
+                    MessageReplyToResponse.model_validate(
+                        {
+                            **MessageModel.model_validate(message).model_dump(),
+                            "reply_to_message": (
+                                reply_to_message.model_dump()
+                                if reply_to_message
+                                else None
+                            ),
+                        }
+                    )
+                )
+            return messages
 
     def get_reply_user_ids_by_message_id(self, id: str) -> list[str]:
         with get_db() as db:
@@ -208,19 +216,26 @@ class MessageTable:
                 .all()
             )
 
-            return [
-                MessageReplyToResponse.model_validate(
-                    {
-                        **MessageModel.model_validate(message).model_dump(),
-                        "reply_to_message": (
-                            self.get_message_by_id(message.reply_to_id).model_dump()
-                            if message.reply_to_id
-                            else None
-                        ),
-                    }
+            messages = []
+            for message in all_messages:
+                reply_to_message = (
+                    self.get_message_by_id(message.reply_to_id)
+                    if message.reply_to_id
+                    else None
                 )
-                for message in all_messages
-            ]
+                messages.append(
+                    MessageReplyToResponse.model_validate(
+                        {
+                            **MessageModel.model_validate(message).model_dump(),
+                            "reply_to_message": (
+                                reply_to_message.model_dump()
+                                if reply_to_message
+                                else None
+                            ),
+                        }
+                    )
+                )
+            return messages
 
     def get_messages_by_parent_id(
         self, channel_id: str, parent_id: str, skip: int = 0, limit: int = 50
@@ -244,19 +259,26 @@ class MessageTable:
             if len(all_messages) < limit:
                 all_messages.append(message)
 
-            return [
-                MessageReplyToResponse.model_validate(
-                    {
-                        **MessageModel.model_validate(message).model_dump(),
-                        "reply_to_message": (
-                            self.get_message_by_id(message.reply_to_id).model_dump()
-                            if message.reply_to_id
-                            else None
-                        ),
-                    }
+            messages = []
+            for message in all_messages:
+                reply_to_message = (
+                    self.get_message_by_id(message.reply_to_id)
+                    if message.reply_to_id
+                    else None
                 )
-                for message in all_messages
-            ]
+                messages.append(
+                    MessageReplyToResponse.model_validate(
+                        {
+                            **MessageModel.model_validate(message).model_dump(),
+                            "reply_to_message": (
+                                reply_to_message.model_dump()
+                                if reply_to_message
+                                else None
+                            ),
+                        }
+                    )
+                )
+            return messages
 
     def update_message_by_id(
         self, id: str, form_data: MessageForm