From e2b1464db217ad18001278e2dff3c0853637eac9 Mon Sep 17 00:00:00 2001 From: JzoNg Date: Sun, 29 Sep 2024 17:15:39 +0800 Subject: [PATCH] fix features update by DSL import --- web/app/components/base/features/store.ts | 4 +-- .../components/workflow/update-dsl-modal.tsx | 30 ++++++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/web/app/components/base/features/store.ts b/web/app/components/base/features/store.ts index 9c6e242ab5..2b8c3f7073 100644 --- a/web/app/components/base/features/store.ts +++ b/web/app/components/base/features/store.ts @@ -1,6 +1,6 @@ import { createStore } from 'zustand' import type { Features } from './types' -import { TransferMethod } from '@/types/app' +import { Resolution, TransferMethod } from '@/types/app' export type FeaturesModal = { showFeaturesModal: boolean @@ -46,7 +46,7 @@ export const createFeaturesStore = (initProps?: Partial) => { file: { image: { enabled: false, - detail: 'high', + detail: Resolution.high, number_limits: 3, transfer_methods: [TransferMethod.local_file, TransferMethod.remote_url], }, diff --git a/web/app/components/workflow/update-dsl-modal.tsx b/web/app/components/workflow/update-dsl-modal.tsx index 184b47c476..fa33b22019 100644 --- a/web/app/components/workflow/update-dsl-modal.tsx +++ b/web/app/components/workflow/update-dsl-modal.tsx @@ -14,6 +14,9 @@ import { RiCloseLine, } from '@remixicon/react' import { WORKFLOW_DATA_UPDATE } from './constants' +import { + SupportUploadFileTypes, +} from './types' import { initialEdges, initialNodes, @@ -25,6 +28,7 @@ import { ToastContext } from '@/app/components/base/toast' import { updateWorkflowDraftFromDSL } from '@/service/workflow' import { useEventEmitterContextContext } from '@/context/event-emitter' import { useStore as useAppStore } from '@/app/components/app/store' +import { FILE_EXTS } from '@/app/components/base/prompt-editor/constants' type UpdateDSLModalProps = { onCancel: () => void @@ -78,13 +82,37 @@ const UpdateDSLModal = ({ hash, } = await updateWorkflowDraftFromDSL(appDetail.id, fileContent) const { nodes, edges, viewport } = graph + const newFeatures = { + file: { + image: { + enabled: !!features.file_upload?.image?.enabled, + number_limits: features.file_upload?.image?.number_limits || 3, + transfer_methods: features.file_upload?.image?.transfer_methods || ['local_file', 'remote_url'], + }, + enabled: !!(features.file_upload?.enabled || features.file_upload?.image?.enabled), + allowed_file_types: features.file_upload?.allowed_file_types || [SupportUploadFileTypes.image], + allowed_file_extensions: features.file_upload?.allowed_file_extensions || FILE_EXTS[SupportUploadFileTypes.image].map(ext => `.${ext}`), + allowed_file_upload_methods: features.file_upload?.allowed_file_upload_methods || features.file_upload?.image?.transfer_methods || ['local_file', 'remote_url'], + number_limits: features.file_upload?.number_limits || features.file_upload?.image?.number_limits || 3, + }, + opening: { + enabled: !!features.opening_statement, + opening_statement: features.opening_statement, + suggested_questions: features.suggested_questions, + }, + suggested: features.suggested_questions_after_answer || { enabled: false }, + speech2text: features.speech_to_text || { enabled: false }, + text2speech: features.text_to_speech || { enabled: false }, + citation: features.retriever_resource || { enabled: false }, + moderation: features.sensitive_word_avoidance || { enabled: false }, + } eventEmitter?.emit({ type: WORKFLOW_DATA_UPDATE, payload: { nodes: initialNodes(nodes, edges), edges: initialEdges(edges, nodes), viewport, - features, + features: newFeatures, hash, }, } as any)