diff --git a/packages/global/core/workflow/template/input.ts b/packages/global/core/workflow/template/input.ts index 5d70d6391..49a0788a4 100644 --- a/packages/global/core/workflow/template/input.ts +++ b/packages/global/core/workflow/template/input.ts @@ -1,7 +1,7 @@ import { NodeInputKeyEnum } from '../constants'; import { FlowNodeInputTypeEnum } from '../node/constant'; import { WorkflowIOValueTypeEnum } from '../constants'; -import { chatNodeSystemPromptTip } from './tip'; +import { chatNodeSystemPromptTip, systemPromptTip } from './tip'; import { FlowNodeInputItemType } from '../type/io'; import { i18nT } from '../../../../web/i18n/utils'; @@ -55,7 +55,7 @@ export const Input_Template_System_Prompt: FlowNodeInputItemType = { max: 3000, valueType: WorkflowIOValueTypeEnum.string, label: i18nT('common:core.ai.Prompt'), - description: chatNodeSystemPromptTip, + description: systemPromptTip, placeholder: chatNodeSystemPromptTip }; diff --git a/packages/global/core/workflow/template/system/aiChat/index.ts b/packages/global/core/workflow/template/system/aiChat/index.ts index e1d7d277e..99c606939 100644 --- a/packages/global/core/workflow/template/system/aiChat/index.ts +++ b/packages/global/core/workflow/template/system/aiChat/index.ts @@ -19,7 +19,7 @@ import { Input_Template_UserChatInput, Input_Template_Text_Quote } from '../../input'; -import { chatNodeSystemPromptTip } from '../../tip'; +import { chatNodeSystemPromptTip, systemPromptTip } from '../../tip'; import { getHandleConfig } from '../../utils'; import { i18nT } from '../../../../../../web/i18n/utils'; @@ -94,7 +94,7 @@ export const AiChatModule: FlowNodeTemplateType = { { ...Input_Template_System_Prompt, label: i18nT('common:core.ai.Prompt'), - description: chatNodeSystemPromptTip, + description: systemPromptTip, placeholder: chatNodeSystemPromptTip }, Input_Template_History, diff --git a/packages/global/core/workflow/template/system/tools.ts b/packages/global/core/workflow/template/system/tools.ts index c7e59f956..6c3315abb 100644 --- a/packages/global/core/workflow/template/system/tools.ts +++ b/packages/global/core/workflow/template/system/tools.ts @@ -16,7 +16,7 @@ import { Input_Template_System_Prompt, Input_Template_UserChatInput } from '../input'; -import { chatNodeSystemPromptTip } from '../tip'; +import { chatNodeSystemPromptTip, systemPromptTip } from '../tip'; import { LLMModelTypeEnum } from '../../../ai/constants'; import { getHandleConfig } from '../utils'; import { i18nT } from '../../../../../web/i18n/utils'; @@ -62,7 +62,7 @@ export const ToolModule: FlowNodeTemplateType = { { ...Input_Template_System_Prompt, label: i18nT('common:core.ai.Prompt'), - description: chatNodeSystemPromptTip, + description: systemPromptTip, placeholder: chatNodeSystemPromptTip }, Input_Template_History, diff --git a/packages/global/core/workflow/template/tip.ts b/packages/global/core/workflow/template/tip.ts index cec778c42..d02c64af6 100644 --- a/packages/global/core/workflow/template/tip.ts +++ b/packages/global/core/workflow/template/tip.ts @@ -1 +1,2 @@ export const chatNodeSystemPromptTip = 'core.app.tip.chatNodeSystemPromptTip'; +export const systemPromptTip = 'core.app.tip.systemPromptTip'; diff --git a/packages/web/components/common/Textarea/PromptEditor/Editor.tsx b/packages/web/components/common/Textarea/PromptEditor/Editor.tsx index 3e0648907..c04bd11e0 100644 --- a/packages/web/components/common/Textarea/PromptEditor/Editor.tsx +++ b/packages/web/components/common/Textarea/PromptEditor/Editor.tsx @@ -32,9 +32,9 @@ import { useDeepCompareEffect } from 'ahooks'; import VariablePickerPlugin from './plugins/VariablePickerPlugin'; export default function Editor({ - h = 200, + minH = 200, + maxH = 400, maxLength, - showResize = true, showOpenModal = true, onOpenModal, variables, @@ -46,9 +46,9 @@ export default function Editor({ isFlow, bg = 'white' }: { - h?: number; + minH?: number; + maxH?: number; maxLength?: number; - showResize?: boolean; showOpenModal?: boolean; onOpenModal?: () => void; variables: EditorVariablePickerType[]; @@ -62,7 +62,6 @@ export default function Editor({ }) { const [key, setKey] = useState(getNanoid(6)); const [_, startSts] = useTransition(); - const [height, setHeight] = useState(h); const [focus, setFocus] = useState(false); const initialConfig = { @@ -74,25 +73,6 @@ export default function Editor({ } }; - const initialY = useRef(0); - const handleMouseDown = useCallback((e: React.MouseEvent) => { - initialY.current = e.clientY; - - const handleMouseMove = (e: MouseEvent) => { - const deltaY = e.clientY - initialY.current; - setHeight((prevHeight) => (prevHeight + deltaY < h * 0.5 ? h * 0.5 : prevHeight + deltaY)); - initialY.current = e.clientY; - }; - - const handleMouseUp = () => { - document.removeEventListener('mousemove', handleMouseMove); - document.removeEventListener('mouseup', handleMouseUp); - }; - - document.addEventListener('mousemove', handleMouseMove); - document.addEventListener('mouseup', handleMouseUp); - }, []); - useDeepCompareEffect(() => { if (focus) return; setKey(getNanoid(6)); @@ -103,7 +83,6 @@ export default function Editor({ className="nowheel" position={'relative'} width={'full'} - h={`${height}px`} cursor={'text'} color={'myGray.700'} bg={focus ? 'white' : bg} @@ -114,6 +93,10 @@ export default function Editor({ contentEditable={ } placeholder={ @@ -158,19 +141,6 @@ export default function Editor({ 0 ? [] : variables} /> - {showResize && ( - - - - )} {showOpenModal && ( void; onBlur?: (text: string) => void; - h?: number; + minH?: number; + maxH?: number; maxLength?: number; placeholder?: string; title?: string; @@ -58,12 +58,12 @@ const PromptEditor = ({ return ( <> 是标识每一帧字幕的标签,请严格按照对文本的分割逐帧翻译\n\n## Constraints:\n- 必须严格遵循四轮翻译流程:直译、意译、反思、提升\n- 译文要忠实原文,准确无误,不能遗漏或曲解原意\n- 最终译文使用Markdown的代码块呈现,但是不用输出markdown这个单词\n- 是标识每一帧字幕的标签,请严格按照对文本的分割逐帧翻译,每一帧字幕末尾不要加\\n 回车标识,且第一帧字幕开头不需要加标识\n\n## Goals:\n- 通过四轮翻译流程,将{{source_lang}}字幕译成高质量的{{target_lang}}字幕\n- 翻译的字幕要准确传达原字幕意思,语言表达力求浅显易懂,朗朗上口 \n\n## Workflow:\n1. 第一轮直译:严格按照逐句翻译,不遗漏任何信息\n2. 第二轮意译:在直译的基础上用通俗流畅的{{target_lang}}意译原文,逐句翻译,保留标识标签\n3. 第三轮反思:仔细审视译文,分点列出一份建设性的批评和有用的建议清单以改进翻译,对每一句话提出建议,从以下四个角度展开\n (i) 准确性(纠正添加、误译、遗漏或未翻译的文本错误),\n (ii) 流畅性(应用{{target_lang}}的语法、拼写和标点规则,并确保没有不必要的重复),\n (iii) 风格(确保翻译反映源文本的风格并考虑其文化背景),\n (iv) 术语(确保术语使用一致且反映源文本所在领域,注意确保使用{{target_lang}}中的等效习语)\n4. 第四轮提升:严格遵循第三轮提出的建议对翻译修改,定稿出一个简洁畅达、符合大众观影习惯的字幕译文,保留标识标签\n\n## OutputFormat:\n- 每一轮前用【思考】说明该轮要点\n- 第一轮和第二轮翻译后用【翻译】呈现译文\n- 第三轮输出建议清单,分点列出,在每一点前用*xxx*标识这条建议对应的要点,如*风格*;建议前用【思考】说明该轮要点,建议后用【建议】呈现建议\n- 第四轮在\\`\\`\\`代码块中展示最终{{target_lang}}字幕文件内容,如\\`\\`\\`xxx\\`\\`\\`\n\n## Suggestions:\n- 直译时力求忠实原文,但注意控制每帧字幕的字数,必要时进行精简压缩\n- 意译时在准确表达原意的基础上,用最朴实无华的{{target_lang}}来表达\n- 反思环节重点关注译文是否符合{{target_lang}}表达习惯,是否通俗易懂,是否准确流畅,是否术语一致\n- 提升环节采用反思环节的建议对意译环节的翻译进行修改,适度采用一些口语化的表达、网络流行语等,增强字幕的亲和力\n- 注意是很重要的标识标签,请确保标签能在正确位置输出" }, diff --git a/projects/app/public/appMarketTemplates/timeBot/template.json b/projects/app/public/appMarketTemplates/timeBot/template.json index cf74b82d2..79d5fc059 100644 --- a/projects/app/public/appMarketTemplates/timeBot/template.json +++ b/projects/app/public/appMarketTemplates/timeBot/template.json @@ -100,7 +100,7 @@ "max": 3000, "valueType": "string", "label": "core.ai.Prompt", - "description": "core.app.tip.chatNodeSystemPromptTip", + "description": "core.app.tip.systemPromptTip", "placeholder": "core.app.tip.chatNodeSystemPromptTip", "value": "" }, diff --git a/projects/app/src/components/core/app/DatasetParamsModal.tsx b/projects/app/src/components/core/app/DatasetParamsModal.tsx index 854789d2f..251cc644d 100644 --- a/projects/app/src/components/core/app/DatasetParamsModal.tsx +++ b/projects/app/src/components/core/app/DatasetParamsModal.tsx @@ -318,7 +318,8 @@ const DatasetParamsModal = ({ {t('common:core.ai.Prompt')} - + { @@ -190,7 +191,7 @@ const EditForm = ({ }} variableLabels={formatVariables} variables={formatVariables} - placeholder={t('common:core.app.tip.chatNodeSystemPromptTip')} + placeholder={t('common:core.app.tip.systemPromptTip')} title={t('common:core.ai.Prompt')} /> diff --git a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeHttp/index.tsx b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeHttp/index.tsx index fa5c143cb..673683508 100644 --- a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeHttp/index.tsx +++ b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeHttp/index.tsx @@ -701,7 +701,7 @@ const RenderBody = ({ }} showOpenModal={false} variableLabels={variables} - h={200} + minH={200} /> )} diff --git a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeVariableUpdate.tsx b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeVariableUpdate.tsx index af889da30..849c249ed 100644 --- a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeVariableUpdate.tsx +++ b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeVariableUpdate.tsx @@ -12,8 +12,7 @@ import { NumberInput, NumberInputField, NumberInputStepper, - Switch, - Textarea + Switch } from '@chakra-ui/react'; import { TUpdateListItem } from '@fastgpt/global/core/workflow/template/system/variableUpdate/type'; import { NodeInputKeyEnum, WorkflowIOValueTypeEnum } from '@fastgpt/global/core/workflow/constants'; @@ -25,7 +24,6 @@ import { } from '@fastgpt/global/core/workflow/node/constant'; import Container from '../components/Container'; import MyIcon from '@fastgpt/web/components/common/Icon'; -import JsonEditor from '@fastgpt/web/components/common/Textarea/JsonEditor'; import { SmallAddIcon } from '@chakra-ui/icons'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; import { ReferenceValueProps } from '@fastgpt/global/core/workflow/type/io'; @@ -219,7 +217,7 @@ const NodeVariableUpdate = ({ data, selected }: NodeProps) => onChange={handleUpdate} showOpenModal={false} variableLabels={variables} - h={100} + minH={100} /> ); @@ -251,7 +249,7 @@ const NodeVariableUpdate = ({ data, selected }: NodeProps) => onChange={handleUpdate} showOpenModal={false} variableLabels={variables} - h={100} + minH={100} /> ); diff --git a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/render/Handle/ConnectionHandle.tsx b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/render/Handle/ConnectionHandle.tsx index d6cc94c60..29b96f3c6 100644 --- a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/render/Handle/ConnectionHandle.tsx +++ b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/render/Handle/ConnectionHandle.tsx @@ -32,14 +32,18 @@ export const ConnectionSourceHandle = ({ ); /* - If the node is folded, must show the handle + If the node is folded and has outputs, must show the handle hide handle when: - not folded - not node - not sourceHandle - already connected */ - if (!isFoldNode && (!node || !node?.sourceHandle?.right || rightTargetConnected)) return null; + if ( + !(isFoldNode && node?.outputs.length) && + (!node || !node?.sourceHandle?.right || rightTargetConnected) + ) + return null; return ( { }} > { { { variables={variables} title={t(item.label as any)} maxLength={item.maxLength} - h={150} + minH={100} + maxH={300} placeholder={t((item.placeholder as any) || '')} value={item.value} onChange={onChange} diff --git a/projects/app/src/web/core/app/templates.ts b/projects/app/src/web/core/app/templates.ts index 456e42a9d..ec5128909 100644 --- a/projects/app/src/web/core/app/templates.ts +++ b/projects/app/src/web/core/app/templates.ts @@ -192,7 +192,7 @@ export const emptyTemplates: Record< max: 3000, valueType: WorkflowIOValueTypeEnum.string, label: 'core.ai.Prompt', - description: 'core.app.tip.chatNodeSystemPromptTip', + description: 'core.app.tip.systemPromptTip', placeholder: 'core.app.tip.chatNodeSystemPromptTip', value: '' }, diff --git a/projects/app/src/web/core/app/utils.ts b/projects/app/src/web/core/app/utils.ts index 69c09b977..e035a2a5a 100644 --- a/projects/app/src/web/core/app/utils.ts +++ b/projects/app/src/web/core/app/utils.ts @@ -140,7 +140,7 @@ export function form2AppWorkflow( max: 3000, valueType: WorkflowIOValueTypeEnum.string, label: 'core.ai.Prompt', - description: 'core.app.tip.chatNodeSystemPromptTip', + description: 'core.app.tip.systemPromptTip', placeholder: 'core.app.tip.chatNodeSystemPromptTip', value: formData.aiSettings.systemPrompt }, @@ -461,7 +461,7 @@ export function form2AppWorkflow( max: 3000, valueType: WorkflowIOValueTypeEnum.string, label: 'core.ai.Prompt', - description: 'core.app.tip.chatNodeSystemPromptTip', + description: 'core.app.tip.systemPromptTip', placeholder: 'core.app.tip.chatNodeSystemPromptTip', value: formData.aiSettings.systemPrompt },