fix: add scope field to knowledge serializers and update related SQL queries
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run

This commit is contained in:
CaptainB 2025-06-11 20:35:06 +08:00
parent babd6d5bde
commit e81a7962b8
5 changed files with 14 additions and 1 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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))