Skip to content

Commit 30bbb8f

Browse files
committed
feat: Support application、setting、user log recorder
1 parent b7accc5 commit 30bbb8f

File tree

20 files changed

+250
-100
lines changed

20 files changed

+250
-100
lines changed

apps/application/views/application_version_views.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from common.auth import has_permissions, TokenAuth
1717
from common.constants.permission_constants import PermissionConstants, CompareConstants, ViewPermission, RoleConstants, \
1818
Permission, Group, Operate
19+
from common.log.log import log
1920
from common.response import result
2021
from django.utils.translation import gettext_lazy as _
2122

@@ -30,6 +31,7 @@ class ApplicationVersionView(APIView):
3031
responses=result.get_api_array_response(ApplicationVersionApi.get_response_body_api()),
3132
tags=[_('Application/Version')])
3233
@has_permissions(PermissionConstants.APPLICATION_READ, compare=CompareConstants.AND)
34+
@log(menu='Application', operate="Get the application list")
3335
def get(self, request: Request, application_id: str):
3436
return result.success(
3537
ApplicationVersionSerializer.Query(
@@ -47,6 +49,7 @@ class Page(APIView):
4749
responses=result.get_page_api_response(ApplicationVersionApi.get_response_body_api()),
4850
tags=[_('Application/Version')])
4951
@has_permissions(PermissionConstants.APPLICATION_READ, compare=CompareConstants.AND)
52+
@log(menu='Application', operate="Get the list of application versions by page")
5053
def get(self, request: Request, application_id: str, current_page: int, page_size: int):
5154
return result.success(
5255
ApplicationVersionSerializer.Query(
@@ -64,6 +67,7 @@ class Operate(APIView):
6467
responses=result.get_api_response(ApplicationVersionApi.get_response_body_api()),
6568
tags=[_('Application/Version')])
6669
@has_permissions(PermissionConstants.APPLICATION_READ, compare=CompareConstants.AND)
70+
@log(menu='Application', operate="Get application version details")
6771
def get(self, request: Request, application_id: str, work_flow_version_id: str):
6872
return result.success(
6973
ApplicationVersionSerializer.Operate(
@@ -82,6 +86,7 @@ def get(self, request: Request, application_id: str, work_flow_version_id: str):
8286
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
8387
dynamic_tag=keywords.get('application_id'))],
8488
compare=CompareConstants.AND))
89+
@log(menu='Application', operate="Modify application version information")
8590
def put(self, request: Request, application_id: str, work_flow_version_id: str):
8691
return result.success(
8792
ApplicationVersionSerializer.Operate(

apps/application/views/application_views.py

Lines changed: 35 additions & 2 deletions
Large diffs are not rendered by default.

apps/application/views/chat_views.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from common.constants.authentication_type import AuthenticationType
2424
from common.constants.permission_constants import Permission, Group, Operate, \
2525
RoleConstants, ViewPermission, CompareConstants
26+
from common.log.log import log
2627
from common.response import result
2728
from common.util.common import query_params_to_single_dict
2829
from dataset.serializers.file_serializers import FileSerializer
@@ -177,6 +178,7 @@ class Operate(APIView):
177178
dynamic_tag=keywords.get('application_id'))],
178179
compare=CompareConstants.AND),
179180
compare=CompareConstants.AND)
181+
@log(menu='Application/Conversation Log', operate="Delete a conversation")
180182
def delete(self, request: Request, application_id: str, chat_id: str):
181183
return result.success(
182184
ChatSerializers.Operate(
@@ -199,6 +201,7 @@ class ClientChatHistoryPage(APIView):
199201
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
200202
dynamic_tag=keywords.get('application_id'))])
201203
)
204+
@log(menu='Application/Conversation Log', operate="Get client conversation list by paging")
202205
def get(self, request: Request, application_id: str, current_page: int, page_size: int):
203206
return result.success(ChatSerializers.ClientChatHistory(
204207
data={'client_id': request.auth.client_id, 'application_id': application_id}).page(
@@ -218,6 +221,7 @@ class Operate(APIView):
218221
dynamic_tag=keywords.get('application_id'))],
219222
compare=CompareConstants.AND),
220223
compare=CompareConstants.AND)
224+
@log(menu='Application/Conversation Log', operate="Client deletes conversation")
221225
def delete(self, request: Request, application_id: str, chat_id: str):
222226
return result.success(
223227
ChatSerializers.Operate(
@@ -235,6 +239,7 @@ def delete(self, request: Request, application_id: str, chat_id: str):
235239
dynamic_tag=keywords.get('application_id'))],
236240
compare=CompareConstants.AND),
237241
compare=CompareConstants.AND)
242+
@log(menu='Application/Conversation Log', operate="Client modifies dialogue summary")
238243
def put(self, request: Request, application_id: str, chat_id: str):
239244
return result.success(
240245
ChatSerializers.Operate(
@@ -256,6 +261,7 @@ class Page(APIView):
256261
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
257262
dynamic_tag=keywords.get('application_id'))])
258263
)
264+
@log(menu='Application/Conversation Log', operate="Get the conversation list by page")
259265
def get(self, request: Request, application_id: str, current_page: int, page_size: int):
260266
return result.success(ChatSerializers.Query(
261267
data={**query_params_to_single_dict(request.query_params), 'application_id': application_id,
@@ -281,6 +287,7 @@ class Operate(APIView):
281287
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
282288
dynamic_tag=keywords.get('application_id'))])
283289
)
290+
@log(menu='Application/Conversation Log', operate="Get conversation record details")
284291
def get(self, request: Request, application_id: str, chat_id: str, chat_record_id: str):
285292
return result.success(ChatRecordSerializer.Operate(
286293
data={'application_id': application_id,
@@ -299,6 +306,7 @@ def get(self, request: Request, application_id: str, chat_id: str, chat_record_i
299306
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
300307
dynamic_tag=keywords.get('application_id'))])
301308
)
309+
@log(menu='Application/Conversation Log', operate="Get a list of conversation records")
302310
def get(self, request: Request, application_id: str, chat_id: str):
303311
return result.success(ChatRecordSerializer.Query(
304312
data={'application_id': application_id,
@@ -320,6 +328,7 @@ class Page(APIView):
320328
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
321329
dynamic_tag=keywords.get('application_id'))])
322330
)
331+
@log(menu='Application/Conversation Log', operate="Get the conversation history list by page")
323332
def get(self, request: Request, application_id: str, chat_id: str, current_page: int, page_size: int):
324333
return result.success(ChatRecordSerializer.Query(
325334
data={'application_id': application_id,
@@ -343,6 +352,7 @@ class Vote(APIView):
343352
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
344353
dynamic_tag=keywords.get('application_id'))])
345354
)
355+
@log(menu='Application/Conversation Log', operate="Like, Dislike")
346356
def put(self, request: Request, application_id: str, chat_id: str, chat_record_id: str):
347357
return result.success(ChatRecordSerializer.Vote(
348358
data={'vote_status': request.data.get('vote_status'), 'chat_id': chat_id,
@@ -363,6 +373,7 @@ class ChatRecordImprove(APIView):
363373
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE,
364374
dynamic_tag=keywords.get('application_id'))]
365375
))
376+
@log(menu='Application/Conversation Log', operate="Get the list of marked paragraphs")
366377
def get(self, request: Request, application_id: str, chat_id: str, chat_record_id: str):
367378
return result.success(ChatRecordSerializer.ChatRecordImprove(
368379
data={'chat_id': chat_id, 'chat_record_id': chat_record_id}).get())
@@ -390,6 +401,7 @@ class Improve(APIView):
390401
'dataset_id'))],
391402
compare=CompareConstants.AND
392403
), compare=CompareConstants.AND)
404+
@log(menu='Application/Conversation Log', operate="Annotation")
393405
def put(self, request: Request, application_id: str, chat_id: str, chat_record_id: str, dataset_id: str,
394406
document_id: str):
395407
return result.success(ChatRecordSerializer.Improve(
@@ -415,6 +427,7 @@ def put(self, request: Request, application_id: str, chat_id: str, chat_record_i
415427
'dataset_id'))],
416428
compare=CompareConstants.AND
417429
), compare=CompareConstants.AND)
430+
@log(menu='Application/Conversation Log', operate="Add to Knowledge Base")
418431
def post(self, request: Request, application_id: str, dataset_id: str):
419432
return result.success(ChatRecordSerializer.PostImprove().post_improve(request.data))
420433

@@ -440,6 +453,7 @@ class Operate(APIView):
440453
'dataset_id'))],
441454
compare=CompareConstants.AND
442455
), compare=CompareConstants.AND)
456+
@log(menu='Application/Conversation Log', operate="Delete a Annotation")
443457
def delete(self, request: Request, application_id: str, chat_id: str, chat_record_id: str,
444458
dataset_id: str,
445459
document_id: str, paragraph_id: str):

apps/common/log/log.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ def run(view, request, **kwargs):
7575
return func(view, request, **kwargs)
7676
except Exception as e:
7777
status = 500
78+
raise e
7879
finally:
7980
ip = get_ip_address(request)
8081
user = get_user(request)

apps/common/util/common.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,26 @@
2424
from ..models.db_model_manage import DBModelManage
2525

2626

27+
def encryption(message: str):
28+
"""
29+
加密敏感字段数据 加密方式是 如果密码是 1234567890 那么给前端则是 123******890
30+
:param message:
31+
:return:
32+
"""
33+
max_pre_len = 8
34+
max_post_len = 4
35+
message_len = len(message)
36+
pre_len = int(message_len / 5 * 2)
37+
post_len = int(message_len / 5 * 1)
38+
pre_str = "".join([message[index] for index in
39+
range(0, max_pre_len if pre_len > max_pre_len else 1 if pre_len <= 0 else int(pre_len))])
40+
end_str = "".join(
41+
[message[index] for index in
42+
range(message_len - (int(post_len) if pre_len < max_post_len else max_post_len), message_len)])
43+
content = "***************"
44+
return pre_str + content + end_str
45+
46+
2747
def sub_array(array: List, item_num=10):
2848
result = []
2949
temp = []

0 commit comments

Comments
 (0)