Jelajahi Sumber

Update chats.py

Classic298 3 bulan lalu
induk
melakukan
033e5c1e00
1 mengubah file dengan 16 tambahan dan 4 penghapusan
  1. 16 4
      backend/open_webui/models/chats.py

+ 16 - 4
backend/open_webui/models/chats.py

@@ -634,7 +634,7 @@ class ChatTable:
                     ).params(title_key=f"%{search_text}%", content_key=search_text)
                 )
 
-                # Tag filtering
+                # Check if there are any tags to filter, it should have all the tags
                 if "none" in tag_ids:
                     query = query.filter(
                         text(
@@ -651,7 +651,13 @@ class ChatTable:
                         and_(
                             *[
                                 text(
-                                    f"EXISTS (SELECT 1 FROM json_each(Chat.meta, '$.tags') AS tag WHERE tag.value = :tag_id_{tag_idx})"
+                                    f"""
+                                    EXISTS (
+                                        SELECT 1
+                                        FROM json_each(Chat.meta, '$.tags') AS tag
+                                        WHERE tag.value = :tag_id_{tag_idx}
+                                    )
+                                    """
                                 ).params(**{f"tag_id_{tag_idx}": tag_id})
                                 for tag_idx, tag_id in enumerate(tag_ids)
                             ]
@@ -675,7 +681,7 @@ class ChatTable:
                     ).params(title_key=f"%{search_text}%", content_key=search_text)
                 )
 
-                # Tag filtering
+                # Check if there are any tags to filter, it should have all the tags
                 if "none" in tag_ids:
                     query = query.filter(
                         text(
@@ -692,7 +698,13 @@ class ChatTable:
                         and_(
                             *[
                                 text(
-                                    f"EXISTS (SELECT 1 FROM json_array_elements_text(Chat.meta->'tags') AS tag WHERE tag = :tag_id_{tag_idx})"
+                                    f"""
+                                    EXISTS (
+                                        SELECT 1
+                                        FROM json_array_elements_text(Chat.meta->'tags') AS tag
+                                        WHERE tag = :tag_id_{tag_idx}
+                                    )
+                                    """
                                 ).params(**{f"tag_id_{tag_idx}": tag_id})
                                 for tag_idx, tag_id in enumerate(tag_ids)
                             ]