From 0540995e5c9f14f9b5ad19ba794dc5f9a8671142 Mon Sep 17 00:00:00 2001 From: Pika Date: Wed, 9 Oct 2024 10:22:20 +0800 Subject: [PATCH] fix: prompt-editor regex.lastIndex needed to reset (#9097) Co-authored-by: Chen(MAC) --- ...kflow-variable-block-replacement-block.tsx | 5 +++-- web/config/index.ts | 22 ++++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/web/app/components/base/prompt-editor/plugins/workflow-variable-block/workflow-variable-block-replacement-block.tsx b/web/app/components/base/prompt-editor/plugins/workflow-variable-block/workflow-variable-block-replacement-block.tsx index c88b1661ad..0a80ecc220 100644 --- a/web/app/components/base/prompt-editor/plugins/workflow-variable-block/workflow-variable-block-replacement-block.tsx +++ b/web/app/components/base/prompt-editor/plugins/workflow-variable-block/workflow-variable-block-replacement-block.tsx @@ -12,7 +12,7 @@ import type { WorkflowVariableBlockType } from '../../types' import { CustomTextNode } from '../custom-text/node' import { $createWorkflowVariableBlockNode } from './node' import { WorkflowVariableBlockNode } from './index' -import { VAR_REGEX as REGEX } from '@/config' +import { VAR_REGEX as REGEX, resetReg } from '@/config' const WorkflowVariableBlockReplacementBlock = ({ workflowNodesMap, @@ -48,11 +48,12 @@ const WorkflowVariableBlockReplacementBlock = ({ }, []) const transformListener = useCallback((textNode: any) => { + resetReg() return decoratorTransform(textNode, getMatch, createWorkflowVariableBlockNode) }, [createWorkflowVariableBlockNode, getMatch]) useEffect(() => { - REGEX.lastIndex = 0 + resetReg() return mergeRegister( editor.registerNodeTransform(CustomTextNode, transformListener), ) diff --git a/web/config/index.ts b/web/config/index.ts index 21fc2f211c..9eb4889441 100644 --- a/web/config/index.ts +++ b/web/config/index.ts @@ -158,28 +158,28 @@ export const DEFAULT_AGENT_SETTING = { } export const DEFAULT_AGENT_PROMPT = { - chat: `Respond to the human as helpfully and accurately as possible. + chat: `Respond to the human as helpfully and accurately as possible. {{instruction}} - + You have access to the following tools: - + {{tools}} - + Use a json blob to specify a tool by providing an {{TOOL_NAME_KEY}} key (tool name) and an {{ACTION_INPUT_KEY}} key (tool input). Valid "{{TOOL_NAME_KEY}}" values: "Final Answer" or {{tool_names}} - + Provide only ONE action per $JSON_BLOB, as shown: - + \`\`\` { "{{TOOL_NAME_KEY}}": $TOOL_NAME, "{{ACTION_INPUT_KEY}}": $ACTION_INPUT } \`\`\` - + Follow this format: - + Question: input question to answer Thought: consider previous and subsequent steps Action: @@ -196,10 +196,10 @@ export const DEFAULT_AGENT_PROMPT = { "{{ACTION_INPUT_KEY}}": "Final response to human" } \`\`\` - + Begin! Reminder to ALWAYS respond with a valid json blob of a single action. Use tools if necessary. Respond directly if appropriate. Format is Action:\`\`\`$JSON_BLOB\`\`\`then Observation:.`, completion: ` - Respond to the human as helpfully and accurately as possible. + Respond to the human as helpfully and accurately as possible. {{instruction}} @@ -246,6 +246,8 @@ Thought: {{agent_scratchpad}} export const VAR_REGEX = /\{\{(#[a-zA-Z0-9_-]{1,50}(\.[a-zA-Z_][a-zA-Z0-9_]{0,29}){1,10}#)\}\}/gi +export const resetReg = () => VAR_REGEX.lastIndex = 0 + export let textGenerationTimeoutMs = 60000 if (process.env.NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS && process.env.NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS !== '')