From eb60a0de2ec1188c7bdc9d8569612fcbbd447324 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Mon, 26 Aug 2024 18:06:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DAI=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E5=8F=82=E6=95=B0,=E5=88=87=E6=8D=A2=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E6=97=B6=E5=8F=82=E6=95=B0=E4=BF=AE=E6=94=B9=E4=B8=BA=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E6=A8=A1=E5=9E=8B=E7=9A=84=E9=BB=98=E8=AE=A4=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serializers/provider_serializers.py | 31 +++++++++++++------ apps/setting/views/model.py | 2 +- .../views/application/ApplicationSetting.vue | 5 ++- .../component/AIModeParamSettingDialog.vue | 18 +++++++++-- ui/src/workflow/nodes/ai-chat-node/index.vue | 7 +++-- ui/src/workflow/nodes/question-node/index.vue | 8 +++-- 6 files changed, 53 insertions(+), 18 deletions(-) diff --git a/apps/setting/serializers/provider_serializers.py b/apps/setting/serializers/provider_serializers.py index e032a0dcb..fcd04e9f6 100644 --- a/apps/setting/serializers/provider_serializers.py +++ b/apps/setting/serializers/provider_serializers.py @@ -23,7 +23,7 @@ from common.exception.app_exception import AppApiException from common.util.field_message import ErrMessage from common.util.rsa_util import rsa_long_decrypt, rsa_long_encrypt from dataset.models import DataSet -from setting.models.model_management import Model, Status +from setting.models.model_management import Model, Status, PermissionType from setting.models_provider import get_model, get_model_credential from setting.models_provider.base_model_provider import ValidCode, DownModelChunkStatus from setting.models_provider.constants.model_provider_constants import ModelProvideConstants @@ -208,6 +208,27 @@ class ModelSerializer(serializers.Serializer): credential), 'permission_type': model.permission_type} + class ModelParams(serializers.Serializer): + id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid("模型id")) + + user_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid("用户id")) + + def is_valid(self, *, raise_exception=False): + super().is_valid(raise_exception=True) + model = QuerySet(Model).filter(id=self.data.get("id")).first() + if model is None: + raise AppApiException(500, '模型不存在') + if model.permission_type == PermissionType.PRIVATE and self.data.get('user_id') != str(model.user_id): + raise AppApiException(500, '没有权限访问到此模型') + + def get_model_params(self, with_valid=True): + if with_valid: + self.is_valid(raise_exception=True) + model_id = self.data.get('id') + model = QuerySet(Model).filter(id=model_id).first() + credential = get_model_credential(model.provider, model.model_type, model.model_name) + return credential.get_model_params_setting_form(model.model_name).to_form_list() + class Operate(serializers.Serializer): id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid("模型id")) @@ -235,14 +256,6 @@ class ModelSerializer(serializers.Serializer): 'meta': model.meta } - def get_model_params(self, with_valid=True): - if with_valid: - self.is_valid(raise_exception=True) - model_id = self.data.get('id') - model = QuerySet(Model).filter(id=model_id).first() - credential = get_model_credential(model.provider, model.model_type, model.model_name) - return credential.get_model_params_setting_form(model.model_name).to_form_list() - def delete(self, with_valid=True): if with_valid: self.is_valid(raise_exception=True) diff --git a/apps/setting/views/model.py b/apps/setting/views/model.py index 2c0ba3bca..d57a19471 100644 --- a/apps/setting/views/model.py +++ b/apps/setting/views/model.py @@ -92,7 +92,7 @@ class Model(APIView): @has_permissions(PermissionConstants.MODEL_READ) def get(self, request: Request, model_id: str): return result.success( - ModelSerializer.Operate(data={'id': model_id, 'user_id': request.user.id}).get_model_params()) + ModelSerializer.ModelParams(data={'id': model_id, 'user_id': request.user.id}).get_model_params()) class Operate(APIView): authentication_classes = [TokenAuth] diff --git a/ui/src/views/application/ApplicationSetting.vue b/ui/src/views/application/ApplicationSetting.vue index f9b92f289..f202cf59f 100644 --- a/ui/src/views/application/ApplicationSetting.vue +++ b/ui/src/views/application/ApplicationSetting.vue @@ -79,6 +79,7 @@ { } }) } - +const model_change = (model_id: string) => { + AIModeParamSettingDialogRef.value?.reset_default(model_id) +} const openAIParamSettingDialog = () => { const model_id = applicationForm.value.model_id if (!model_id) { diff --git a/ui/src/views/application/component/AIModeParamSettingDialog.vue b/ui/src/views/application/component/AIModeParamSettingDialog.vue index ec4ac9305..cf15e08bd 100644 --- a/ui/src/views/application/component/AIModeParamSettingDialog.vue +++ b/ui/src/views/application/component/AIModeParamSettingDialog.vue @@ -32,8 +32,6 @@