diff --git a/apps/knowledge/serializers/knowledge.py b/apps/knowledge/serializers/knowledge.py index b5f365075..a5071e900 100644 --- a/apps/knowledge/serializers/knowledge.py +++ b/apps/knowledge/serializers/knowledge.py @@ -109,6 +109,7 @@ class KnowledgeSerializer(serializers.Serializer): desc = serializers.CharField(required=False, label=_('knowledge description'), allow_null=True, allow_blank=True, max_length=256, min_length=1) user_id = serializers.UUIDField(required=False, label=_('user id'), allow_null=True) + scope = serializers.CharField(required=False, label=_('knowledge scope'), allow_null=True) @staticmethod def is_x_pack_ee(): @@ -127,7 +128,8 @@ class KnowledgeSerializer(serializers.Serializer): 'temp.user_id': models.CharField(), 'temp.workspace_id': models.CharField(), 'temp.folder_id': models.CharField(), - 'temp.id': models.CharField() + 'temp.id': models.CharField(), + 'temp.scope': models.CharField(), })) folder_query_set = QuerySet(KnowledgeFolder) @@ -146,6 +148,8 @@ class KnowledgeSerializer(serializers.Serializer): if "folder_id" in self.data and self.data.get('folder_id') is not None: query_set = query_set.filter(**{'temp.folder_id': self.data.get("folder_id")}) folder_query_set = folder_query_set.filter(**{'parent_id': self.data.get("folder_id")}) + if "scope" in self.data and self.data.get('scope') is not None: + query_set = query_set.filter(**{'temp.scope': self.data.get("scope")}) query_set = query_set.order_by("-temp.create_time", "temp.id") query_set_dict['default_sql'] = query_set diff --git a/apps/knowledge/sql/list_knowledge.sql b/apps/knowledge/sql/list_knowledge.sql index f3a27a12f..92c1dd910 100644 --- a/apps/knowledge/sql/list_knowledge.sql +++ b/apps/knowledge/sql/list_knowledge.sql @@ -10,6 +10,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name, "temp_knowledge".update_time, "temp_knowledge".file_size_limit, "temp_knowledge".file_count_limit, + "temp_knowledge"."scope", "document_temp"."char_length", CASE WHEN @@ -38,6 +39,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name, "update_time", 0 as file_size_limit, 0 as file_count_limit, + 'WORKSPACE' as "scope", 0 as char_length, 0 as application_mapping_count, 0 as document_count diff --git a/apps/knowledge/sql/list_knowledge_user.sql b/apps/knowledge/sql/list_knowledge_user.sql index a780a6cbb..5605c4a62 100644 --- a/apps/knowledge/sql/list_knowledge_user.sql +++ b/apps/knowledge/sql/list_knowledge_user.sql @@ -10,6 +10,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name, "temp_knowledge".update_time, "temp_knowledge".file_size_limit, "temp_knowledge".file_count_limit, + "temp_knowledge"."scope", "document_temp"."char_length", CASE WHEN @@ -42,6 +43,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name, "update_time", 0 as file_size_limit, 0 as file_count_limit, + 'WORKSPACE' as "scope", 0 as char_length, 0 as application_mapping_count, 0 as document_count diff --git a/apps/knowledge/sql/list_knowledge_user_ee.sql b/apps/knowledge/sql/list_knowledge_user_ee.sql index 4813966e9..012fdcf33 100644 --- a/apps/knowledge/sql/list_knowledge_user_ee.sql +++ b/apps/knowledge/sql/list_knowledge_user_ee.sql @@ -10,6 +10,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name, "temp_knowledge".update_time, "temp_knowledge".file_size_limit, "temp_knowledge".file_count_limit, + "temp_knowledge"."scope", "document_temp"."char_length", CASE WHEN @@ -51,6 +52,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name, "update_time", 0 as file_size_limit, 0 as file_count_limit, + 'WORKSPACE' as "scope", 0 as char_length, 0 as application_mapping_count, 0 as document_count diff --git a/apps/knowledge/views/knowledge.py b/apps/knowledge/views/knowledge.py index 629b14ee3..17e29f60a 100644 --- a/apps/knowledge/views/knowledge.py +++ b/apps/knowledge/views/knowledge.py @@ -11,6 +11,7 @@ from common.result import result from knowledge.api.knowledge import KnowledgeBaseCreateAPI, KnowledgeWebCreateAPI, KnowledgeTreeReadAPI, \ KnowledgeEditAPI, KnowledgeReadAPI, KnowledgePageAPI, SyncWebAPI, GenerateRelatedAPI, HitTestAPI, EmbeddingAPI, \ GetModelAPI, KnowledgeExportAPI +from knowledge.models import KnowledgeScope from knowledge.serializers.common import get_knowledge_operation_object from knowledge.serializers.knowledge import KnowledgeSerializer from models_provider.serializers.model_serializer import ModelSerializer @@ -39,6 +40,7 @@ class KnowledgeView(APIView): 'folder_id': request.query_params.get('folder_id'), 'name': request.query_params.get('name'), 'desc': request.query_params.get("desc"), + 'scope': KnowledgeScope.WORKSPACE, 'user_id': request.query_params.get('user_id') } ).list()) @@ -135,6 +137,7 @@ class KnowledgeView(APIView): 'folder_id': request.query_params.get('folder_id'), 'name': request.query_params.get('name'), 'desc': request.query_params.get("desc"), + 'scope': KnowledgeScope.WORKSPACE, 'user_id': request.user.id } ).page(current_page, page_size))