mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 10:12:51 +00:00
feat: 对话日志,删除
This commit is contained in:
parent
5db9ce45c3
commit
9ed8aa91bb
|
|
@ -36,6 +36,16 @@ chat_cache = cache
|
|||
|
||||
|
||||
class ChatSerializers(serializers.Serializer):
|
||||
class Operate(serializers.Serializer):
|
||||
chat_id = serializers.UUIDField(required=True)
|
||||
application_id = serializers.UUIDField(required=True)
|
||||
|
||||
def delete(self, with_valid=True):
|
||||
if with_valid:
|
||||
self.is_valid(raise_exception=True)
|
||||
QuerySet(Chat).filter(id=self.data.get('chat_id'), application_id=self.data.get('application_id')).delete()
|
||||
return True
|
||||
|
||||
class Query(serializers.Serializer):
|
||||
abstract = serializers.CharField(required=False)
|
||||
history_day = serializers.IntegerField(required=True)
|
||||
|
|
@ -48,7 +58,10 @@ class ChatSerializers(serializers.Serializer):
|
|||
|
||||
def get_query_set(self):
|
||||
end_time = self.get_end_time()
|
||||
return QuerySet(Chat).filter(application_id=self.data.get("application_id"), create_time__gte=end_time)
|
||||
query_dict = {'application_id': self.data.get("application_id"), 'create_time__gte': end_time}
|
||||
if 'abstract' in self.data and self.data.get('abstract') is not None:
|
||||
query_dict['abstract'] = self.data.get('abstract')
|
||||
return QuerySet(Chat).filter(**query_dict)
|
||||
|
||||
def list(self, with_valid=True):
|
||||
if with_valid:
|
||||
|
|
|
|||
|
|
@ -61,7 +61,9 @@ class ChatApi(ApiMixin):
|
|||
in_=openapi.IN_QUERY,
|
||||
type=openapi.TYPE_NUMBER,
|
||||
required=True,
|
||||
description='历史天数')
|
||||
description='历史天数'),
|
||||
openapi.Parameter(name='abstract', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=False,
|
||||
description="摘要")
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ urlpatterns = [
|
|||
path("application/chat/open", views.ChatView.OpenTemp.as_view()),
|
||||
path('application/<str:application_id>/chat', views.ChatView.as_view(), name='chats'),
|
||||
path('application/<str:application_id>/chat/<int:current_page>/<int:page_size>', views.ChatView.Page.as_view()),
|
||||
path('application/<str:application_id>/chat/<chat_id>', views.ChatView.Operate.as_view()),
|
||||
path('application/<str:application_id>/chat/<chat_id>/chat_record/', views.ChatView.ChatRecord.as_view()),
|
||||
path('application/<str:application_id>/chat/<chat_id>/chat_record/<int:current_page>/<int:page_size>',
|
||||
views.ChatView.ChatRecord.Page.as_view()),
|
||||
|
|
|
|||
|
|
@ -90,6 +90,26 @@ class ChatView(APIView):
|
|||
data={**query_params_to_single_dict(request.query_params), 'application_id': application_id,
|
||||
'user_id': request.user.id}).list())
|
||||
|
||||
class Operate(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
|
||||
@action(methods=['DELETE'], detail=False)
|
||||
@swagger_auto_schema(operation_summary="删除对话",
|
||||
operation_id="删除对话",
|
||||
tags=["应用/对话日志"])
|
||||
@has_permissions(ViewPermission(
|
||||
[RoleConstants.ADMIN, RoleConstants.USER],
|
||||
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
|
||||
dynamic_tag=keywords.get('application_id'))],
|
||||
compare=CompareConstants.AND), lambda r, k: Permission(group=Group.APPLICATION, operate=Operate.DELETE,
|
||||
dynamic_tag=k.get('application_id')),
|
||||
compare=CompareConstants.AND)
|
||||
def delete(self, request: Request, application_id: str, chat_id: str):
|
||||
return result.success(
|
||||
ChatSerializers.Operate(
|
||||
data={'application_id': application_id, 'user_id': request.user.id,
|
||||
'chat_id': chat_id}).delete())
|
||||
|
||||
class Page(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue