fix: 打开临时会话时,需要区分应用用户

This commit is contained in:
shaohuzhang1 2024-03-06 18:11:11 +08:00
parent ee94076c92
commit a106ff09d0
2 changed files with 17 additions and 3 deletions

View File

@ -158,6 +158,8 @@ class ChatSerializers(serializers.Serializer):
class OpenTempChat(serializers.Serializer):
user_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid("用户id"))
id = serializers.UUIDField(required=False, allow_null=True,
error_messages=ErrMessage.uuid("应用id"))
model_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid("模型id"))
multiple_rounds_dialogue = serializers.BooleanField(required=True,
@ -174,14 +176,24 @@ class ChatSerializers(serializers.Serializer):
def is_valid(self, *, raise_exception=False):
super().is_valid(raise_exception=True)
user_id = self.get_user_id()
ModelDatasetAssociation(
data={'user_id': self.data.get('user_id'), 'model_id': self.data.get('model_id'),
data={'user_id': user_id, 'model_id': self.data.get('model_id'),
'dataset_id_list': self.data.get('dataset_id_list')}).is_valid()
return user_id
def get_user_id(self):
if 'id' in self.data and self.data.get('id') is not None:
application = QuerySet(Application).filter(id=self.data.get('id')).first()
if application is None:
raise AppApiException(500, "应用不存在")
return application.user_id
return self.data.get('user_id')
def open(self):
self.is_valid(raise_exception=True)
user_id = self.is_valid(raise_exception=True)
chat_id = str(uuid.uuid1())
model = QuerySet(Model).filter(user_id=self.data.get('user_id'), id=self.data.get('model_id')).first()
model = QuerySet(Model).filter(user_id=user_id, id=self.data.get('model_id')).first()
if model is None:
raise AppApiException(500, "模型不存在")
dataset_id_list = self.data.get('dataset_id_list')

View File

@ -79,6 +79,8 @@ class ChatApi(ApiMixin):
required=['model_id', 'multiple_rounds_dialogue', 'dataset_setting', 'model_setting',
'problem_optimization'],
properties={
'id': openapi.Schema(type=openapi.TYPE_STRING, title="应用id",
description="应用id,修改的时候传,创建的时候不传"),
'model_id': openapi.Schema(type=openapi.TYPE_STRING, title="模型id", description="模型id"),
'dataset_id_list': openapi.Schema(type=openapi.TYPE_ARRAY,
items=openapi.Schema(type=openapi.TYPE_STRING),