From d4d11b3b27f64190e751cb20d6c26cbcee7286ea Mon Sep 17 00:00:00 2001 From: Holata Seminole <78210374+Sanjeever@users.noreply.github.com> Date: Thu, 5 Feb 2026 10:07:27 +0800 Subject: [PATCH] fix(workflow): remove `think` tags before JSON parsing When parsing LLM responses, some replies include tags used for internal reasoning, which can cause JSON parsing failures. To prevent this, use regular expressions to remove all ... tags before parsing, ensuring smooth JSON extraction. --- backend/domain/workflow/internal/nodes/llm/llm.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/domain/workflow/internal/nodes/llm/llm.go b/backend/domain/workflow/internal/nodes/llm/llm.go index 309493efa8..841d63363e 100644 --- a/backend/domain/workflow/internal/nodes/llm/llm.go +++ b/backend/domain/workflow/internal/nodes/llm/llm.go @@ -21,6 +21,7 @@ import ( "errors" "fmt" "io" + "regexp" "strconv" "strings" @@ -887,6 +888,8 @@ const ( ) func jsonParse(ctx context.Context, data string, schema_ map[string]*vo.TypeInfo) (map[string]any, error) { + re := regexp.MustCompile(`<(think)>(\W|\w)*`) + data = re.ReplaceAllString(data, "") data = nodes.ExtractJSONString(data) var result map[string]any