mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
feat: Support application、setting、user log recorder (#2617)
This commit is contained in:
parent
7b51d08ea5
commit
470105f895
|
|
@ -16,6 +16,7 @@ from application.swagger_api.application_version_api import ApplicationVersionAp
|
|||
from common.auth import has_permissions, TokenAuth
|
||||
from common.constants.permission_constants import PermissionConstants, CompareConstants, ViewPermission, RoleConstants, \
|
||||
Permission, Group, Operate
|
||||
from common.log.log import log
|
||||
from common.response import result
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
|
@ -30,6 +31,7 @@ class ApplicationVersionView(APIView):
|
|||
responses=result.get_api_array_response(ApplicationVersionApi.get_response_body_api()),
|
||||
tags=[_('Application/Version')])
|
||||
@has_permissions(PermissionConstants.APPLICATION_READ, compare=CompareConstants.AND)
|
||||
@log(menu='Application', operate="Get the application list")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationVersionSerializer.Query(
|
||||
|
|
@ -47,6 +49,7 @@ class ApplicationVersionView(APIView):
|
|||
responses=result.get_page_api_response(ApplicationVersionApi.get_response_body_api()),
|
||||
tags=[_('Application/Version')])
|
||||
@has_permissions(PermissionConstants.APPLICATION_READ, compare=CompareConstants.AND)
|
||||
@log(menu='Application', operate="Get the list of application versions by page")
|
||||
def get(self, request: Request, application_id: str, current_page: int, page_size: int):
|
||||
return result.success(
|
||||
ApplicationVersionSerializer.Query(
|
||||
|
|
@ -64,6 +67,7 @@ class ApplicationVersionView(APIView):
|
|||
responses=result.get_api_response(ApplicationVersionApi.get_response_body_api()),
|
||||
tags=[_('Application/Version')])
|
||||
@has_permissions(PermissionConstants.APPLICATION_READ, compare=CompareConstants.AND)
|
||||
@log(menu='Application', operate="Get application version details")
|
||||
def get(self, request: Request, application_id: str, work_flow_version_id: str):
|
||||
return result.success(
|
||||
ApplicationVersionSerializer.Operate(
|
||||
|
|
@ -82,6 +86,7 @@ class ApplicationVersionView(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Modify application version information")
|
||||
def put(self, request: Request, application_id: str, work_flow_version_id: str):
|
||||
return result.success(
|
||||
ApplicationVersionSerializer.Operate(
|
||||
|
|
|
|||
|
|
@ -9,8 +9,9 @@
|
|||
|
||||
from django.core import cache
|
||||
from django.http import HttpResponse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.utils.translation import gettext_lazy as _, gettext
|
||||
from drf_yasg.utils import swagger_auto_schema
|
||||
from langchain_core.prompts import PromptTemplate
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.parsers import MultiPartParser
|
||||
from rest_framework.request import Request
|
||||
|
|
@ -50,6 +51,7 @@ class ApplicationStatistics(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="User Statistics")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationStatisticsSerializer(data={'application_id': application_id,
|
||||
|
|
@ -74,6 +76,7 @@ class ApplicationStatistics(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="User demographic trends")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationStatisticsSerializer(data={'application_id': application_id,
|
||||
|
|
@ -99,6 +102,7 @@ class ApplicationStatistics(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Conversation statistics")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationStatisticsSerializer(data={'application_id': application_id,
|
||||
|
|
@ -124,6 +128,7 @@ class ApplicationStatistics(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Dialogue-related statistical trends")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationStatisticsSerializer(data={'application_id': application_id,
|
||||
|
|
@ -153,6 +158,7 @@ class Application(APIView):
|
|||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND), PermissionConstants.APPLICATION_EDIT,
|
||||
compare=CompareConstants.AND)
|
||||
@log(menu='Application', operate="Modify application icon")
|
||||
def put(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.IconOperate(
|
||||
|
|
@ -169,6 +175,7 @@ class Application(APIView):
|
|||
tags=[_("Application")]
|
||||
)
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu='Application', operate="Import Application")
|
||||
def post(self, request: Request):
|
||||
return result.success(ApplicationSerializer.Import(
|
||||
data={'user_id': request.user.id, 'file': request.FILES.get('file')}).import_())
|
||||
|
|
@ -183,6 +190,7 @@ class Application(APIView):
|
|||
)
|
||||
@has_permissions(lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('application_id')))
|
||||
@log(menu='Application', operate="Export Application")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return ApplicationSerializer.Operate(
|
||||
data={'application_id': application_id, 'user_id': request.user.id}).export()
|
||||
|
|
@ -193,6 +201,7 @@ class Application(APIView):
|
|||
operation_id=_("Get embedded js"),
|
||||
tags=[_("Application")],
|
||||
manual_parameters=ApplicationApi.ApiKey.get_request_params_api())
|
||||
@log(menu='Application', operate="Get embedded js")
|
||||
def get(self, request: Request):
|
||||
return ApplicationSerializer.Embed(
|
||||
data={'protocol': request.query_params.get('protocol'), 'token': request.query_params.get('token'),
|
||||
|
|
@ -211,6 +220,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Get a list of models")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.Operate(
|
||||
|
|
@ -229,6 +239,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Get model parameter form")
|
||||
def get(self, request: Request, application_id: str, model_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.Operate(
|
||||
|
|
@ -247,6 +258,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Get a list of function libraries")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.Operate(
|
||||
|
|
@ -266,6 +278,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Get library details")
|
||||
def get(self, request: Request, application_id: str, function_lib_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.Operate(
|
||||
|
|
@ -284,6 +297,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Get the list of apps created by the current user")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.Operate(
|
||||
|
|
@ -303,6 +317,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Get application data")
|
||||
def get(self, request: Request, application_id: str, app_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.Operate(
|
||||
|
|
@ -316,6 +331,7 @@ class Application(APIView):
|
|||
@swagger_auto_schema(operation_summary=_("Get application related information"),
|
||||
operation_id=_("Get application related information"),
|
||||
tags=[_("Application/Chat")])
|
||||
@log(menu='Application', operate="Get application related information")
|
||||
def get(self, request: Request):
|
||||
if 'application_id' in request.auth.keywords:
|
||||
return result.success(ApplicationSerializer.Operate(
|
||||
|
|
@ -336,6 +352,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Add ApiKey")
|
||||
def post(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.ApplicationKeySerializer(
|
||||
|
|
@ -352,6 +369,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Get the application API_KEY list")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(ApplicationSerializer.ApplicationKeySerializer(
|
||||
data={'application_id': application_id, 'user_id': request.user.id}).list())
|
||||
|
|
@ -371,6 +389,7 @@ class Application(APIView):
|
|||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND), PermissionConstants.APPLICATION_EDIT,
|
||||
compare=CompareConstants.AND)
|
||||
@log(menu='Application', operate="Modify application API_KEY")
|
||||
def put(self, request: Request, application_id: str, api_key_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.ApplicationKeySerializer.Operate(
|
||||
|
|
@ -388,6 +407,7 @@ class Application(APIView):
|
|||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND), PermissionConstants.APPLICATION_DELETE,
|
||||
compare=CompareConstants.AND)
|
||||
@log(menu='Application', operate="Delete Application API_KEY")
|
||||
def delete(self, request: Request, application_id: str, api_key_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.ApplicationKeySerializer.Operate(
|
||||
|
|
@ -408,6 +428,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Modify Application AccessToken")
|
||||
def put(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.AccessTokenSerializer(data={'application_id': application_id}).edit(
|
||||
|
|
@ -424,6 +445,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Get the application AccessToken information")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.AccessTokenSerializer(data={'application_id': application_id}).one())
|
||||
|
|
@ -459,6 +481,7 @@ class Application(APIView):
|
|||
request_body=ApplicationApi.Create.get_request_body_api(),
|
||||
tags=[_('Application')])
|
||||
@has_permissions(PermissionConstants.APPLICATION_CREATE, compare=CompareConstants.AND)
|
||||
@log(menu='Application', operate="Create an application")
|
||||
def post(self, request: Request):
|
||||
return result.success(ApplicationSerializer.Create(data={'user_id': request.user.id}).insert(request.data))
|
||||
|
||||
|
|
@ -469,6 +492,7 @@ class Application(APIView):
|
|||
responses=result.get_api_array_response(ApplicationApi.get_response_body_api()),
|
||||
tags=[_('Application')])
|
||||
@has_permissions(PermissionConstants.APPLICATION_READ, compare=CompareConstants.AND)
|
||||
@log(menu='Application', operate="Get the application list")
|
||||
def get(self, request: Request):
|
||||
return result.success(
|
||||
ApplicationSerializer.Query(
|
||||
|
|
@ -488,6 +512,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Hit Test List")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.HitTest(data={'id': application_id, 'user_id': request.user.id,
|
||||
|
|
@ -513,6 +538,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Publishing an application")
|
||||
def put(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.Operate(
|
||||
|
|
@ -534,6 +560,7 @@ class Application(APIView):
|
|||
compare=CompareConstants.AND),
|
||||
lambda r, k: Permission(group=Group.APPLICATION, operate=Operate.DELETE,
|
||||
dynamic_tag=k.get('application_id')), compare=CompareConstants.AND)
|
||||
@log(menu='Application', operate="Deleting application")
|
||||
def delete(self, request: Request, application_id: str):
|
||||
return result.success(ApplicationSerializer.Operate(
|
||||
data={'application_id': application_id, 'user_id': request.user.id}).delete(
|
||||
|
|
@ -551,6 +578,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Modify the application")
|
||||
def put(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.Operate(
|
||||
|
|
@ -569,6 +597,7 @@ class Application(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Get application details")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(ApplicationSerializer.Operate(
|
||||
data={'application_id': application_id, 'user_id': request.user.id}).one())
|
||||
|
|
@ -589,6 +618,7 @@ class Application(APIView):
|
|||
dynamic_tag=keywords.get(
|
||||
'application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="Get the knowledge base available to the current application")
|
||||
def get(self, request: Request, application_id: str):
|
||||
return result.success(ApplicationSerializer.Operate(
|
||||
data={'application_id': application_id, 'user_id': request.user.id}).list_dataset())
|
||||
|
|
@ -604,7 +634,7 @@ class Application(APIView):
|
|||
responses=result.get_page_api_response(ApplicationApi.get_response_body_api()),
|
||||
tags=[_('Application')])
|
||||
@has_permissions(PermissionConstants.APPLICATION_READ, compare=CompareConstants.AND)
|
||||
@log(menu=_('Application'), operate=_("Get the application list by page"))
|
||||
@log(menu='Application', operate="Get the application list by page")
|
||||
def get(self, request: Request, current_page: int, page_size: int):
|
||||
return result.success(
|
||||
ApplicationSerializer.Query(
|
||||
|
|
@ -622,6 +652,7 @@ class Application(APIView):
|
|||
dynamic_tag=keywords.get(
|
||||
'application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="speech to text")
|
||||
def post(self, request: Request, application_id: str):
|
||||
return result.success(
|
||||
ApplicationSerializer.Operate(data={'application_id': application_id, 'user_id': request.user.id})
|
||||
|
|
@ -644,6 +675,7 @@ class Application(APIView):
|
|||
dynamic_tag=keywords.get(
|
||||
'application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="text to speech")
|
||||
def post(self, request: Request, application_id: str):
|
||||
byte_data = ApplicationSerializer.Operate(
|
||||
data={'application_id': application_id, 'user_id': request.user.id}).text_to_speech(
|
||||
|
|
@ -662,6 +694,7 @@ class Application(APIView):
|
|||
dynamic_tag=keywords.get(
|
||||
'application_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='Application', operate="trial listening")
|
||||
def post(self, request: Request, application_id: str):
|
||||
byte_data = ApplicationSerializer.Operate(
|
||||
data={'application_id': application_id, 'user_id': request.user.id}).play_demo_text(request.data)
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ from common.auth import TokenAuth, has_permissions, OpenAIKeyAuth
|
|||
from common.constants.authentication_type import AuthenticationType
|
||||
from common.constants.permission_constants import Permission, Group, Operate, \
|
||||
RoleConstants, ViewPermission, CompareConstants
|
||||
from common.log.log import log
|
||||
from common.response import result
|
||||
from common.util.common import query_params_to_single_dict
|
||||
from dataset.serializers.file_serializers import FileSerializer
|
||||
|
|
@ -177,6 +178,7 @@ class ChatView(APIView):
|
|||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND),
|
||||
compare=CompareConstants.AND)
|
||||
@log(menu='Application/Conversation Log', operate="Delete a conversation")
|
||||
def delete(self, request: Request, application_id: str, chat_id: str):
|
||||
return result.success(
|
||||
ChatSerializers.Operate(
|
||||
|
|
@ -199,6 +201,7 @@ class ChatView(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))])
|
||||
)
|
||||
@log(menu='Application/Conversation Log', operate="Get client conversation list by paging")
|
||||
def get(self, request: Request, application_id: str, current_page: int, page_size: int):
|
||||
return result.success(ChatSerializers.ClientChatHistory(
|
||||
data={'client_id': request.auth.client_id, 'application_id': application_id}).page(
|
||||
|
|
@ -218,6 +221,7 @@ class ChatView(APIView):
|
|||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND),
|
||||
compare=CompareConstants.AND)
|
||||
@log(menu='Application/Conversation Log', operate="Client deletes conversation")
|
||||
def delete(self, request: Request, application_id: str, chat_id: str):
|
||||
return result.success(
|
||||
ChatSerializers.Operate(
|
||||
|
|
@ -235,6 +239,7 @@ class ChatView(APIView):
|
|||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND),
|
||||
compare=CompareConstants.AND)
|
||||
@log(menu='Application/Conversation Log', operate="Client modifies dialogue summary")
|
||||
def put(self, request: Request, application_id: str, chat_id: str):
|
||||
return result.success(
|
||||
ChatSerializers.Operate(
|
||||
|
|
@ -256,6 +261,7 @@ class ChatView(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))])
|
||||
)
|
||||
@log(menu='Application/Conversation Log', operate="Get the conversation list by page")
|
||||
def get(self, request: Request, application_id: str, current_page: int, page_size: int):
|
||||
return result.success(ChatSerializers.Query(
|
||||
data={**query_params_to_single_dict(request.query_params), 'application_id': application_id,
|
||||
|
|
@ -281,6 +287,7 @@ class ChatView(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))])
|
||||
)
|
||||
@log(menu='Application/Conversation Log', operate="Get conversation record details")
|
||||
def get(self, request: Request, application_id: str, chat_id: str, chat_record_id: str):
|
||||
return result.success(ChatRecordSerializer.Operate(
|
||||
data={'application_id': application_id,
|
||||
|
|
@ -299,6 +306,7 @@ class ChatView(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))])
|
||||
)
|
||||
@log(menu='Application/Conversation Log', operate="Get a list of conversation records")
|
||||
def get(self, request: Request, application_id: str, chat_id: str):
|
||||
return result.success(ChatRecordSerializer.Query(
|
||||
data={'application_id': application_id,
|
||||
|
|
@ -320,6 +328,7 @@ class ChatView(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))])
|
||||
)
|
||||
@log(menu='Application/Conversation Log', operate="Get the conversation history list by page")
|
||||
def get(self, request: Request, application_id: str, chat_id: str, current_page: int, page_size: int):
|
||||
return result.success(ChatRecordSerializer.Query(
|
||||
data={'application_id': application_id,
|
||||
|
|
@ -343,6 +352,7 @@ class ChatView(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))])
|
||||
)
|
||||
@log(menu='Application/Conversation Log', operate="Like, Dislike")
|
||||
def put(self, request: Request, application_id: str, chat_id: str, chat_record_id: str):
|
||||
return result.success(ChatRecordSerializer.Vote(
|
||||
data={'vote_status': request.data.get('vote_status'), 'chat_id': chat_id,
|
||||
|
|
@ -363,6 +373,7 @@ class ChatView(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('application_id'))]
|
||||
))
|
||||
@log(menu='Application/Conversation Log', operate="Get the list of marked paragraphs")
|
||||
def get(self, request: Request, application_id: str, chat_id: str, chat_record_id: str):
|
||||
return result.success(ChatRecordSerializer.ChatRecordImprove(
|
||||
data={'chat_id': chat_id, 'chat_record_id': chat_record_id}).get())
|
||||
|
|
@ -390,6 +401,7 @@ class ChatView(APIView):
|
|||
'dataset_id'))],
|
||||
compare=CompareConstants.AND
|
||||
), compare=CompareConstants.AND)
|
||||
@log(menu='Application/Conversation Log', operate="Annotation")
|
||||
def put(self, request: Request, application_id: str, chat_id: str, chat_record_id: str, dataset_id: str,
|
||||
document_id: str):
|
||||
return result.success(ChatRecordSerializer.Improve(
|
||||
|
|
@ -415,6 +427,7 @@ class ChatView(APIView):
|
|||
'dataset_id'))],
|
||||
compare=CompareConstants.AND
|
||||
), compare=CompareConstants.AND)
|
||||
@log(menu='Application/Conversation Log', operate="Add to Knowledge Base")
|
||||
def post(self, request: Request, application_id: str, dataset_id: str):
|
||||
return result.success(ChatRecordSerializer.PostImprove().post_improve(request.data))
|
||||
|
||||
|
|
@ -440,6 +453,7 @@ class ChatView(APIView):
|
|||
'dataset_id'))],
|
||||
compare=CompareConstants.AND
|
||||
), compare=CompareConstants.AND)
|
||||
@log(menu='Application/Conversation Log', operate="Delete a Annotation")
|
||||
def delete(self, request: Request, application_id: str, chat_id: str, chat_record_id: str,
|
||||
dataset_id: str,
|
||||
document_id: str, paragraph_id: str):
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ def log(menu: str, operate, get_user=_get_user, get_ip_address=_get_ip_address,
|
|||
return func(view, request, **kwargs)
|
||||
except Exception as e:
|
||||
status = 500
|
||||
raise e
|
||||
finally:
|
||||
ip = get_ip_address(request)
|
||||
user = get_user(request)
|
||||
|
|
|
|||
|
|
@ -24,6 +24,26 @@ from ..exception.app_exception import AppApiException
|
|||
from ..models.db_model_manage import DBModelManage
|
||||
|
||||
|
||||
def encryption(message: str):
|
||||
"""
|
||||
加密敏感字段数据 加密方式是 如果密码是 1234567890 那么给前端则是 123******890
|
||||
:param message:
|
||||
:return:
|
||||
"""
|
||||
max_pre_len = 8
|
||||
max_post_len = 4
|
||||
message_len = len(message)
|
||||
pre_len = int(message_len / 5 * 2)
|
||||
post_len = int(message_len / 5 * 1)
|
||||
pre_str = "".join([message[index] for index in
|
||||
range(0, max_pre_len if pre_len > max_pre_len else 1 if pre_len <= 0 else int(pre_len))])
|
||||
end_str = "".join(
|
||||
[message[index] for index in
|
||||
range(message_len - (int(post_len) if pre_len < max_post_len else max_post_len), message_len)])
|
||||
content = "***************"
|
||||
return pre_str + content + end_str
|
||||
|
||||
|
||||
def sub_array(array: List, item_num=10):
|
||||
result = []
|
||||
temp = []
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@ class Dataset(APIView):
|
|||
authentication_classes = [TokenAuth]
|
||||
|
||||
@action(methods=['PUT'], detail=False)
|
||||
@swagger_auto_schema(operation_summary="同步Web站点知识库",
|
||||
operation_id="同步Web站点知识库",
|
||||
@swagger_auto_schema(operation_summary=_("Synchronize the knowledge base of the website"),
|
||||
operation_id=_("Synchronize the knowledge base of the website"),
|
||||
manual_parameters=DataSetSerializers.SyncWeb.get_request_params_api(),
|
||||
responses=result.get_default_response(),
|
||||
tags=[_('Knowledge Base')])
|
||||
|
|
@ -43,7 +43,7 @@ class Dataset(APIView):
|
|||
dynamic_tag=keywords.get('dataset_id'))],
|
||||
compare=CompareConstants.AND), PermissionConstants.DATASET_EDIT,
|
||||
compare=CompareConstants.AND)
|
||||
@log(menu=_('Knowledge Base'), operate=_("同步Web站点知识库"))
|
||||
@log(menu='Knowledge Base', operate="Synchronize the knowledge base of the website")
|
||||
def put(self, request: Request, dataset_id: str):
|
||||
return result.success(DataSetSerializers.SyncWeb(
|
||||
data={'sync_type': request.query_params.get('sync_type'), 'id': dataset_id,
|
||||
|
|
@ -54,15 +54,15 @@ class Dataset(APIView):
|
|||
parser_classes = [MultiPartParser]
|
||||
|
||||
@action(methods=['POST'], detail=False)
|
||||
@swagger_auto_schema(operation_summary="创建QA知识库",
|
||||
operation_id="创建QA知识库",
|
||||
@swagger_auto_schema(operation_summary=_("Create QA knowledge base"),
|
||||
operation_id=_("Create QA knowledge base"),
|
||||
manual_parameters=DataSetSerializers.Create.CreateQASerializers.get_request_params_api(),
|
||||
responses=get_api_response(
|
||||
DataSetSerializers.Create.CreateQASerializers.get_response_body_api()),
|
||||
tags=[_('Knowledge Base')]
|
||||
)
|
||||
@has_permissions(PermissionConstants.DATASET_CREATE, compare=CompareConstants.AND)
|
||||
@log(menu=_('Knowledge Base'), operate=_("创建QA知识库"))
|
||||
@log(menu='Knowledge Base', operate="Create QA knowledge base")
|
||||
def post(self, request: Request):
|
||||
return result.success(DataSetSerializers.Create(data={'user_id': request.user.id}).save_qa({
|
||||
'file_list': request.FILES.getlist('file'),
|
||||
|
|
@ -82,7 +82,7 @@ class Dataset(APIView):
|
|||
tags=[_('Knowledge Base')]
|
||||
)
|
||||
@has_permissions(PermissionConstants.DATASET_CREATE, compare=CompareConstants.AND)
|
||||
@log(menu=_('Knowledge Base'), operate=_("Create a web site knowledge base"))
|
||||
@log(menu='Knowledge Base', operate="Create a web site knowledge base")
|
||||
def post(self, request: Request):
|
||||
return result.success(DataSetSerializers.Create(data={'user_id': request.user.id}).save_web(request.data))
|
||||
|
||||
|
|
@ -96,7 +96,7 @@ class Dataset(APIView):
|
|||
responses=result.get_api_array_response(
|
||||
DataSetSerializers.Application.get_response_body_api()),
|
||||
tags=[_('Knowledge Base')])
|
||||
@log(menu=_('Knowledge Base'), operate=_("Get a list of applications available in the knowledge base"))
|
||||
@log(menu='Knowledge Base', operate="Get a list of applications available in the knowledge base")
|
||||
def get(self, request: Request, dataset_id: str):
|
||||
return result.success(DataSetSerializers.Operate(
|
||||
data={'id': dataset_id, 'user_id': str(request.user.id)}).list_application())
|
||||
|
|
@ -108,7 +108,7 @@ class Dataset(APIView):
|
|||
responses=result.get_api_array_response(DataSetSerializers.Query.get_response_body_api()),
|
||||
tags=[_('Knowledge Base')])
|
||||
@has_permissions(PermissionConstants.DATASET_READ, compare=CompareConstants.AND)
|
||||
@log(menu=_('Knowledge Base'), operate=_("Get a list of knowledge bases"))
|
||||
@log(menu='Knowledge Base', operate="Get a list of knowledge bases")
|
||||
def get(self, request: Request):
|
||||
data = {key: str(value) for key, value in request.query_params.items()}
|
||||
d = DataSetSerializers.Query(data={**data, 'user_id': str(request.user.id)})
|
||||
|
|
@ -123,7 +123,7 @@ class Dataset(APIView):
|
|||
tags=[_('Knowledge Base')]
|
||||
)
|
||||
@has_permissions(PermissionConstants.DATASET_CREATE, compare=CompareConstants.AND)
|
||||
@log(menu=_('Knowledge Base'), operate=_("Create a knowledge base"))
|
||||
@log(menu='Knowledge Base', operate="Create a knowledge base")
|
||||
def post(self, request: Request):
|
||||
return result.success(DataSetSerializers.Create(data={'user_id': request.user.id}).save(request.data))
|
||||
|
||||
|
|
@ -137,7 +137,7 @@ class Dataset(APIView):
|
|||
tags=[_('Knowledge Base')])
|
||||
@has_permissions(lambda r, keywords: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base'), operate=_("Hit test list"))
|
||||
@log(menu='Knowledge Base', operate="Hit test list")
|
||||
def get(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
DataSetSerializers.HitTest(data={'id': dataset_id, 'user_id': request.user.id,
|
||||
|
|
@ -158,7 +158,7 @@ class Dataset(APIView):
|
|||
)
|
||||
@has_permissions(lambda r, keywords: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base'), operate=_("Re-vectorize"))
|
||||
@log(menu='Knowledge Base', operate="Re-vectorize")
|
||||
def put(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
DataSetSerializers.Operate(data={'id': dataset_id, 'user_id': request.user.id}).re_embedding())
|
||||
|
|
@ -173,7 +173,7 @@ class Dataset(APIView):
|
|||
)
|
||||
@has_permissions(lambda r, keywords: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base'), operate=_("Export knowledge base"))
|
||||
@log(menu='Knowledge Base', operate="Export knowledge base")
|
||||
def get(self, request: Request, dataset_id: str):
|
||||
return DataSetSerializers.Operate(data={'id': dataset_id, 'user_id': request.user.id}).export_excel()
|
||||
|
||||
|
|
@ -188,7 +188,7 @@ class Dataset(APIView):
|
|||
)
|
||||
@has_permissions(lambda r, keywords: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base'), operate=_("Export knowledge base containing images"))
|
||||
@log(menu='Knowledge Base', operate="Export knowledge base containing images")
|
||||
def get(self, request: Request, dataset_id: str):
|
||||
return DataSetSerializers.Operate(data={'id': dataset_id, 'user_id': request.user.id}).export_zip()
|
||||
|
||||
|
|
@ -204,7 +204,7 @@ class Dataset(APIView):
|
|||
dynamic_tag=keywords.get('dataset_id')),
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.DELETE,
|
||||
dynamic_tag=k.get('dataset_id')), compare=CompareConstants.AND)
|
||||
@log(menu=_('Knowledge Base'), operate=_("Delete knowledge base"))
|
||||
@log(menu='Knowledge Base', operate="Delete knowledge base")
|
||||
def delete(self, request: Request, dataset_id: str):
|
||||
operate = DataSetSerializers.Operate(data={'id': dataset_id})
|
||||
return result.success(operate.delete())
|
||||
|
|
@ -217,7 +217,7 @@ class Dataset(APIView):
|
|||
tags=[_('Knowledge Base')])
|
||||
@has_permissions(lambda r, keywords: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=keywords.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base'), operate=_("Query knowledge base details based on knowledge base id"))
|
||||
@log(menu='Knowledge Base', operate="Query knowledge base details based on knowledge base id")
|
||||
def get(self, request: Request, dataset_id: str):
|
||||
return result.success(DataSetSerializers.Operate(data={'id': dataset_id, 'user_id': request.user.id}).one(
|
||||
user_id=request.user.id))
|
||||
|
|
@ -232,7 +232,7 @@ class Dataset(APIView):
|
|||
)
|
||||
@has_permissions(lambda r, keywords: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base'), operate=_("Modify knowledge base information"))
|
||||
@log(menu='Knowledge Base', operate="Modify knowledge base information")
|
||||
def put(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
DataSetSerializers.Operate(data={'id': dataset_id, 'user_id': request.user.id}).edit(request.data,
|
||||
|
|
@ -250,7 +250,7 @@ class Dataset(APIView):
|
|||
tags=[_('Knowledge Base')]
|
||||
)
|
||||
@has_permissions(PermissionConstants.DATASET_READ, compare=CompareConstants.AND)
|
||||
@log(menu=_('Knowledge Base'), operate=_("Get the knowledge base paginated list"))
|
||||
@log(menu='Knowledge Base', operate="Get the knowledge base paginated list")
|
||||
def get(self, request: Request, current_page, page_size):
|
||||
d = DataSetSerializers.Query(
|
||||
data={'name': request.query_params.get('name', None), 'desc': request.query_params.get("desc", None),
|
||||
|
|
@ -268,7 +268,7 @@ class Dataset(APIView):
|
|||
[lambda r, keywords: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('dataset_id'))],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu=_('Knowledge Base'), operate=_("Get the model list of the knowledge base"))
|
||||
@log(menu='Knowledge Base', operate="Get the model list of the knowledge base")
|
||||
def get(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
ModelSerializer.Query(
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class Template(APIView):
|
|||
operation_id=_('Get QA template'),
|
||||
manual_parameters=DocumentSerializers.Export.get_request_params_api(),
|
||||
tags=[_('Knowledge Base/Documentation')])
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Get QA template"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Get QA template")
|
||||
def get(self, request: Request):
|
||||
return DocumentSerializers.Export(data={'type': request.query_params.get('type')}).export(with_valid=True)
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ class TableTemplate(APIView):
|
|||
operation_id=_('Get form template'),
|
||||
manual_parameters=DocumentSerializers.Export.get_request_params_api(),
|
||||
tags=[_('Knowledge Base/Documentation')])
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Get form template"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Get form template")
|
||||
def get(self, request: Request):
|
||||
return DocumentSerializers.Export(data={'type': request.query_params.get('type')}).table_export(with_valid=True)
|
||||
|
||||
|
|
@ -63,7 +63,7 @@ class WebDocument(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Create Web site documents"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Create Web site documents")
|
||||
def post(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Create(data={'dataset_id': dataset_id}).save_web(request.data, with_valid=True))
|
||||
|
|
@ -82,7 +82,7 @@ class QaDocument(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Import QA and create documentation"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Import QA and create documentation")
|
||||
def post(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Create(data={'dataset_id': dataset_id}).save_qa(
|
||||
|
|
@ -103,7 +103,7 @@ class TableDocument(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Import tables and create documents"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Import tables and create documents")
|
||||
def post(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Create(data={'dataset_id': dataset_id}).save_table(
|
||||
|
|
@ -124,7 +124,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Document'), operate=_("Create document"))
|
||||
@log(menu='Knowledge Base/Document', operate="Create document")
|
||||
def post(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Create(data={'dataset_id': dataset_id}).save(request.data, with_valid=True))
|
||||
|
|
@ -138,7 +138,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Document list"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Document list")
|
||||
def get(self, request: Request, dataset_id: str):
|
||||
d = DocumentSerializers.Query(
|
||||
data={**query_params_to_single_dict(request.query_params), 'dataset_id': dataset_id})
|
||||
|
|
@ -159,7 +159,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Modify document hit processing methods in batches"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Modify document hit processing methods in batches")
|
||||
def put(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Batch(data={'dataset_id': dataset_id}).batch_edit_hit_handling(request.data))
|
||||
|
|
@ -179,7 +179,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Create documents in batches"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Create documents in batches")
|
||||
def post(self, request: Request, dataset_id: str):
|
||||
return result.success(DocumentSerializers.Batch(data={'dataset_id': dataset_id}).batch_save(request.data))
|
||||
|
||||
|
|
@ -194,7 +194,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Batch sync documents"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Batch sync documents")
|
||||
def put(self, request: Request, dataset_id: str):
|
||||
return result.success(DocumentSerializers.Batch(data={'dataset_id': dataset_id}).batch_sync(request.data))
|
||||
|
||||
|
|
@ -209,7 +209,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Delete documents in batches"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Delete documents in batches")
|
||||
def delete(self, request: Request, dataset_id: str):
|
||||
return result.success(DocumentSerializers.Batch(data={'dataset_id': dataset_id}).batch_delete(request.data))
|
||||
|
||||
|
|
@ -226,7 +226,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Synchronize web site types"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Synchronize web site types")
|
||||
def put(self, request: Request, dataset_id: str, document_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Sync(data={'document_id': document_id, 'dataset_id': dataset_id}).sync(
|
||||
|
|
@ -246,7 +246,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Cancel task"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Cancel task")
|
||||
def put(self, request: Request, dataset_id: str, document_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Operate(data={'document_id': document_id, 'dataset_id': dataset_id}).cancel(
|
||||
|
|
@ -267,7 +267,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Cancel tasks in batches"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Cancel tasks in batches")
|
||||
def put(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Batch(data={'dataset_id': dataset_id}).batch_cancel(request.data))
|
||||
|
|
@ -286,7 +286,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Refresh document vector library"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Refresh document vector library")
|
||||
def put(self, request: Request, dataset_id: str, document_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Operate(data={'document_id': document_id, 'dataset_id': dataset_id}).refresh(
|
||||
|
|
@ -307,7 +307,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Batch refresh document vector library"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Batch refresh document vector library")
|
||||
def put(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Batch(data={'dataset_id': dataset_id}).batch_refresh(request.data))
|
||||
|
|
@ -330,7 +330,7 @@ class Document(APIView):
|
|||
dynamic_tag=k.get('target_dataset_id')),
|
||||
compare=CompareConstants.AND
|
||||
)
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Migrate documents in batches"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Migrate documents in batches")
|
||||
def put(self, request: Request, dataset_id: str, target_dataset_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Migrate(
|
||||
|
|
@ -350,7 +350,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Export document"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Export document")
|
||||
def get(self, request: Request, dataset_id: str, document_id: str):
|
||||
return DocumentSerializers.Operate(data={'document_id': document_id, 'dataset_id': dataset_id}).export()
|
||||
|
||||
|
|
@ -365,7 +365,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Export Zip document"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Export Zip document")
|
||||
def get(self, request: Request, dataset_id: str, document_id: str):
|
||||
return DocumentSerializers.Operate(data={'document_id': document_id, 'dataset_id': dataset_id}).export_zip()
|
||||
|
||||
|
|
@ -381,7 +381,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Get document details"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Get document details")
|
||||
def get(self, request: Request, dataset_id: str, document_id: str):
|
||||
operate = DocumentSerializers.Operate(data={'document_id': document_id, 'dataset_id': dataset_id})
|
||||
operate.is_valid(raise_exception=True)
|
||||
|
|
@ -398,7 +398,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Modify document"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Modify document")
|
||||
def put(self, request: Request, dataset_id: str, document_id: str):
|
||||
return result.success(
|
||||
DocumentSerializers.Operate(data={'document_id': document_id, 'dataset_id': dataset_id}).edit(
|
||||
|
|
@ -414,7 +414,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Delete document"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Delete document")
|
||||
def delete(self, request: Request, dataset_id: str, document_id: str):
|
||||
operate = DocumentSerializers.Operate(data={'document_id': document_id, 'dataset_id': dataset_id})
|
||||
operate.is_valid(raise_exception=True)
|
||||
|
|
@ -427,7 +427,7 @@ class Document(APIView):
|
|||
@swagger_auto_schema(operation_summary=_('Get a list of segment IDs'),
|
||||
operation_id=_('Get a list of segment IDs'),
|
||||
tags=[_('Knowledge Base/Documentation')])
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Get a list of segment IDs"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Get a list of segment IDs")
|
||||
def get(self, request: Request):
|
||||
return result.success(DocumentSerializers.SplitPattern.list())
|
||||
|
||||
|
|
@ -440,7 +440,7 @@ class Document(APIView):
|
|||
operation_id=_('Segmented document'),
|
||||
manual_parameters=DocumentSerializers.Split.get_request_params_api(),
|
||||
tags=[_('Knowledge Base/Documentation')])
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Segmented document"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Segmented document")
|
||||
def post(self, request: Request):
|
||||
split_data = {'file': request.FILES.getlist('file')}
|
||||
request_data = request.data
|
||||
|
|
@ -468,7 +468,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Get the knowledge base paginated list"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Get the knowledge base paginated list")
|
||||
def get(self, request: Request, dataset_id: str, current_page, page_size):
|
||||
d = DocumentSerializers.Query(
|
||||
data={**query_params_to_single_dict(request.query_params), 'dataset_id': dataset_id})
|
||||
|
|
@ -482,7 +482,7 @@ class Document(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation'), operate=_("Batch generate related documents"))
|
||||
@log(menu='Knowledge Base/Documentation', operate="Batch generate related documents")
|
||||
def put(self, request: Request, dataset_id: str):
|
||||
return result.success(DocumentSerializers.BatchGenerateRelated(data={'dataset_id': dataset_id})
|
||||
.batch_generate_related(request.data))
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ class FileView(APIView):
|
|||
required=True,
|
||||
description=_('Upload file'))],
|
||||
tags=[_('file')])
|
||||
@log(menu=_('file'), operate=_('Upload file'))
|
||||
@log(menu='file', operate='Upload file')
|
||||
def post(self, request: Request):
|
||||
return result.success(FileSerializer(data={'file': request.FILES.get('file')}).upload())
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ class Image(APIView):
|
|||
required=True,
|
||||
description=_('Upload image'))],
|
||||
tags=[_('Image')])
|
||||
@log(menu=_('Image'), operate=_('Upload image'))
|
||||
@log(menu='Image', operate='Upload image')
|
||||
def post(self, request: Request):
|
||||
return result.success(ImageSerializer(data={'image': request.FILES.get('file')}).upload())
|
||||
|
||||
|
|
@ -42,6 +42,5 @@ class Image(APIView):
|
|||
@swagger_auto_schema(operation_summary=_('Get Image'),
|
||||
operation_id=_('Get Image'),
|
||||
tags=[_('Image')])
|
||||
@log(menu=_('Image'), operate=_('Get Image'))
|
||||
def get(self, request: Request, image_id: str):
|
||||
return ImageSerializer.Operate(data={'id': image_id}).get()
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Paragraph list'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Paragraph list')
|
||||
def get(self, request: Request, dataset_id: str, document_id: str):
|
||||
q = ParagraphSerializers.Query(
|
||||
data={**query_params_to_single_dict(request.query_params), 'dataset_id': dataset_id,
|
||||
|
|
@ -52,7 +52,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Create Paragraph'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Create Paragraph')
|
||||
def post(self, request: Request, dataset_id: str, document_id: str):
|
||||
return result.success(
|
||||
ParagraphSerializers.Create(data={'dataset_id': dataset_id, 'document_id': document_id}).save(request.data))
|
||||
|
|
@ -70,7 +70,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Add associated questions'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Add associated questions')
|
||||
def post(self, request: Request, dataset_id: str, document_id: str, paragraph_id: str):
|
||||
return result.success(ParagraphSerializers.Problem(
|
||||
data={"dataset_id": dataset_id, 'document_id': document_id, 'paragraph_id': paragraph_id}).save(
|
||||
|
|
@ -86,7 +86,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Get a list of paragraph questions'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Get a list of paragraph questions')
|
||||
def get(self, request: Request, dataset_id: str, document_id: str, paragraph_id: str):
|
||||
return result.success(ParagraphSerializers.Problem(
|
||||
data={"dataset_id": dataset_id, 'document_id': document_id, 'paragraph_id': paragraph_id}).list(
|
||||
|
|
@ -104,7 +104,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Disassociation issue'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Disassociation issue')
|
||||
def put(self, request: Request, dataset_id: str, document_id: str, paragraph_id: str, problem_id: str):
|
||||
return result.success(ParagraphSerializers.Association(
|
||||
data={'dataset_id': dataset_id, 'document_id': document_id, 'paragraph_id': paragraph_id,
|
||||
|
|
@ -122,7 +122,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Related questions'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Related questions')
|
||||
def put(self, request: Request, dataset_id: str, document_id: str, paragraph_id: str, problem_id: str):
|
||||
return result.success(ParagraphSerializers.Association(
|
||||
data={'dataset_id': dataset_id, 'document_id': document_id, 'paragraph_id': paragraph_id,
|
||||
|
|
@ -141,7 +141,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Modify paragraph data'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Modify paragraph data')
|
||||
def put(self, request: Request, dataset_id: str, document_id: str, paragraph_id: str):
|
||||
o = ParagraphSerializers.Operate(
|
||||
data={"paragraph_id": paragraph_id, 'dataset_id': dataset_id, 'document_id': document_id})
|
||||
|
|
@ -157,7 +157,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Get paragraph details'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Get paragraph details')
|
||||
def get(self, request: Request, dataset_id: str, document_id: str, paragraph_id: str):
|
||||
o = ParagraphSerializers.Operate(
|
||||
data={"dataset_id": dataset_id, 'document_id': document_id, "paragraph_id": paragraph_id})
|
||||
|
|
@ -173,7 +173,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Delete paragraph'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Delete paragraph')
|
||||
def delete(self, request: Request, dataset_id: str, document_id: str, paragraph_id: str):
|
||||
o = ParagraphSerializers.Operate(
|
||||
data={"dataset_id": dataset_id, 'document_id': document_id, "paragraph_id": paragraph_id})
|
||||
|
|
@ -194,7 +194,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Delete paragraphs in batches'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Delete paragraphs in batches')
|
||||
def delete(self, request: Request, dataset_id: str, document_id: str):
|
||||
return result.success(ParagraphSerializers.Batch(
|
||||
data={"dataset_id": dataset_id, 'document_id': document_id}).batch_delete(request.data))
|
||||
|
|
@ -217,7 +217,7 @@ class Paragraph(APIView):
|
|||
dynamic_tag=k.get('target_dataset_id')),
|
||||
compare=CompareConstants.AND
|
||||
)
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Migrate paragraphs in batches'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Migrate paragraphs in batches')
|
||||
def put(self, request: Request, dataset_id: str, target_dataset_id: str, document_id: str, target_document_id):
|
||||
return result.success(
|
||||
ParagraphSerializers.Migrate(
|
||||
|
|
@ -239,7 +239,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Get paragraph list by pagination'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Get paragraph list by pagination')
|
||||
def get(self, request: Request, dataset_id: str, document_id: str, current_page, page_size):
|
||||
d = ParagraphSerializers.Query(
|
||||
data={**query_params_to_single_dict(request.query_params), 'dataset_id': dataset_id,
|
||||
|
|
@ -254,7 +254,7 @@ class Paragraph(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph'), operate=_('Batch generate related'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph', operate='Batch generate related')
|
||||
def put(self, request: Request, dataset_id: str, document_id: str):
|
||||
return result.success(
|
||||
ParagraphSerializers.BatchGenerateRelated(data={'dataset_id': dataset_id, 'document_id': document_id})
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ class Problem(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph/Question'), operate=_('Question list'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph/Question', operate='Question list')
|
||||
def get(self, request: Request, dataset_id: str):
|
||||
q = ProblemSerializers.Query(
|
||||
data={**query_params_to_single_dict(request.query_params), 'dataset_id': dataset_id})
|
||||
|
|
@ -51,7 +51,7 @@ class Problem(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph/Question'), operate=_('Create question'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph/Question', operate='Create question')
|
||||
def post(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
ProblemSerializers.Create(
|
||||
|
|
@ -69,7 +69,7 @@ class Problem(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph/Question'), operate=_('Get a list of associated paragraphs'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph/Question', operate='Get a list of associated paragraphs')
|
||||
def get(self, request: Request, dataset_id: str, problem_id: str):
|
||||
return result.success(ProblemSerializers.Operate(
|
||||
data={**query_params_to_single_dict(request.query_params), 'dataset_id': dataset_id,
|
||||
|
|
@ -89,7 +89,7 @@ class Problem(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph/Question'), operate=_('Batch deletion issues'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph/Question', operate='Batch deletion issues')
|
||||
def delete(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
ProblemSerializers.BatchOperate(data={'dataset_id': dataset_id}).delete(request.data))
|
||||
|
|
@ -104,7 +104,7 @@ class Problem(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph/Question'), operate=_('Batch associated paragraphs'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph/Question', operate='Batch associated paragraphs')
|
||||
def post(self, request: Request, dataset_id: str):
|
||||
return result.success(
|
||||
ProblemSerializers.BatchOperate(data={'dataset_id': dataset_id}).association(request.data))
|
||||
|
|
@ -121,7 +121,7 @@ class Problem(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph/Question'), operate=_('Delete question'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph/Question', operate='Delete question')
|
||||
def delete(self, request: Request, dataset_id: str, problem_id: str):
|
||||
return result.success(ProblemSerializers.Operate(
|
||||
data={**query_params_to_single_dict(request.query_params), 'dataset_id': dataset_id,
|
||||
|
|
@ -137,7 +137,7 @@ class Problem(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph/Question'), operate=_('Modify question'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph/Question', operate='Modify question')
|
||||
def put(self, request: Request, dataset_id: str, problem_id: str):
|
||||
return result.success(ProblemSerializers.Operate(
|
||||
data={**query_params_to_single_dict(request.query_params), 'dataset_id': dataset_id,
|
||||
|
|
@ -156,7 +156,7 @@ class Problem(APIView):
|
|||
@has_permissions(
|
||||
lambda r, k: Permission(group=Group.DATASET, operate=Operate.USE,
|
||||
dynamic_tag=k.get('dataset_id')))
|
||||
@log(menu=_('Knowledge Base/Documentation/Paragraph/Question'), operate=_('Get the list of questions by page'))
|
||||
@log(menu='Knowledge Base/Documentation/Paragraph/Question', operate='Get the list of questions by page')
|
||||
def get(self, request: Request, dataset_id: str, current_page, page_size):
|
||||
d = ProblemSerializers.Query(
|
||||
data={**query_params_to_single_dict(request.query_params), 'dataset_id': dataset_id})
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class FunctionLibView(APIView):
|
|||
tags=[_('Function')],
|
||||
manual_parameters=FunctionLibApi.Query.get_request_params_api())
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Get function list"))
|
||||
@log(menu='Function', operate="Get function list")
|
||||
def get(self, request: Request):
|
||||
return result.success(
|
||||
FunctionLibSerializer.Query(
|
||||
|
|
@ -45,7 +45,7 @@ class FunctionLibView(APIView):
|
|||
request_body=FunctionLibApi.Create.get_request_body_api(),
|
||||
tags=[_('Function')])
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Create function"))
|
||||
@log(menu='Function', operate="Create function")
|
||||
def post(self, request: Request):
|
||||
return result.success(FunctionLibSerializer.Create(data={'user_id': request.user.id}).insert(request.data))
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ class FunctionLibView(APIView):
|
|||
request_body=FunctionLibApi.Debug.get_request_body_api(),
|
||||
tags=[_('Function')])
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Debug function"))
|
||||
@log(menu='Function', operate="Debug function")
|
||||
def post(self, request: Request):
|
||||
return result.success(
|
||||
FunctionLibSerializer.Debug(data={'user_id': request.user.id}).debug(
|
||||
|
|
@ -73,7 +73,7 @@ class FunctionLibView(APIView):
|
|||
request_body=FunctionLibApi.Edit.get_request_body_api(),
|
||||
tags=[_('Function')])
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Update function"))
|
||||
@log(menu='Function', operate="Update function")
|
||||
def put(self, request: Request, function_lib_id: str):
|
||||
return result.success(
|
||||
FunctionLibSerializer.Operate(data={'user_id': request.user.id, 'id': function_lib_id}).edit(
|
||||
|
|
@ -84,7 +84,7 @@ class FunctionLibView(APIView):
|
|||
operation_id=_('Delete function'),
|
||||
tags=[_('Function')])
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Delete function"))
|
||||
@log(menu='Function', operate="Delete function")
|
||||
def delete(self, request: Request, function_lib_id: str):
|
||||
return result.success(
|
||||
FunctionLibSerializer.Operate(data={'user_id': request.user.id, 'id': function_lib_id}).delete())
|
||||
|
|
@ -94,7 +94,7 @@ class FunctionLibView(APIView):
|
|||
operation_id=_('Get function details'),
|
||||
tags=[_('Function')])
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Get function details"))
|
||||
@log(menu='Function', operate="Get function details")
|
||||
def get(self, request: Request, function_lib_id: str):
|
||||
return result.success(
|
||||
FunctionLibSerializer.Operate(data={'user_id': request.user.id, 'id': function_lib_id}).one())
|
||||
|
|
@ -110,7 +110,7 @@ class FunctionLibView(APIView):
|
|||
responses=result.get_page_api_response(FunctionLibApi.get_response_body_api()),
|
||||
tags=[_('Function')])
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Get function list by pagination"))
|
||||
@log(menu='Function', operate="Get function list by pagination")
|
||||
def get(self, request: Request, current_page: int, page_size: int):
|
||||
return result.success(
|
||||
FunctionLibSerializer.Query(
|
||||
|
|
@ -131,7 +131,7 @@ class FunctionLibView(APIView):
|
|||
tags=[_("function")]
|
||||
)
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Import function"))
|
||||
@log(menu='Function', operate="Import function")
|
||||
def post(self, request: Request):
|
||||
return result.success(FunctionLibSerializer.Import(
|
||||
data={'user_id': request.user.id, 'file': request.FILES.get('file')}).import_())
|
||||
|
|
@ -145,7 +145,7 @@ class FunctionLibView(APIView):
|
|||
tags=[_("function")]
|
||||
)
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Export function"))
|
||||
@log(menu='Function', operate="Export function")
|
||||
def get(self, request: Request, id: str):
|
||||
return FunctionLibSerializer.Operate(
|
||||
data={'id': id, 'user_id': request.user.id}).export()
|
||||
|
|
@ -156,7 +156,7 @@ class FunctionLibView(APIView):
|
|||
|
||||
@action(methods=['PUT'], detail=False)
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Edit icon"))
|
||||
@log(menu='Function', operate="Edit icon")
|
||||
def put(self, request: Request, id: str):
|
||||
return result.success(
|
||||
FunctionLibSerializer.IconOperate(
|
||||
|
|
@ -168,7 +168,7 @@ class FunctionLibView(APIView):
|
|||
|
||||
@action(methods=['POST'], detail=False)
|
||||
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
|
||||
@log(menu=_('Function'), operate=_("Add internal function"))
|
||||
@log(menu='Function', operate="Add internal function")
|
||||
def post(self, request: Request, id: str):
|
||||
return result.success(
|
||||
FunctionLibSerializer.InternalFunction(
|
||||
|
|
|
|||
|
|
@ -6766,4 +6766,10 @@ msgid "The network is busy, try again later."
|
|||
msgstr ""
|
||||
|
||||
msgid "Is it ascending order"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create QA knowledge base"
|
||||
msgstr ""
|
||||
|
||||
msgid "Synchronize the knowledge base of the website"
|
||||
msgstr ""
|
||||
|
|
@ -6905,4 +6905,10 @@ msgid "The network is busy, try again later."
|
|||
msgstr "网络繁忙,请稍后再试。"
|
||||
|
||||
msgid "Is it ascending order"
|
||||
msgstr "是否升序"
|
||||
msgstr "是否升序"
|
||||
|
||||
msgid "Create QA knowledge base"
|
||||
msgstr "创建QA知识库"
|
||||
|
||||
msgid "Synchronize the knowledge base of the website"
|
||||
msgstr "同步Web站点知识库"
|
||||
|
|
|
|||
|
|
@ -6917,4 +6917,10 @@ msgid "The network is busy, try again later."
|
|||
msgstr "網絡繁忙,請稍後再試。"
|
||||
|
||||
msgid "Is it ascending order"
|
||||
msgstr "是否昇冪"
|
||||
msgstr "是否昇冪"
|
||||
|
||||
msgid "Create QA knowledge base"
|
||||
msgstr "創建QA知識庫"
|
||||
|
||||
msgid "Synchronize the knowledge base of the website"
|
||||
msgstr "同步Web網站知識庫"
|
||||
|
|
@ -16,6 +16,8 @@ from pydantic.v1 import BaseModel
|
|||
from common.exception.app_exception import AppApiException
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from common.util.common import encryption
|
||||
|
||||
|
||||
class DownModelChunkStatus(Enum):
|
||||
success = "success"
|
||||
|
|
@ -137,18 +139,7 @@ class BaseModelCredential(ABC):
|
|||
:param message:
|
||||
:return:
|
||||
"""
|
||||
max_pre_len = 8
|
||||
max_post_len = 4
|
||||
message_len = len(message)
|
||||
pre_len = int(message_len / 5 * 2)
|
||||
post_len = int(message_len / 5 * 1)
|
||||
pre_str = "".join([message[index] for index in
|
||||
range(0, max_pre_len if pre_len > max_pre_len else 1 if pre_len <= 0 else int(pre_len))])
|
||||
end_str = "".join(
|
||||
[message[index] for index in
|
||||
range(message_len - (int(post_len) if pre_len < max_post_len else max_post_len), message_len)])
|
||||
content = "***************"
|
||||
return pre_str + content + end_str
|
||||
return encryption(message)
|
||||
|
||||
|
||||
class ModelTypeConst(Enum):
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ from rest_framework.views import Request
|
|||
|
||||
from common.auth import TokenAuth, has_permissions
|
||||
from common.constants.permission_constants import PermissionConstants
|
||||
from common.log.log import log
|
||||
from common.response import result
|
||||
from setting.serializers.team_serializers import TeamMemberSerializer, get_response_body_api, \
|
||||
UpdateTeamMemberPermissionSerializer
|
||||
|
|
@ -28,6 +29,7 @@ class TeamMember(APIView):
|
|||
responses=result.get_api_response(get_response_body_api()),
|
||||
tags=[_('team')])
|
||||
@has_permissions(PermissionConstants.TEAM_READ)
|
||||
@log(menu='team', operate='Get a list of team members')
|
||||
def get(self, request: Request):
|
||||
return result.success(TeamMemberSerializer(data={'team_id': str(request.user.id)}).list_member())
|
||||
|
||||
|
|
@ -37,6 +39,7 @@ class TeamMember(APIView):
|
|||
request_body=TeamMemberSerializer().get_request_body_api(),
|
||||
tags=[_('team')])
|
||||
@has_permissions(PermissionConstants.TEAM_CREATE)
|
||||
@log(menu='team', operate='Add member')
|
||||
def post(self, request: Request):
|
||||
team = TeamMemberSerializer(data={'team_id': str(request.user.id)})
|
||||
return result.success((team.add_member(**request.data)))
|
||||
|
|
@ -50,6 +53,7 @@ class TeamMember(APIView):
|
|||
request_body=TeamMemberSerializer.get_bach_request_body_api(),
|
||||
tags=[_('team')])
|
||||
@has_permissions(PermissionConstants.TEAM_CREATE)
|
||||
@log(menu='team', operate='Add members in batches')
|
||||
def post(self, request: Request):
|
||||
return result.success(
|
||||
TeamMemberSerializer(data={'team_id': request.user.id}).batch_add_member(request.data))
|
||||
|
|
@ -63,6 +67,7 @@ class TeamMember(APIView):
|
|||
manual_parameters=TeamMemberSerializer.Operate.get_request_params_api(),
|
||||
tags=[_('team')])
|
||||
@has_permissions(PermissionConstants.TEAM_READ)
|
||||
@log(menu='team', operate='Get team member permissions')
|
||||
def get(self, request: Request, member_id: str):
|
||||
return result.success(TeamMemberSerializer.Operate(
|
||||
data={'member_id': member_id, 'team_id': str(request.user.id)}).list_member_permission())
|
||||
|
|
@ -75,6 +80,7 @@ class TeamMember(APIView):
|
|||
tags=[_('team')]
|
||||
)
|
||||
@has_permissions(PermissionConstants.TEAM_EDIT)
|
||||
@log(menu='team', operate='Update team member permissions')
|
||||
def put(self, request: Request, member_id: str):
|
||||
return result.success(TeamMemberSerializer.Operate(
|
||||
data={'member_id': member_id, 'team_id': str(request.user.id)}).edit(request.data))
|
||||
|
|
@ -86,6 +92,7 @@ class TeamMember(APIView):
|
|||
tags=[_('team')]
|
||||
)
|
||||
@has_permissions(PermissionConstants.TEAM_DELETE)
|
||||
@log(menu='team', operate='Remove member')
|
||||
def delete(self, request: Request, member_id: str):
|
||||
return result.success(TeamMemberSerializer.Operate(
|
||||
data={'member_id': member_id, 'team_id': str(request.user.id)}).delete())
|
||||
|
|
|
|||
|
|
@ -13,10 +13,12 @@ from rest_framework.views import Request
|
|||
|
||||
from common.auth import TokenAuth, has_permissions
|
||||
from common.constants.permission_constants import PermissionConstants
|
||||
from common.log.log import log
|
||||
from common.response import result
|
||||
from common.util.common import query_params_to_single_dict
|
||||
from setting.models_provider.constants.model_provider_constants import ModelProvideConstants
|
||||
from setting.serializers.provider_serializers import ProviderSerializer, ModelSerializer, get_default_model_params_setting
|
||||
from setting.serializers.provider_serializers import ProviderSerializer, ModelSerializer, \
|
||||
get_default_model_params_setting
|
||||
from setting.swagger_api.provide_api import ProvideApi, ModelCreateApi, ModelQueryApi, ModelEditApi
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
|
@ -30,6 +32,7 @@ class Model(APIView):
|
|||
request_body=ModelCreateApi.get_request_body_api()
|
||||
, tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_CREATE)
|
||||
@log(menu='model', operate='Create model')
|
||||
def post(self, request: Request):
|
||||
return result.success(
|
||||
ModelSerializer.Create(data={**request.data, 'user_id': str(request.user.id)}).insert(request.user.id,
|
||||
|
|
@ -41,6 +44,7 @@ class Model(APIView):
|
|||
request_body=ModelCreateApi.get_request_body_api()
|
||||
, tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_CREATE)
|
||||
@log(menu='model', operate='Download model, trial only with Ollama platform')
|
||||
def put(self, request: Request):
|
||||
return result.success(
|
||||
ModelSerializer.Create(data={**request.data, 'user_id': str(request.user.id)}).insert(request.user.id,
|
||||
|
|
@ -52,6 +56,7 @@ class Model(APIView):
|
|||
manual_parameters=ModelQueryApi.get_request_params_api()
|
||||
, tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
@log(menu='model', operate='Get model list')
|
||||
def get(self, request: Request):
|
||||
return result.success(
|
||||
ModelSerializer.Query(
|
||||
|
|
@ -62,10 +67,14 @@ class Model(APIView):
|
|||
authentication_classes = [TokenAuth]
|
||||
|
||||
@action(methods=['GET'], detail=False)
|
||||
@swagger_auto_schema(operation_summary=_('Query model meta information, this interface does not carry authentication information'),
|
||||
operation_id=_('Query model meta information, this interface does not carry authentication information'),
|
||||
tags=[_('model')])
|
||||
@swagger_auto_schema(operation_summary=_(
|
||||
'Query model meta information, this interface does not carry authentication information'),
|
||||
operation_id=_(
|
||||
'Query model meta information, this interface does not carry authentication information'),
|
||||
tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
@log(menu='model',
|
||||
operate='Query model meta information, this interface does not carry authentication information')
|
||||
def get(self, request: Request, model_id: str):
|
||||
return result.success(
|
||||
ModelSerializer.Operate(data={'id': model_id, 'user_id': request.user.id}).one_meta(with_valid=True))
|
||||
|
|
@ -78,6 +87,8 @@ class Model(APIView):
|
|||
operation_id=_('Pause model download'),
|
||||
tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_CREATE)
|
||||
@log(menu='model',
|
||||
operate='Pause model download')
|
||||
def put(self, request: Request, model_id: str):
|
||||
return result.success(
|
||||
ModelSerializer.Operate(data={'id': model_id, 'user_id': request.user.id}).pause_download())
|
||||
|
|
@ -91,6 +102,7 @@ class Model(APIView):
|
|||
manual_parameters=ProvideApi.ModelForm.get_request_params_api(),
|
||||
tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
@log(menu='model', operate='Get model parameter form')
|
||||
def get(self, request: Request, model_id: str):
|
||||
return result.success(
|
||||
ModelSerializer.ModelParams(data={'id': model_id, 'user_id': request.user.id}).get_model_params())
|
||||
|
|
@ -101,6 +113,7 @@ class Model(APIView):
|
|||
manual_parameters=ProvideApi.ModelForm.get_request_params_api(),
|
||||
tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
@log(menu='model', operate='Save model parameter form')
|
||||
def put(self, request: Request, model_id: str):
|
||||
return result.success(
|
||||
ModelSerializer.ModelParamsForm(data={'id': model_id, 'user_id': request.user.id})
|
||||
|
|
@ -115,6 +128,7 @@ class Model(APIView):
|
|||
request_body=ModelEditApi.get_request_body_api()
|
||||
, tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_CREATE)
|
||||
@log(menu='model', operate='Update model')
|
||||
def put(self, request: Request, model_id: str):
|
||||
return result.success(
|
||||
ModelSerializer.Operate(data={'id': model_id, 'user_id': request.user.id}).edit(request.data,
|
||||
|
|
@ -126,6 +140,7 @@ class Model(APIView):
|
|||
responses=result.get_default_response()
|
||||
, tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_DELETE)
|
||||
@log(menu='model', operate='Delete model')
|
||||
def delete(self, request: Request, model_id: str):
|
||||
return result.success(
|
||||
ModelSerializer.Operate(data={'id': model_id, 'user_id': request.user.id}).delete())
|
||||
|
|
@ -134,6 +149,7 @@ class Model(APIView):
|
|||
@swagger_auto_schema(operation_summary=_('Query model details'),
|
||||
operation_id=_('Query model details'),
|
||||
tags=[_('model')])
|
||||
@log(menu='model', operate='Query model details')
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
def get(self, request: Request, model_id: str):
|
||||
return result.success(
|
||||
|
|
@ -153,6 +169,7 @@ class Provide(APIView):
|
|||
request_body=ProvideApi.get_request_body_api()
|
||||
, tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
@log(menu='model', operate='Call the supplier function to obtain form data')
|
||||
def post(self, request: Request, provider: str, method: str):
|
||||
return result.success(
|
||||
ProviderSerializer(data={'provider': provider, 'method': method}).exec(request.data, with_valid=True))
|
||||
|
|
@ -162,6 +179,7 @@ class Provide(APIView):
|
|||
operation_id=_('Get a list of model suppliers')
|
||||
, tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
@log(menu='model', operate='Get a list of model suppliers')
|
||||
def get(self, request: Request):
|
||||
model_type = request.query_params.get('model_type')
|
||||
if model_type:
|
||||
|
|
@ -185,6 +203,7 @@ class Provide(APIView):
|
|||
responses=result.get_api_array_response(ProvideApi.ModelTypeList.get_response_body_api())
|
||||
, tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
@log(menu='model', operate='Get a list of model types')
|
||||
def get(self, request: Request):
|
||||
provider = request.query_params.get('provider')
|
||||
return result.success(ModelProvideConstants[provider].value.get_model_type_list())
|
||||
|
|
@ -200,6 +219,7 @@ class Provide(APIView):
|
|||
, tags=[_('model')]
|
||||
)
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
@log(menu='model', operate='Get the model creation form')
|
||||
def get(self, request: Request):
|
||||
provider = request.query_params.get('provider')
|
||||
model_type = request.query_params.get('model_type')
|
||||
|
|
@ -219,6 +239,7 @@ class Provide(APIView):
|
|||
, tags=[_('model')]
|
||||
)
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
@log(menu='model', operate='Get model default parameters')
|
||||
def get(self, request: Request):
|
||||
provider = request.query_params.get('provider')
|
||||
model_type = request.query_params.get('model_type')
|
||||
|
|
@ -235,6 +256,7 @@ class Provide(APIView):
|
|||
manual_parameters=ProvideApi.ModelForm.get_request_params_api(),
|
||||
tags=[_('model')])
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
@log(menu='model', operate='Get the model creation form')
|
||||
def get(self, request: Request):
|
||||
provider = request.query_params.get('provider')
|
||||
model_type = request.query_params.get('model_type')
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ from rest_framework.views import APIView
|
|||
|
||||
from common.auth import TokenAuth, has_permissions
|
||||
from common.constants.permission_constants import RoleConstants
|
||||
from common.log.log import log
|
||||
from common.response import result
|
||||
from setting.serializers.system_setting import SystemSettingSerializer
|
||||
from setting.swagger_api.system_setting import SystemSettingEmailApi
|
||||
|
|
@ -30,6 +31,7 @@ class SystemSetting(APIView):
|
|||
request_body=SystemSettingEmailApi.get_request_body_api(), tags=[_('Email settings')],
|
||||
responses=result.get_api_response(SystemSettingEmailApi.get_response_body_api()))
|
||||
@has_permissions(RoleConstants.ADMIN)
|
||||
@log(menu='Email settings', operate='Create or update email settings')
|
||||
def put(self, request: Request):
|
||||
return result.success(
|
||||
SystemSettingSerializer.EmailSerializer.Create(
|
||||
|
|
@ -42,6 +44,7 @@ class SystemSetting(APIView):
|
|||
responses=result.get_default_response(),
|
||||
tags=[_('Email settings')])
|
||||
@has_permissions(RoleConstants.ADMIN)
|
||||
@log(menu='Email settings', operate='Test email settings')
|
||||
def post(self, request: Request):
|
||||
return result.success(
|
||||
SystemSettingSerializer.EmailSerializer.Create(
|
||||
|
|
@ -53,6 +56,7 @@ class SystemSetting(APIView):
|
|||
responses=result.get_api_response(SystemSettingEmailApi.get_response_body_api()),
|
||||
tags=[_('Email settings')])
|
||||
@has_permissions(RoleConstants.ADMIN)
|
||||
@log(menu='Email settings', operate='Get email settings')
|
||||
def get(self, request: Request):
|
||||
return result.success(
|
||||
SystemSettingSerializer.EmailSerializer.one())
|
||||
|
|
|
|||
|
|
@ -18,7 +18,9 @@ from rest_framework.views import Request
|
|||
from common.auth.authenticate import TokenAuth
|
||||
from common.auth.authentication import has_permissions
|
||||
from common.constants.permission_constants import PermissionConstants, CompareConstants, ViewPermission, RoleConstants
|
||||
from common.log.log import log
|
||||
from common.response import result
|
||||
from common.util.common import encryption
|
||||
from smartdoc.settings import JWT_AUTH
|
||||
from users.serializers.user_serializers import RegisterSerializer, LoginSerializer, CheckCodeSerializer, \
|
||||
RePasswordSerializer, \
|
||||
|
|
@ -36,6 +38,7 @@ class Profile(APIView):
|
|||
operation_id=_("Get MaxKB related information"),
|
||||
responses=result.get_api_response(SystemSerializer.get_response_body_api()),
|
||||
tags=[_('System parameters')])
|
||||
@log(menu='System parameters', operate='Get MaxKB related information')
|
||||
def get(self, request: Request):
|
||||
return result.success(SystemSerializer.get_profile())
|
||||
|
||||
|
|
@ -49,6 +52,7 @@ class User(APIView):
|
|||
responses=result.get_api_response(UserProfile.get_response_body_api()),
|
||||
tags=[])
|
||||
@has_permissions(PermissionConstants.USER_READ)
|
||||
@log(menu='User', operate='Get current user information')
|
||||
def get(self, request: Request):
|
||||
return result.success(UserProfile.get_user_profile(request.user))
|
||||
|
||||
|
|
@ -62,6 +66,7 @@ class User(APIView):
|
|||
responses=result.get_api_array_response(UserSerializer.Query.get_response_body_api()),
|
||||
tags=[_("User")])
|
||||
@has_permissions(PermissionConstants.USER_READ)
|
||||
@log(menu='User', operate='Get user list')
|
||||
def get(self, request: Request):
|
||||
return result.success(
|
||||
UserSerializer.Query(data={'email_or_username': request.query_params.get('email_or_username')}).list())
|
||||
|
|
@ -83,6 +88,7 @@ class SwitchUserLanguageView(APIView):
|
|||
),
|
||||
responses=RePasswordSerializer().get_response_body_api(),
|
||||
tags=[_("User")])
|
||||
@log(menu='User', operate='Switch Language')
|
||||
def post(self, request: Request):
|
||||
data = {**request.data, 'user_id': request.user.id}
|
||||
return result.success(SwitchLanguageSerializer(data=data).switch())
|
||||
|
|
@ -108,6 +114,7 @@ class ResetCurrentUserPasswordView(APIView):
|
|||
),
|
||||
responses=RePasswordSerializer().get_response_body_api(),
|
||||
tags=[_("User")])
|
||||
@log(menu='User', operate='Modify current user password')
|
||||
def post(self, request: Request):
|
||||
data = {'email': request.user.email}
|
||||
data.update(request.data)
|
||||
|
|
@ -127,6 +134,7 @@ class SendEmailToCurrentUserView(APIView):
|
|||
operation_id=_("Send email to current user"),
|
||||
responses=SendEmailSerializer().get_response_body_api(),
|
||||
tags=[_("User")])
|
||||
@log(menu='User', operate='Send email to current user')
|
||||
def post(self, request: Request):
|
||||
serializer_obj = SendEmailSerializer(data={'email': request.user.email, 'type': "reset_password"})
|
||||
if serializer_obj.is_valid(raise_exception=True):
|
||||
|
|
@ -142,11 +150,23 @@ class Logout(APIView):
|
|||
operation_id=_("Sign out"),
|
||||
responses=SendEmailSerializer().get_response_body_api(),
|
||||
tags=[_("User")])
|
||||
@log(menu='User', operate='Sign out')
|
||||
def post(self, request: Request):
|
||||
token_cache.delete(request.META.get('HTTP_AUTHORIZATION'))
|
||||
return result.success(True)
|
||||
|
||||
|
||||
def _get_details(request):
|
||||
path = request.path
|
||||
body = request.data
|
||||
query = request.query_params
|
||||
return {
|
||||
'path': path,
|
||||
'body': {**body, 'password': encryption(body.get('password', ''))},
|
||||
'query': query
|
||||
}
|
||||
|
||||
|
||||
class Login(APIView):
|
||||
|
||||
@action(methods=['POST'], detail=False)
|
||||
|
|
@ -156,6 +176,8 @@ class Login(APIView):
|
|||
responses=LoginSerializer().get_response_body_api(),
|
||||
security=[],
|
||||
tags=[_("User")])
|
||||
@log(menu='User', operate='Log in', get_user=lambda r: {'user_name': r.data.get('username', None)},
|
||||
get_details=_get_details)
|
||||
def post(self, request: Request):
|
||||
login_request = LoginSerializer(data=request.data)
|
||||
# 校验请求参数
|
||||
|
|
@ -175,6 +197,7 @@ class Register(APIView):
|
|||
responses=RegisterSerializer().get_response_body_api(),
|
||||
security=[],
|
||||
tags=[_("User")])
|
||||
@log(menu='User', operate='User registration', get_user=lambda r: {'user_name': r.data.get('username', None)})
|
||||
def post(self, request: Request):
|
||||
serializer_obj = RegisterSerializer(data=request.data)
|
||||
if serializer_obj.is_valid(raise_exception=True):
|
||||
|
|
@ -192,6 +215,8 @@ class RePasswordView(APIView):
|
|||
responses=RePasswordSerializer().get_response_body_api(),
|
||||
security=[],
|
||||
tags=[_("User")])
|
||||
@log(menu='User', operate='Change password',
|
||||
get_user=lambda r: {'user_name': None, 'email': r.data.get('email', None)})
|
||||
def post(self, request: Request):
|
||||
serializer_obj = RePasswordSerializer(data=request.data)
|
||||
return result.success(serializer_obj.reset_password())
|
||||
|
|
@ -207,6 +232,8 @@ class CheckCode(APIView):
|
|||
responses=CheckCodeSerializer().get_response_body_api(),
|
||||
security=[],
|
||||
tags=[_("User")])
|
||||
@log(menu='User', operate='Check whether the verification code is correct',
|
||||
get_user=lambda r: {'user_name': None, 'email': r.data.get('email', None)})
|
||||
def post(self, request: Request):
|
||||
return result.success(CheckCodeSerializer(data=request.data).is_valid(raise_exception=True))
|
||||
|
||||
|
|
@ -220,6 +247,8 @@ class SendEmail(APIView):
|
|||
responses=SendEmailSerializer().get_response_body_api(),
|
||||
security=[],
|
||||
tags=[_("User")])
|
||||
@log(menu='User', operate='Send email',
|
||||
get_user=lambda r: {'user_name': None, 'email': r.data.get('email', None)})
|
||||
def post(self, request: Request):
|
||||
serializer_obj = SendEmailSerializer(data=request.data)
|
||||
if serializer_obj.is_valid(raise_exception=True):
|
||||
|
|
@ -240,6 +269,7 @@ class UserManage(APIView):
|
|||
[RoleConstants.ADMIN],
|
||||
[PermissionConstants.USER_READ],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='User', operate='Add user')
|
||||
def post(self, request: Request):
|
||||
return result.success(UserManageSerializer().save(request.data))
|
||||
|
||||
|
|
@ -257,6 +287,7 @@ class UserManage(APIView):
|
|||
[RoleConstants.ADMIN],
|
||||
[PermissionConstants.USER_READ],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='User', operate='Get user paginated list')
|
||||
def get(self, request: Request, current_page, page_size):
|
||||
d = UserManageSerializer.Query(
|
||||
data={'email_or_username': request.query_params.get('email_or_username', None),
|
||||
|
|
@ -277,6 +308,7 @@ class UserManage(APIView):
|
|||
[RoleConstants.ADMIN],
|
||||
[PermissionConstants.USER_READ],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='User', operate='Change password')
|
||||
def put(self, request: Request, user_id):
|
||||
return result.success(
|
||||
UserManageSerializer.Operate(data={'id': user_id}).re_password(request.data, with_valid=True))
|
||||
|
|
@ -294,6 +326,7 @@ class UserManage(APIView):
|
|||
[RoleConstants.ADMIN],
|
||||
[PermissionConstants.USER_READ],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='User', operate='Delete user')
|
||||
def delete(self, request: Request, user_id):
|
||||
return result.success(UserManageSerializer.Operate(data={'id': user_id}).delete(with_valid=True))
|
||||
|
||||
|
|
@ -308,6 +341,7 @@ class UserManage(APIView):
|
|||
[RoleConstants.ADMIN],
|
||||
[PermissionConstants.USER_READ],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='User', operate='Get user information')
|
||||
def get(self, request: Request, user_id):
|
||||
return result.success(UserManageSerializer.Operate(data={'id': user_id}).one(with_valid=True))
|
||||
|
||||
|
|
@ -323,6 +357,7 @@ class UserManage(APIView):
|
|||
[RoleConstants.ADMIN],
|
||||
[PermissionConstants.USER_READ],
|
||||
compare=CompareConstants.AND))
|
||||
@log(menu='User', operate='Update user information')
|
||||
def put(self, request: Request, user_id):
|
||||
return result.success(
|
||||
UserManageSerializer.Operate(data={'id': user_id}).edit(request.data, with_valid=True))
|
||||
|
|
@ -337,5 +372,6 @@ class UserListView(APIView):
|
|||
responses=result.get_api_array_response(UserSerializer.Query.get_response_body_api()),
|
||||
tags=[_("User")])
|
||||
@has_permissions(PermissionConstants.USER_READ)
|
||||
@log(menu='User', operate='Get user list by type')
|
||||
def get(self, request: Request, type):
|
||||
return result.success(UserSerializer().listByType(type, request.user.id))
|
||||
|
|
|
|||
Loading…
Reference in New Issue