From 98a0629b149889b1a809a57da379cce97011e239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 09:47:37 +0800 Subject: [PATCH 01/12] fix: Fix the keyword for `raise exception` --- .../step_node/ai_chat_step_node/impl/base_chat_node.py | 2 +- .../flow/step_node/mcp_node/impl/base_mcp_node.py | 4 ++-- apps/chat/serializers/chat_record.py | 3 +-- apps/common/handle/base_parse_qa_handle.py | 8 ++++---- apps/common/handle/impl/qa/csv_parse_qa_handle.py | 2 +- apps/oss/serializers/file.py | 4 ++-- ui/src/locales/lang/en-US/workflow.ts | 2 +- ui/src/workflow/nodes/intent-classify-node/index.ts | 5 ++--- 8 files changed, 14 insertions(+), 16 deletions(-) diff --git a/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py b/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py index d1d76b7d98e..1e15cb37aa1 100644 --- a/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py +++ b/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py @@ -364,7 +364,7 @@ def handle_variables(self, tool_params): tool_params[k] = self.workflow_manage.generate_prompt(tool_params[k]) elif type(v) == dict: self.handle_variables(v) - elif (type(v) == list) and len(v) > 0 and type(v[0]) == str: + elif type(v) == list and len(v) > 0 and type(v[0]) == str: tool_params[k] = self.get_reference_content(v) return tool_params diff --git a/apps/application/flow/step_node/mcp_node/impl/base_mcp_node.py b/apps/application/flow/step_node/mcp_node/impl/base_mcp_node.py index d83a3cdc05f..bf236e51763 100644 --- a/apps/application/flow/step_node/mcp_node/impl/base_mcp_node.py +++ b/apps/application/flow/step_node/mcp_node/impl/base_mcp_node.py @@ -51,9 +51,9 @@ def handle_variables(self, tool_params): for k, v in tool_params.items(): if type(v) == str: tool_params[k] = self.workflow_manage.generate_prompt(tool_params[k]) - if type(v) == dict: + elif type(v) == dict: self.handle_variables(v) - if (type(v) == list) and (type(v[0]) == str): + elif (type(v) == list) and len(v) > 0 and (type(v[0]) == str): tool_params[k] = self.get_reference_content(v) return tool_params diff --git a/apps/chat/serializers/chat_record.py b/apps/chat/serializers/chat_record.py index d094216f53f..ee6d446dd57 100644 --- a/apps/chat/serializers/chat_record.py +++ b/apps/chat/serializers/chat_record.py @@ -75,8 +75,7 @@ def vote(self, instance: Dict, with_valid=True): chat_record_details_model.vote_status = VoteChoices.STAR chat_record_details_model.vote_reason = vote_reason chat_record_details_model.vote_other_content = vote_other_content - - if vote_status == VoteChoices.TRAMPLE: + elif vote_status == VoteChoices.TRAMPLE: # 点踩 chat_record_details_model.vote_status = VoteChoices.TRAMPLE chat_record_details_model.vote_reason = vote_reason diff --git a/apps/common/handle/base_parse_qa_handle.py b/apps/common/handle/base_parse_qa_handle.py index 8cd1cd1cdb2..eb9a84d5623 100644 --- a/apps/common/handle/base_parse_qa_handle.py +++ b/apps/common/handle/base_parse_qa_handle.py @@ -22,7 +22,7 @@ def get_title_row_index_dict(title_row_list): title_row_index_dict = {} if len(title_row_list) == 1: title_row_index_dict['content'] = 0 - elif len(title_row_list) == 1: + elif len(title_row_list) == 2: title_row_index_dict['title'] = 0 title_row_index_dict['content'] = 1 else: @@ -33,11 +33,11 @@ def get_title_row_index_dict(title_row_list): title_row = title_row_list[index] if title_row is None: title_row = '' - if title_row.startswith('分段标题'): + elif title_row.startswith('分段标题'): title_row_index_dict['title'] = index - if title_row.startswith('分段内容'): + elif title_row.startswith('分段内容'): title_row_index_dict['content'] = index - if title_row.startswith('问题'): + elif title_row.startswith('问题'): title_row_index_dict['problem_list'] = index return title_row_index_dict diff --git a/apps/common/handle/impl/qa/csv_parse_qa_handle.py b/apps/common/handle/impl/qa/csv_parse_qa_handle.py index e264ea391e0..e0a7da601f7 100644 --- a/apps/common/handle/impl/qa/csv_parse_qa_handle.py +++ b/apps/common/handle/impl/qa/csv_parse_qa_handle.py @@ -18,7 +18,7 @@ def read_csv_standard(file_path): data = [] - with open(file_path, 'r') as file: + with open(file_path, 'r', encoding='utf-8') as file: reader = csv.reader(file) for row in reader: data.append(row) diff --git a/apps/oss/serializers/file.py b/apps/oss/serializers/file.py index 4e5b7b1f7b2..63ae28eedaa 100644 --- a/apps/oss/serializers/file.py +++ b/apps/oss/serializers/file.py @@ -219,9 +219,9 @@ def _is_unsafe_ip(self, ip: str) -> bool: def get_url_content(url, application_id: str): application = Application.objects.filter(id=application_id).first() if application is None: - return AppApiException(500, _('Application does not exist')) + raise AppApiException(500, _('Application does not exist')) if not application.file_upload_enable: - return AppApiException(500, _('File upload is not enabled')) + raise AppApiException(500, _('File upload is not enabled')) file_limit = 50 * 1024 * 1024 if application.file_upload_setting and application.file_upload_setting.get('fileLimit'): file_limit = application.file_upload_setting.get('fileLimit') * 1024 * 1024 diff --git a/ui/src/locales/lang/en-US/workflow.ts b/ui/src/locales/lang/en-US/workflow.ts index f87956b3f7a..7b1a549ceee 100644 --- a/ui/src/locales/lang/en-US/workflow.ts +++ b/ui/src/locales/lang/en-US/workflow.ts @@ -188,7 +188,7 @@ export default { result: 'Search Results', searchParam: 'Search Parameters', select_variable: 'Select Variable', - valueMessage: `Value or name `, + valueMessage: 'Value or name', searchQuestion: { label: 'Search Question', diff --git a/ui/src/workflow/nodes/intent-classify-node/index.ts b/ui/src/workflow/nodes/intent-classify-node/index.ts index c39167e9294..b88106a917b 100644 --- a/ui/src/workflow/nodes/intent-classify-node/index.ts +++ b/ui/src/workflow/nodes/intent-classify-node/index.ts @@ -47,12 +47,11 @@ class IntentModel extends AppNodeModel { }) if (branch_condition_list) { - const FORM_ITEMS_HEIGHT = 397 // 上方表单占用高度 - + for (let index = 0; index < branch_condition_list.length; index++) { const element = branch_condition_list[index] - + anchors.push({ x: x + width / 2 - 10, y: showNode From d3e04af82e9e499716539ff50647d5820d81cffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 09:49:07 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E5=B0=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flow/step_node/ai_chat_step_node/impl/base_chat_node.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py b/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py index 1e15cb37aa1..7c4c688aef2 100644 --- a/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py +++ b/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py @@ -364,7 +364,7 @@ def handle_variables(self, tool_params): tool_params[k] = self.workflow_manage.generate_prompt(tool_params[k]) elif type(v) == dict: self.handle_variables(v) - elif type(v) == list and len(v) > 0 and type(v[0]) == str: + elif (type(v) == list) and len(v) > 0 and (type(v[0]) == str): tool_params[k] = self.get_reference_content(v) return tool_params From ade3de42cde36ebbaa91094ce2227204a323ac4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 10:04:44 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E7=BC=93=E5=AD=98=E5=80=BC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/auth/handle/impl/user_token.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/common/auth/handle/impl/user_token.py b/apps/common/auth/handle/impl/user_token.py index 0a1d814af38..ce3a031cfb4 100644 --- a/apps/common/auth/handle/impl/user_token.py +++ b/apps/common/auth/handle/impl/user_token.py @@ -274,7 +274,7 @@ def get_role_list(user, for workspace_user_role_mapping in workspace_user_role_mapping_list], []))) - cache.set(key, workspace_list, version=version) + cache.set(key, role_list, version=version) return role_list else: if user.role == RoleConstants.ADMIN.value.__str__(): From e503d09fd8dc6a5b197497cedec5ac5f76d1588d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 10:57:25 +0800 Subject: [PATCH 04/12] fix: Fix the issues for `raise exception` --- .../impl/aliyun_bai_lian_model_provider/model/ttv.py | 1 - apps/models_provider/impl/openai_model_provider/model/tti.py | 2 +- apps/models_provider/impl/regolo_model_provider/model/tti.py | 2 +- apps/models_provider/impl/tencent_model_provider/model/tti.py | 2 +- apps/models_provider/serializers/model_apply_serializers.py | 2 +- 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py b/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py index cde6fcf1963..c69fc25a4f2 100644 --- a/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py +++ b/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py @@ -100,7 +100,6 @@ def generate_video(self, prompt, negative_prompt=None, first_frame_url=None, las # --- 等待任务完成 --- rsp = self._safe_call(VideoSynthesis.wait, task=rsp, api_key=self.api_key) if rsp.status_code == HTTPStatus.OK: - maxkb_logger.info("视频生成完成!视频 URL:", rsp.output.video_url) if rsp.output.task_status == "SUCCEEDED": maxkb_logger.info("视频生成完成!视频 URL:", rsp.output.video_url) return rsp.output.video_url diff --git a/apps/models_provider/impl/openai_model_provider/model/tti.py b/apps/models_provider/impl/openai_model_provider/model/tti.py index 6b04d86a7a1..ee3aff6ed18 100644 --- a/apps/models_provider/impl/openai_model_provider/model/tti.py +++ b/apps/models_provider/impl/openai_model_provider/model/tti.py @@ -61,4 +61,4 @@ def generate_image(self, prompt: str, negative_prompt: str = None): return file_urls except Exception as e: - raise f"OpenAI generate image error: {e}" + raise RuntimeError(f"OpenAI generate image error: {e}") from e diff --git a/apps/models_provider/impl/regolo_model_provider/model/tti.py b/apps/models_provider/impl/regolo_model_provider/model/tti.py index 712c91c9d16..e80d6e44316 100644 --- a/apps/models_provider/impl/regolo_model_provider/model/tti.py +++ b/apps/models_provider/impl/regolo_model_provider/model/tti.py @@ -58,4 +58,4 @@ def generate_image(self, prompt: str, negative_prompt: str = None): file_urls.append(url) return file_urls except Exception as e: - raise f"RegoloTextToImage generate_image error: {e}" + raise RuntimeError(f"RegoloTextToImage generate_image error: {e}") from e diff --git a/apps/models_provider/impl/tencent_model_provider/model/tti.py b/apps/models_provider/impl/tencent_model_provider/model/tti.py index c2bf6bd75fe..4e2c080d830 100644 --- a/apps/models_provider/impl/tencent_model_provider/model/tti.py +++ b/apps/models_provider/impl/tencent_model_provider/model/tti.py @@ -90,4 +90,4 @@ def generate_image(self, prompt: str, negative_prompt: str = None): return file_urls except TencentCloudSDKException as err: maxkb_logger.error(f"Tencent Text to Image API call failed: {err}") - raise f"Tencent Text to Image API call failed: {err}" + raise RuntimeError(f"Tencent Text to Image API call failed: {err}") from err diff --git a/apps/models_provider/serializers/model_apply_serializers.py b/apps/models_provider/serializers/model_apply_serializers.py index 8db59faf9b2..6bb12caa98d 100644 --- a/apps/models_provider/serializers/model_apply_serializers.py +++ b/apps/models_provider/serializers/model_apply_serializers.py @@ -30,7 +30,7 @@ def get_embedding_model(model_id): class EmbedDocuments(serializers.Serializer): texts = serializers.ListField(required=True, child=serializers.CharField(required=True, label=_('vector text')), - label=_('vector text list')), + label=_('vector text list')) class EmbedQuery(serializers.Serializer): From 1b019b415782a163c935a19b3a6f4b092f752f3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 11:21:50 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/auth/handle/impl/user_token.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/common/auth/handle/impl/user_token.py b/apps/common/auth/handle/impl/user_token.py index ce3a031cfb4..18dd9d074df 100644 --- a/apps/common/auth/handle/impl/user_token.py +++ b/apps/common/auth/handle/impl/user_token.py @@ -258,10 +258,10 @@ def get_role_list(user, """ version = Cache_Version.ROLE_LIST.get_version() key = Cache_Version.ROLE_LIST.get_key(user_id=user.id) - workspace_list = cache.get(key, version=version) + role_list = cache.get(key, version=version) # 获取权限列表 is_query_model = workspace_user_role_mapping_model is not None and workspace_model is not None and role_model is not None and role_permission_mapping_model is not None - if workspace_list is None: + if role_list is None: if is_query_model: # 获取工作空间 用户 角色映射数据 workspace_user_role_mapping_list = QuerySet(workspace_user_role_mapping_model).filter(user_id=user.id) @@ -275,15 +275,13 @@ def get_role_list(user, workspace_user_role_mapping in workspace_user_role_mapping_list], []))) cache.set(key, role_list, version=version) - return role_list else: if user.role == RoleConstants.ADMIN.value.__str__(): role_list = [user.role, get_role_permission(RoleConstants.WORKSPACE_MANAGE, 'default')] else: role_list = [user.role, get_role_permission(RoleConstants.USER, 'default')] cache.set(key, role_list, version=version) - return role_list - return workspace_list + return role_list def get_auth(user): From 0f2868a710683f19a2d46c6f0759fa204a2b705d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 11:33:12 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E5=B0=8F=E8=B0=83=E6=95=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/aliyun_bai_lian_model_provider/model/ttv.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py b/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py index d4f41e18eaf..57f308a4d18 100644 --- a/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py +++ b/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py @@ -109,11 +109,11 @@ def generate_video(self, prompt, negative_prompt=None, first_frame_url=None, las rsp = self._safe_call(VideoSynthesis.wait, task=rsp, api_key=self.api_key) if rsp.status_code == HTTPStatus.OK: if rsp.output.task_status == "SUCCEEDED": - maxkb_logger.info("视频生成完成!视频 URL:", rsp.output.video_url) + maxkb_logger.info(f'视频生成完成!视频 URL: {rsp.output.video_url}') return rsp.output.video_url else: - maxkb_logger.error("视频生成失败!") - raise RuntimeError(f'生成失败, message: {rsp.output.message}') + maxkb_logger.error(f'视频生成失败: {rsp.output.message}') + raise RuntimeError(f'视频生成失败, message: {rsp.output.message}') else: maxkb_logger.error(f'生成失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}') raise RuntimeError(f'生成失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}') From ace367a11188b34eb7d069936a3ae147606e76d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 11:38:03 +0800 Subject: [PATCH 07/12] optimize style --- apps/models_provider/serializers/model_apply_serializers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/models_provider/serializers/model_apply_serializers.py b/apps/models_provider/serializers/model_apply_serializers.py index 6bb12caa98d..30c33147f1e 100644 --- a/apps/models_provider/serializers/model_apply_serializers.py +++ b/apps/models_provider/serializers/model_apply_serializers.py @@ -28,8 +28,8 @@ def get_embedding_model(model_id): class EmbedDocuments(serializers.Serializer): - texts = serializers.ListField(required=True, child=serializers.CharField(required=True, - label=_('vector text')), + texts = serializers.ListField(required=True, + child=serializers.CharField(required=True, label=_('vector text')), label=_('vector text list')) From 41bd9f241d9768d9174c6415f1ca0fc3a1a7bb52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 11:42:51 +0800 Subject: [PATCH 08/12] fix --- apps/local_model/serializers/model_apply_serializers.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/local_model/serializers/model_apply_serializers.py b/apps/local_model/serializers/model_apply_serializers.py index 5ecb2260c9d..76c8792bbfa 100644 --- a/apps/local_model/serializers/model_apply_serializers.py +++ b/apps/local_model/serializers/model_apply_serializers.py @@ -91,9 +91,9 @@ def get_embedding_model(model_id): class EmbedDocuments(serializers.Serializer): - texts = serializers.ListField(required=True, child=serializers.CharField(required=True, - label=_('vector text')), - label=_('vector text list')), + texts = serializers.ListField(required=True, + child=serializers.CharField(required=True, label=_('vector text')), + label=_('vector text list')) class EmbedQuery(serializers.Serializer): From b7d947275222eb7f7a634658408db8aacc0c066f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 12:11:00 +0800 Subject: [PATCH 09/12] fix --- apps/application/flow/compare/is_not_null_compare.py | 5 ++++- apps/application/flow/compare/is_null_compare.py | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/application/flow/compare/is_not_null_compare.py b/apps/application/flow/compare/is_not_null_compare.py index b2182646da2..8333cced274 100644 --- a/apps/application/flow/compare/is_not_null_compare.py +++ b/apps/application/flow/compare/is_not_null_compare.py @@ -18,4 +18,7 @@ def support(self, node_id, fields: List[str], source_value, compare, target_valu return True def compare(self, source_value, compare, target_value): - return source_value is not None and len(source_value) > 0 + try: + return source_value is not None and len(source_value) > 0 + except Exception: + return source_value is not None diff --git a/apps/application/flow/compare/is_null_compare.py b/apps/application/flow/compare/is_null_compare.py index 09c115c98d9..20740732121 100644 --- a/apps/application/flow/compare/is_null_compare.py +++ b/apps/application/flow/compare/is_null_compare.py @@ -20,5 +20,5 @@ def support(self, node_id, fields: List[str], source_value, compare, target_valu def compare(self, source_value, compare, target_value): try: return source_value is None or len(source_value) == 0 - except Exception as e: - return False + except Exception: + return source_value is None From 43ccb2c353b499a9822e6b2134d30035e008611f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 12:17:14 +0800 Subject: [PATCH 10/12] revert --- apps/application/flow/compare/is_null_compare.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/application/flow/compare/is_null_compare.py b/apps/application/flow/compare/is_null_compare.py index 20740732121..09c115c98d9 100644 --- a/apps/application/flow/compare/is_null_compare.py +++ b/apps/application/flow/compare/is_null_compare.py @@ -20,5 +20,5 @@ def support(self, node_id, fields: List[str], source_value, compare, target_valu def compare(self, source_value, compare, target_value): try: return source_value is None or len(source_value) == 0 - except Exception: - return source_value is None + except Exception as e: + return False From 3b7f5492e6cb8cf4fdd1bf773788b70a536d5a09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 12:59:05 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E5=B0=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/application/flow/compare/is_not_null_compare.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/application/flow/compare/is_not_null_compare.py b/apps/application/flow/compare/is_not_null_compare.py index 8333cced274..92306bed0b8 100644 --- a/apps/application/flow/compare/is_not_null_compare.py +++ b/apps/application/flow/compare/is_not_null_compare.py @@ -21,4 +21,4 @@ def compare(self, source_value, compare, target_value): try: return source_value is not None and len(source_value) > 0 except Exception: - return source_value is not None + return True From 3d7d8f327ca20c6f83719095752ceedf9c5b1fff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 21 Apr 2026 15:23:40 +0800 Subject: [PATCH 12/12] revert --- .../step_node/ai_chat_step_node/impl/base_chat_node.py | 2 +- .../flow/step_node/mcp_node/impl/base_mcp_node.py | 4 ++-- apps/chat/serializers/chat_record.py | 3 ++- apps/common/auth/handle/impl/user_token.py | 10 ++++++---- apps/common/handle/base_parse_qa_handle.py | 8 ++++---- .../impl/aliyun_bai_lian_model_provider/model/ttv.py | 7 ++++--- ui/src/locales/lang/en-US/workflow.ts | 2 +- 7 files changed, 20 insertions(+), 16 deletions(-) diff --git a/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py b/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py index 7c4c688aef2..d1d76b7d98e 100644 --- a/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py +++ b/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py @@ -364,7 +364,7 @@ def handle_variables(self, tool_params): tool_params[k] = self.workflow_manage.generate_prompt(tool_params[k]) elif type(v) == dict: self.handle_variables(v) - elif (type(v) == list) and len(v) > 0 and (type(v[0]) == str): + elif (type(v) == list) and len(v) > 0 and type(v[0]) == str: tool_params[k] = self.get_reference_content(v) return tool_params diff --git a/apps/application/flow/step_node/mcp_node/impl/base_mcp_node.py b/apps/application/flow/step_node/mcp_node/impl/base_mcp_node.py index bf236e51763..d83a3cdc05f 100644 --- a/apps/application/flow/step_node/mcp_node/impl/base_mcp_node.py +++ b/apps/application/flow/step_node/mcp_node/impl/base_mcp_node.py @@ -51,9 +51,9 @@ def handle_variables(self, tool_params): for k, v in tool_params.items(): if type(v) == str: tool_params[k] = self.workflow_manage.generate_prompt(tool_params[k]) - elif type(v) == dict: + if type(v) == dict: self.handle_variables(v) - elif (type(v) == list) and len(v) > 0 and (type(v[0]) == str): + if (type(v) == list) and (type(v[0]) == str): tool_params[k] = self.get_reference_content(v) return tool_params diff --git a/apps/chat/serializers/chat_record.py b/apps/chat/serializers/chat_record.py index ee6d446dd57..d094216f53f 100644 --- a/apps/chat/serializers/chat_record.py +++ b/apps/chat/serializers/chat_record.py @@ -75,7 +75,8 @@ def vote(self, instance: Dict, with_valid=True): chat_record_details_model.vote_status = VoteChoices.STAR chat_record_details_model.vote_reason = vote_reason chat_record_details_model.vote_other_content = vote_other_content - elif vote_status == VoteChoices.TRAMPLE: + + if vote_status == VoteChoices.TRAMPLE: # 点踩 chat_record_details_model.vote_status = VoteChoices.TRAMPLE chat_record_details_model.vote_reason = vote_reason diff --git a/apps/common/auth/handle/impl/user_token.py b/apps/common/auth/handle/impl/user_token.py index 18dd9d074df..0a1d814af38 100644 --- a/apps/common/auth/handle/impl/user_token.py +++ b/apps/common/auth/handle/impl/user_token.py @@ -258,10 +258,10 @@ def get_role_list(user, """ version = Cache_Version.ROLE_LIST.get_version() key = Cache_Version.ROLE_LIST.get_key(user_id=user.id) - role_list = cache.get(key, version=version) + workspace_list = cache.get(key, version=version) # 获取权限列表 is_query_model = workspace_user_role_mapping_model is not None and workspace_model is not None and role_model is not None and role_permission_mapping_model is not None - if role_list is None: + if workspace_list is None: if is_query_model: # 获取工作空间 用户 角色映射数据 workspace_user_role_mapping_list = QuerySet(workspace_user_role_mapping_model).filter(user_id=user.id) @@ -274,14 +274,16 @@ def get_role_list(user, for workspace_user_role_mapping in workspace_user_role_mapping_list], []))) - cache.set(key, role_list, version=version) + cache.set(key, workspace_list, version=version) + return role_list else: if user.role == RoleConstants.ADMIN.value.__str__(): role_list = [user.role, get_role_permission(RoleConstants.WORKSPACE_MANAGE, 'default')] else: role_list = [user.role, get_role_permission(RoleConstants.USER, 'default')] cache.set(key, role_list, version=version) - return role_list + return role_list + return workspace_list def get_auth(user): diff --git a/apps/common/handle/base_parse_qa_handle.py b/apps/common/handle/base_parse_qa_handle.py index eb9a84d5623..8cd1cd1cdb2 100644 --- a/apps/common/handle/base_parse_qa_handle.py +++ b/apps/common/handle/base_parse_qa_handle.py @@ -22,7 +22,7 @@ def get_title_row_index_dict(title_row_list): title_row_index_dict = {} if len(title_row_list) == 1: title_row_index_dict['content'] = 0 - elif len(title_row_list) == 2: + elif len(title_row_list) == 1: title_row_index_dict['title'] = 0 title_row_index_dict['content'] = 1 else: @@ -33,11 +33,11 @@ def get_title_row_index_dict(title_row_list): title_row = title_row_list[index] if title_row is None: title_row = '' - elif title_row.startswith('分段标题'): + if title_row.startswith('分段标题'): title_row_index_dict['title'] = index - elif title_row.startswith('分段内容'): + if title_row.startswith('分段内容'): title_row_index_dict['content'] = index - elif title_row.startswith('问题'): + if title_row.startswith('问题'): title_row_index_dict['problem_list'] = index return title_row_index_dict diff --git a/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py b/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py index 57f308a4d18..8b2d0e1f538 100644 --- a/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py +++ b/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py @@ -108,12 +108,13 @@ def generate_video(self, prompt, negative_prompt=None, first_frame_url=None, las # --- 等待任务完成 --- rsp = self._safe_call(VideoSynthesis.wait, task=rsp, api_key=self.api_key) if rsp.status_code == HTTPStatus.OK: + maxkb_logger.info("视频生成完成!视频 URL:", rsp.output.video_url) if rsp.output.task_status == "SUCCEEDED": - maxkb_logger.info(f'视频生成完成!视频 URL: {rsp.output.video_url}') + maxkb_logger.info("视频生成完成!视频 URL:", rsp.output.video_url) return rsp.output.video_url else: - maxkb_logger.error(f'视频生成失败: {rsp.output.message}') - raise RuntimeError(f'视频生成失败, message: {rsp.output.message}') + maxkb_logger.error("视频生成失败!") + raise RuntimeError(f'生成失败, message: {rsp.output.message}') else: maxkb_logger.error(f'生成失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}') raise RuntimeError(f'生成失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}') diff --git a/ui/src/locales/lang/en-US/workflow.ts b/ui/src/locales/lang/en-US/workflow.ts index beb02772c5a..434024f313d 100644 --- a/ui/src/locales/lang/en-US/workflow.ts +++ b/ui/src/locales/lang/en-US/workflow.ts @@ -189,7 +189,7 @@ export default { result: 'Search Results', searchParam: 'Search Parameters', select_variable: 'Select Variable', - valueMessage: 'Value or name', + valueMessage: `Value or name `, searchQuestion: { label: 'Search Question',