Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Generated by Django 6.1 on 2026-09-09 09:28

from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("application", "0017_application_is_portal_and_more"),
]

operations = [
migrations.AddField(
model_name="application",
name="default_model_setting",
field=models.JSONField(default=dict, verbose_name="默认模型"),
),
migrations.AddField(
model_name="applicationversion",
name="default_model_setting",
field=models.JSONField(default=dict, verbose_name="默认模型"),
),
migrations.AlterField(
model_name="applicationchatuserstats",
name="chat_user_type",
field=models.CharField(
choices=[
("ANONYMOUS_USER", "匿名用户"),
("CHAT_USER", "对话用户"),
("SYSTEM_API_KEY", "系统API_KEY"),
("APPLICATION_API_KEY", "应用API_KEY"),
("PLATFORM_USER", "平台用户"),
("SYSTEM_USER", "系统用户"),
],
default="ANONYMOUS_USER",
max_length=64,
verbose_name="对话用户类型",
),
),
migrations.AlterField(
model_name="chat",
name="chat_user_type",
field=models.CharField(
choices=[
("ANONYMOUS_USER", "匿名用户"),
("CHAT_USER", "对话用户"),
("SYSTEM_API_KEY", "系统API_KEY"),
("APPLICATION_API_KEY", "应用API_KEY"),
("PLATFORM_USER", "平台用户"),
("SYSTEM_USER", "系统用户"),
],
default="ANONYMOUS_USER",
max_length=64,
verbose_name="客户端类型",
),
),
migrations.AlterField(
model_name="chat",
name="execute_type",
field=models.CharField(
choices=[
("ANONYMOUS_USER", "匿名用户"),
("CHAT_USER", "对话用户"),
("SYSTEM_API_KEY", "系统API_KEY"),
("APPLICATION_API_KEY", "应用API_KEY"),
("PLATFORM_USER", "平台用户"),
("SYSTEM_USER", "系统用户"),
],
default="CHAT",
max_length=64,
verbose_name="执行类型",
),
),
]
2 changes: 2 additions & 0 deletions apps/application/models/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ class Application(AppModelMixin):
long_term_model_params_setting = models.JSONField(verbose_name="长期记忆模型参数相关设置", default=dict)
long_term_trigger_type = models.CharField(verbose_name="长期记忆触发类型", default="ROUND")
long_term_trigger_setting = models.JSONField(verbose_name="长期记忆触发配置", default=dict)
default_model_setting = models.JSONField(verbose_name="默认模型", default=dict)

@staticmethod
def get_default_model_prompt():
Expand Down Expand Up @@ -218,6 +219,7 @@ class ApplicationVersion(AppModelMixin):
long_term_trigger_type = models.CharField(verbose_name="长期记忆触发类型", default="ROUND")
long_term_trigger_setting = models.JSONField(verbose_name="长期记忆触发配置", default=dict)
knowledge_ids = models.JSONField(verbose_name="数据集id列表", default=list)
default_model_setting = models.JSONField(verbose_name="默认模型", default=dict)

class Meta:
db_table = "application_version"
6 changes: 6 additions & 0 deletions apps/application/serializers/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -426,6 +426,7 @@ def to_application_model(user_id: str, workspace_id: str, application: Dict):
file_upload_enable=application.get("file_upload_enable", False),
file_upload_setting=application.get("file_upload_setting", {}),
work_flow=default_workflow,
default_model_setting=application.get("default_model_setting", {}),
)

class SimplateRequest(serializers.Serializer):
Expand Down Expand Up @@ -714,6 +715,9 @@ class ApplicationEditSerializer(serializers.Serializer):
)
# 数据集相关设置
knowledge_setting = KnowledgeSettingSerializer(required=False, allow_null=True, label=_("Dataset settings"))

default_model_setting = serializers.DictField(required=False, label=_("Default model setting"))

# 模型相关设置
model_setting = ModelSettingSerializer(required=False, allow_null=True, label=_("Model setup"))
# 问题补全
Expand Down Expand Up @@ -1245,6 +1249,7 @@ def reset_application_version(application_version, application):
"skill_tool_ids": "skill_tool_ids",
"mcp_output_enable": "mcp_output_enable",
"type": "type",
"default_model_setting": "default_model_setting",
}

for version_field, app_field in update_field_dict.items():
Expand Down Expand Up @@ -1470,6 +1475,7 @@ def edit(self, instance: Dict, with_valid=True):
"clean_time",
"file_clean_time",
"folder_id",
"default_model_setting",
]
for update_key in update_keys:
if update_key in instance and instance.get(update_key) is not None:
Expand Down
2 changes: 2 additions & 0 deletions apps/chat/serializers/chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,7 @@ def chat_work_flow(self, application, instance: dict, base_to_response):
position = instance.get("position")
chunk_id = instance.get("chunk_id")
debug = self.data.get("debug", False)
default_model_setting = application.default_model_setting or {}

# 对话用户信息(asker 取自 form_data)
chat_user = resolve_chat_user(chat_user_id, chat_user_type, asker=form_data.get("asker"))
Expand Down Expand Up @@ -307,6 +308,7 @@ def chat_work_flow(self, application, instance: dict, base_to_response):
"audio_list": audio_list or [],
"video_list": video_list or [],
"other_list": other_list or [],
"default_model_setting": default_model_setting,
}

result_queue = queue.Queue()
Expand Down
Loading