|
7 | 7 | @desc: |
8 | 8 | """ |
9 | 9 | import asyncio |
10 | | -import datetime |
11 | 10 | import hashlib |
12 | 11 | import json |
13 | 12 | import os |
|
21 | 20 | from django.db import models, transaction |
22 | 21 | from django.db.models import QuerySet, Q |
23 | 22 | from django.http import HttpResponse |
24 | | -from django.utils.translation import gettext_lazy as _ |
25 | 23 | from django.utils import timezone |
| 24 | +from django.utils.translation import gettext_lazy as _ |
26 | 25 | from langchain_mcp_adapters.client import MultiServerMCPClient |
27 | 26 | from rest_framework import serializers, status |
28 | 27 | from rest_framework.utils.formatting import lazy_format |
@@ -256,29 +255,39 @@ def is_valid(self, *, user_id=None, raise_exception=False): |
256 | 255 |
|
257 | 256 | @staticmethod |
258 | 257 | def to_application_model(user_id: str, workspace_id: str, application: Dict): |
259 | | - return Application(id=uuid.uuid7(), name=application.get('name'), desc=application.get('desc'), |
260 | | - workspace_id=workspace_id, |
261 | | - prologue=application.get('prologue'), |
262 | | - dialogue_number=application.get('dialogue_number', 0), |
263 | | - user_id=user_id, model_id=application.get('model_id'), |
264 | | - folder_id=application.get('folder_id', application.get('workspace_id')), |
265 | | - knowledge_setting=application.get('knowledge_setting'), |
266 | | - model_setting=application.get('model_setting'), |
267 | | - problem_optimization=application.get('problem_optimization'), |
268 | | - type=ApplicationTypeChoices.SIMPLE, |
269 | | - model_params_setting=application.get('model_params_setting', {}), |
270 | | - problem_optimization_prompt=application.get('problem_optimization_prompt', None), |
271 | | - stt_model_enable=application.get('stt_model_enable', False), |
272 | | - stt_model_id=application.get('stt_model', None), |
273 | | - stt_autosend=application.get('stt_autosend', False), |
274 | | - tts_model_id=application.get('tts_model', None), |
275 | | - tts_model_enable=application.get('tts_model_enable', False), |
276 | | - tts_model_params_setting=application.get('tts_model_params_setting', {}), |
277 | | - tts_type=application.get('tts_type', 'BROWSER'), |
278 | | - file_upload_enable=application.get('file_upload_enable', False), |
279 | | - file_upload_setting=application.get('file_upload_setting', {}), |
280 | | - work_flow={} |
281 | | - ) |
| 258 | + return Application( |
| 259 | + id=uuid.uuid7(), |
| 260 | + name=application.get('name'), |
| 261 | + desc=application.get('desc'), |
| 262 | + workspace_id=workspace_id, |
| 263 | + prologue=application.get('prologue'), |
| 264 | + dialogue_number=application.get('dialogue_number', 0), |
| 265 | + user_id=user_id, model_id=application.get('model_id'), |
| 266 | + folder_id=application.get('folder_id', application.get('workspace_id')), |
| 267 | + knowledge_setting=application.get('knowledge_setting'), |
| 268 | + model_setting=application.get('model_setting'), |
| 269 | + problem_optimization=application.get('problem_optimization'), |
| 270 | + type=ApplicationTypeChoices.SIMPLE, |
| 271 | + model_params_setting=application.get('model_params_setting', {}), |
| 272 | + problem_optimization_prompt=application.get('problem_optimization_prompt', None), |
| 273 | + stt_model_enable=application.get('stt_model_enable', False), |
| 274 | + stt_model_id=application.get('stt_model', None), |
| 275 | + stt_autosend=application.get('stt_autosend', False), |
| 276 | + tts_model_id=application.get('tts_model', None), |
| 277 | + tts_model_enable=application.get('tts_model_enable', False), |
| 278 | + tts_model_params_setting=application.get('tts_model_params_setting', {}), |
| 279 | + tts_type=application.get('tts_type', 'BROWSER'), |
| 280 | + file_upload_enable=application.get('file_upload_enable', False), |
| 281 | + file_upload_setting=application.get('file_upload_setting', {}), |
| 282 | + work_flow={}, |
| 283 | + mcp_enable=application.get('mcp_enable', False), |
| 284 | + mcp_tool_ids=application.get('mcp_tool_ids', []), |
| 285 | + mcp_servers=application.get('mcp_servers'), |
| 286 | + mcp_source=application.get('mcp_source', 'referencing'), |
| 287 | + tool_enable=application.get('tool_enable', False), |
| 288 | + tool_ids=application.get('tool_ids', []), |
| 289 | + mcp_output_enable=application.get('mcp_output_enable', False), |
| 290 | + ) |
282 | 291 |
|
283 | 292 |
|
284 | 293 | class ApplicationQueryRequest(serializers.Serializer): |
@@ -708,7 +717,8 @@ def reset_application_version(application_version, application): |
708 | 717 | 'tts_autoplay': 'tts_autoplay', 'stt_autosend': 'stt_autosend', 'file_upload_enable': 'file_upload_enable', |
709 | 718 | 'file_upload_setting': 'file_upload_setting', |
710 | 719 | 'mcp_enable': 'mcp_enable', 'mcp_tool_ids': 'mcp_tool_ids', 'mcp_servers': 'mcp_servers', |
711 | | - 'mcp_source': 'mcp_source', 'tool_enable': 'tool_enable', 'tool_ids': 'tool_ids', 'mcp_output_enable': 'mcp_output_enable', |
| 720 | + 'mcp_source': 'mcp_source', 'tool_enable': 'tool_enable', 'tool_ids': 'tool_ids', |
| 721 | + 'mcp_output_enable': 'mcp_output_enable', |
712 | 722 | 'type': 'type' |
713 | 723 | } |
714 | 724 |
|
@@ -750,7 +760,7 @@ def publish(self, instance, with_valid=True): |
750 | 760 | work_flow_version.save() |
751 | 761 | access_token = hashlib.md5( |
752 | 762 | str(uuid.uuid7()).encode()).hexdigest()[ |
753 | | - 8:24] |
| 763 | + 8:24] |
754 | 764 | application_access_token = QuerySet(ApplicationAccessToken).filter( |
755 | 765 | application_id=application.id).first() |
756 | 766 | if application_access_token is None: |
@@ -833,8 +843,10 @@ def edit(self, instance: Dict, with_valid=True): |
833 | 843 | 'knowledge_setting', 'model_setting', 'problem_optimization', 'dialogue_number', |
834 | 844 | 'stt_model_id', 'tts_model_id', 'tts_model_enable', 'stt_model_enable', 'tts_type', |
835 | 845 | 'tts_autoplay', 'stt_autosend', 'file_upload_enable', 'file_upload_setting', |
836 | | - 'api_key_is_active', 'icon', 'work_flow', 'model_params_setting', 'tts_model_params_setting', 'stt_model_params_setting', |
837 | | - 'mcp_enable', 'mcp_tool_ids', 'mcp_servers', 'mcp_source', 'tool_enable', 'tool_ids', 'mcp_output_enable', |
| 846 | + 'api_key_is_active', 'icon', 'work_flow', 'model_params_setting', 'tts_model_params_setting', |
| 847 | + 'stt_model_params_setting', |
| 848 | + 'mcp_enable', 'mcp_tool_ids', 'mcp_servers', 'mcp_source', 'tool_enable', 'tool_ids', |
| 849 | + 'mcp_output_enable', |
838 | 850 | 'problem_optimization_prompt', 'clean_time', 'folder_id'] |
839 | 851 | for update_key in update_keys: |
840 | 852 | if update_key in instance and instance.get(update_key) is not None: |
|
0 commit comments