feat: add new fields to Application model and update serializer mappings
--bug=1062164 --user=刘瑞斌 【应用】-简单应用中添加MCP、工具后,复制应用生成的应用中没有引用 MCP、工具 https://www.tapd.cn/62980211/s/1778474v3.2
parent
10ded1b7d1
commit
e9156f7138
|
|
@ -7,7 +7,6 @@
|
||||||
@desc:
|
@desc:
|
||||||
"""
|
"""
|
||||||
import asyncio
|
import asyncio
|
||||||
import datetime
|
|
||||||
import hashlib
|
import hashlib
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
@ -21,8 +20,8 @@ from django.core import validators
|
||||||
from django.db import models, transaction
|
from django.db import models, transaction
|
||||||
from django.db.models import QuerySet, Q
|
from django.db.models import QuerySet, Q
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.utils.translation import gettext_lazy as _
|
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
from langchain_mcp_adapters.client import MultiServerMCPClient
|
from langchain_mcp_adapters.client import MultiServerMCPClient
|
||||||
from rest_framework import serializers, status
|
from rest_framework import serializers, status
|
||||||
from rest_framework.utils.formatting import lazy_format
|
from rest_framework.utils.formatting import lazy_format
|
||||||
|
|
@ -256,29 +255,39 @@ class ApplicationCreateSerializer(serializers.Serializer):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def to_application_model(user_id: str, workspace_id: str, application: Dict):
|
def to_application_model(user_id: str, workspace_id: str, application: Dict):
|
||||||
return Application(id=uuid.uuid7(), name=application.get('name'), desc=application.get('desc'),
|
return Application(
|
||||||
workspace_id=workspace_id,
|
id=uuid.uuid7(),
|
||||||
prologue=application.get('prologue'),
|
name=application.get('name'),
|
||||||
dialogue_number=application.get('dialogue_number', 0),
|
desc=application.get('desc'),
|
||||||
user_id=user_id, model_id=application.get('model_id'),
|
workspace_id=workspace_id,
|
||||||
folder_id=application.get('folder_id', application.get('workspace_id')),
|
prologue=application.get('prologue'),
|
||||||
knowledge_setting=application.get('knowledge_setting'),
|
dialogue_number=application.get('dialogue_number', 0),
|
||||||
model_setting=application.get('model_setting'),
|
user_id=user_id, model_id=application.get('model_id'),
|
||||||
problem_optimization=application.get('problem_optimization'),
|
folder_id=application.get('folder_id', application.get('workspace_id')),
|
||||||
type=ApplicationTypeChoices.SIMPLE,
|
knowledge_setting=application.get('knowledge_setting'),
|
||||||
model_params_setting=application.get('model_params_setting', {}),
|
model_setting=application.get('model_setting'),
|
||||||
problem_optimization_prompt=application.get('problem_optimization_prompt', None),
|
problem_optimization=application.get('problem_optimization'),
|
||||||
stt_model_enable=application.get('stt_model_enable', False),
|
type=ApplicationTypeChoices.SIMPLE,
|
||||||
stt_model_id=application.get('stt_model', None),
|
model_params_setting=application.get('model_params_setting', {}),
|
||||||
stt_autosend=application.get('stt_autosend', False),
|
problem_optimization_prompt=application.get('problem_optimization_prompt', None),
|
||||||
tts_model_id=application.get('tts_model', None),
|
stt_model_enable=application.get('stt_model_enable', False),
|
||||||
tts_model_enable=application.get('tts_model_enable', False),
|
stt_model_id=application.get('stt_model', None),
|
||||||
tts_model_params_setting=application.get('tts_model_params_setting', {}),
|
stt_autosend=application.get('stt_autosend', False),
|
||||||
tts_type=application.get('tts_type', 'BROWSER'),
|
tts_model_id=application.get('tts_model', None),
|
||||||
file_upload_enable=application.get('file_upload_enable', False),
|
tts_model_enable=application.get('tts_model_enable', False),
|
||||||
file_upload_setting=application.get('file_upload_setting', {}),
|
tts_model_params_setting=application.get('tts_model_params_setting', {}),
|
||||||
work_flow={}
|
tts_type=application.get('tts_type', 'BROWSER'),
|
||||||
)
|
file_upload_enable=application.get('file_upload_enable', False),
|
||||||
|
file_upload_setting=application.get('file_upload_setting', {}),
|
||||||
|
work_flow={},
|
||||||
|
mcp_enable=application.get('mcp_enable', False),
|
||||||
|
mcp_tool_ids=application.get('mcp_tool_ids', []),
|
||||||
|
mcp_servers=application.get('mcp_servers'),
|
||||||
|
mcp_source=application.get('mcp_source', 'referencing'),
|
||||||
|
tool_enable=application.get('tool_enable', False),
|
||||||
|
tool_ids=application.get('tool_ids', []),
|
||||||
|
mcp_output_enable=application.get('mcp_output_enable', False),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ApplicationQueryRequest(serializers.Serializer):
|
class ApplicationQueryRequest(serializers.Serializer):
|
||||||
|
|
@ -708,7 +717,8 @@ class ApplicationOperateSerializer(serializers.Serializer):
|
||||||
'tts_autoplay': 'tts_autoplay', 'stt_autosend': 'stt_autosend', 'file_upload_enable': 'file_upload_enable',
|
'tts_autoplay': 'tts_autoplay', 'stt_autosend': 'stt_autosend', 'file_upload_enable': 'file_upload_enable',
|
||||||
'file_upload_setting': 'file_upload_setting',
|
'file_upload_setting': 'file_upload_setting',
|
||||||
'mcp_enable': 'mcp_enable', 'mcp_tool_ids': 'mcp_tool_ids', 'mcp_servers': 'mcp_servers',
|
'mcp_enable': 'mcp_enable', 'mcp_tool_ids': 'mcp_tool_ids', 'mcp_servers': 'mcp_servers',
|
||||||
'mcp_source': 'mcp_source', 'tool_enable': 'tool_enable', 'tool_ids': 'tool_ids', 'mcp_output_enable': 'mcp_output_enable',
|
'mcp_source': 'mcp_source', 'tool_enable': 'tool_enable', 'tool_ids': 'tool_ids',
|
||||||
|
'mcp_output_enable': 'mcp_output_enable',
|
||||||
'type': 'type'
|
'type': 'type'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -750,7 +760,7 @@ class ApplicationOperateSerializer(serializers.Serializer):
|
||||||
work_flow_version.save()
|
work_flow_version.save()
|
||||||
access_token = hashlib.md5(
|
access_token = hashlib.md5(
|
||||||
str(uuid.uuid7()).encode()).hexdigest()[
|
str(uuid.uuid7()).encode()).hexdigest()[
|
||||||
8:24]
|
8:24]
|
||||||
application_access_token = QuerySet(ApplicationAccessToken).filter(
|
application_access_token = QuerySet(ApplicationAccessToken).filter(
|
||||||
application_id=application.id).first()
|
application_id=application.id).first()
|
||||||
if application_access_token is None:
|
if application_access_token is None:
|
||||||
|
|
@ -833,8 +843,10 @@ class ApplicationOperateSerializer(serializers.Serializer):
|
||||||
'knowledge_setting', 'model_setting', 'problem_optimization', 'dialogue_number',
|
'knowledge_setting', 'model_setting', 'problem_optimization', 'dialogue_number',
|
||||||
'stt_model_id', 'tts_model_id', 'tts_model_enable', 'stt_model_enable', 'tts_type',
|
'stt_model_id', 'tts_model_id', 'tts_model_enable', 'stt_model_enable', 'tts_type',
|
||||||
'tts_autoplay', 'stt_autosend', 'file_upload_enable', 'file_upload_setting',
|
'tts_autoplay', 'stt_autosend', 'file_upload_enable', 'file_upload_setting',
|
||||||
'api_key_is_active', 'icon', 'work_flow', 'model_params_setting', 'tts_model_params_setting', 'stt_model_params_setting',
|
'api_key_is_active', 'icon', 'work_flow', 'model_params_setting', 'tts_model_params_setting',
|
||||||
'mcp_enable', 'mcp_tool_ids', 'mcp_servers', 'mcp_source', 'tool_enable', 'tool_ids', 'mcp_output_enable',
|
'stt_model_params_setting',
|
||||||
|
'mcp_enable', 'mcp_tool_ids', 'mcp_servers', 'mcp_source', 'tool_enable', 'tool_ids',
|
||||||
|
'mcp_output_enable',
|
||||||
'problem_optimization_prompt', 'clean_time', 'folder_id']
|
'problem_optimization_prompt', 'clean_time', 'folder_id']
|
||||||
for update_key in update_keys:
|
for update_key in update_keys:
|
||||||
if update_key in instance and instance.get(update_key) is not None:
|
if update_key in instance and instance.get(update_key) is not None:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue