fix: 设置模型参数默认值,允许用户不设置模型参数 (#1750)

This commit is contained in:
shaohuzhang1 2024-12-04 10:30:45 +08:00 committed by GitHub
parent 70fcb9ca66
commit 7d938f9e60
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 11 deletions

View File

@ -0,0 +1,19 @@
# Generated by Django 4.2.15 on 2024-10-15 14:49
from django.db import migrations, models
sql = """
UPDATE "public"."model"
SET "model_params_form" = '[{"attrs": {"max": 1, "min": 0.1, "step": 0.01, "precision": 2, "show-input": true, "show-input-controls": false}, "field": "temperature", "label": {"attrs": {"tooltip": "较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定"}, "label": "温度", "input_type": "TooltipLabel", "props_info": {}}, "required": true, "input_type": "Slider", "props_info": {}, "trigger_type": "OPTION_LIST", "default_value": 0.5, "relation_show_field_dict": {}, "relation_trigger_field_dict": {}}, {"attrs": {"max": 100000, "min": 1, "step": 1, "precision": 0, "show-input": true, "show-input-controls": false}, "field": "max_tokens", "label": {"attrs": {"tooltip": "指定模型可生成的最大token个数"}, "label": "输出最大Tokens", "input_type": "TooltipLabel", "props_info": {}}, "required": true, "input_type": "Slider", "props_info": {}, "trigger_type": "OPTION_LIST", "default_value": 4096, "relation_show_field_dict": {}, "relation_trigger_field_dict": {}}]'
WHERE jsonb_array_length(model_params_form)=0
"""
class Migration(migrations.Migration):
dependencies = [
('setting', '0008_modelparam'),
]
operations = [
migrations.RunSQL(sql)
]

View File

@ -79,7 +79,6 @@ class ModelSerializer(serializers.Serializer):
create_user = serializers.CharField(required=False, error_messages=ErrMessage.char("创建者"))
def list(self, with_valid):
if with_valid:
self.is_valid(raise_exception=True)
@ -92,7 +91,8 @@ class ModelSerializer(serializers.Serializer):
model_query_set = QuerySet(Model).filter(Q(user_id=create_user))
# 当前用户能查看其他人的模型,只能查看公开的
else:
model_query_set = QuerySet(Model).filter((Q(user_id=self.data.get('create_user')) & Q(permission_type='PUBLIC')))
model_query_set = QuerySet(Model).filter(
(Q(user_id=self.data.get('create_user')) & Q(permission_type='PUBLIC')))
else:
model_query_set = QuerySet(Model).filter((Q(user_id=user_id) | Q(permission_type='PUBLIC')))
query_params = {}
@ -107,11 +107,11 @@ class ModelSerializer(serializers.Serializer):
if self.data.get('permission_type') is not None:
query_params['permission_type'] = self.data.get('permission_type')
return [
{'id': str(model.id), 'provider': model.provider, 'name': model.name, 'model_type': model.model_type,
'model_name': model.model_name, 'status': model.status, 'meta': model.meta,
'permission_type': model.permission_type, 'user_id': model.user_id, 'username': model.user.username} for model in
'permission_type': model.permission_type, 'user_id': model.user_id, 'username': model.user.username}
for model in
model_query_set.filter(**query_params).order_by("-create_time")]
class Edit(serializers.Serializer):
@ -243,14 +243,7 @@ class ModelSerializer(serializers.Serializer):
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)
# 已经保存过的模型参数表单
if model.model_params_form is not None and len(model.model_params_form) > 0:
return model.model_params_form
# 没有保存过的LLM类型的
if credential.get_model_params_setting_form(model.model_name) is not None:
return credential.get_model_params_setting_form(model.model_name).to_form_list()
# 其他的
return model.model_params_form
class ModelParamsForm(serializers.Serializer):