UnisKB/apps/chat/api/chat_api.py

156 lines
3.8 KiB
Python
Raw Permalink Normal View History

2025-06-09 08:18:43 +00:00
# coding=utf-8
"""
@project: MaxKB
@Author虎虎
@file chat_api.py
@date2025/6/9 15:23
@desc:
"""
from drf_spectacular.types import OpenApiTypes
from drf_spectacular.utils import OpenApiParameter
2025-06-24 09:44:59 +00:00
from application.serializers.application_chat_record import ChatRecordSerializerModel
2025-09-08 09:04:55 +00:00
from chat.serializers.chat import ChatMessageSerializers, GeneratePromptSerializers
2025-07-03 09:38:14 +00:00
from chat.serializers.chat_record import HistoryChatModel, EditAbstractSerializer
2025-06-09 08:18:43 +00:00
from common.mixins.api_mixin import APIMixin
2025-07-03 09:38:14 +00:00
from common.result import ResultSerializer, ResultPageSerializer, DefaultResultSerializer
2025-06-09 08:18:43 +00:00
2025-09-08 09:04:55 +00:00
class PromptGenerateAPI(APIMixin):
@staticmethod
def get_parameters():
return [OpenApiParameter(
name="workspace_id",
description="工作空间id",
type=OpenApiTypes.STR,
location='path',
required=True,
),
OpenApiParameter(
name="model_id",
description="模型id",
type=OpenApiTypes.STR,
location='path',
required=True,
),
OpenApiParameter(
name="application_id",
description="应用id",
type=OpenApiTypes.STR,
location='path',
required=True,
),
2025-09-08 09:04:55 +00:00
]
@staticmethod
def get_request():
return GeneratePromptSerializers
2025-06-09 08:18:43 +00:00
class ChatAPI(APIMixin):
@staticmethod
def get_parameters():
return [OpenApiParameter(
name="chat_id",
description="对话id",
type=OpenApiTypes.STR,
location='path',
required=True,
)]
@staticmethod
def get_request():
return ChatMessageSerializers
2025-06-23 13:28:10 +00:00
class ApplicationCreateResponse(ResultSerializer):
def get_data(self):
2025-06-24 09:44:59 +00:00
return HistoryChatModel(many=True)
2025-06-23 13:28:10 +00:00
class PageApplicationCreateResponse(ResultPageSerializer):
def get_data(self):
2025-06-24 09:44:59 +00:00
return HistoryChatModel(many=True)
class ApplicationRecordResponse(ResultSerializer):
def get_data(self):
return ChatRecordSerializerModel(many=True)
class PageApplicationRecordResponse(ResultPageSerializer):
def get_data(self):
return ChatRecordSerializerModel(many=True)
2025-06-23 13:28:10 +00:00
class HistoricalConversationAPI(APIMixin):
@staticmethod
def get_parameters():
return []
@staticmethod
def get_response():
return ApplicationCreateResponse
class PageHistoricalConversationAPI(APIMixin):
@staticmethod
def get_parameters():
return []
@staticmethod
def get_response():
return PageApplicationCreateResponse
2025-06-24 09:44:59 +00:00
2025-07-03 09:38:14 +00:00
class HistoricalConversationOperateAPI(APIMixin):
@staticmethod
def get_parameters():
return [OpenApiParameter(
name="chat_id",
description="对话id",
type=OpenApiTypes.STR,
location='path',
required=True
)]
@staticmethod
def get_request():
return EditAbstractSerializer
@staticmethod
def get_response():
return DefaultResultSerializer
2025-06-24 09:44:59 +00:00
class HistoricalConversationRecordAPI(APIMixin):
@staticmethod
def get_parameters():
return [OpenApiParameter(
name="chat_id",
description="对话id",
type=OpenApiTypes.STR,
location='path',
required=True,
)]
@staticmethod
def get_response():
return ApplicationRecordResponse
class PageHistoricalConversationRecordAPI(APIMixin):
@staticmethod
def get_parameters():
return [OpenApiParameter(
name="chat_id",
description="对话id",
type=OpenApiTypes.STR,
location='path',
required=True,
)]
@staticmethod
def get_response():
return PageApplicationRecordResponse