From f34566d9ad8aed7bdc82f7e485bdeeeabc901708 Mon Sep 17 00:00:00 2001 From: qhd <1766646056@qq.com> Date: Sat, 22 Aug 2026 10:55:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=8F=96=E5=80=BC=E9=80=BB=E8=BE=91=E5=B9=B6?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E8=B0=83=E8=AF=95=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/service/flow/lambda_node.go | 2 +- workflow/service/flow/lambda_node_util.go | 2 ++ workflow/service/flow/lambda_value_source.go | 24 ++++++++++---------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/workflow/service/flow/lambda_node.go b/workflow/service/flow/lambda_node.go index 3bc8646..df6100e 100644 --- a/workflow/service/flow/lambda_node.go +++ b/workflow/service/flow/lambda_node.go @@ -148,7 +148,7 @@ func ModelLambda(ctx context.Context, input any) (any, error) { return nil, err } } - + g.Log().Debugf(ctx, "modelId:%v ,outputRes: %v", nodeInput.Config.ModelConfig.ModelId, outputRes) nodeInput.Config.OutputResult = outputRes return nodeInput, nil } diff --git a/workflow/service/flow/lambda_node_util.go b/workflow/service/flow/lambda_node_util.go index f1a743f..7ad2f6d 100644 --- a/workflow/service/flow/lambda_node_util.go +++ b/workflow/service/flow/lambda_node_util.go @@ -147,6 +147,8 @@ func HttpCallResultLambda(ctx context.Context, nodeInput *flowDto.NodeExecutionI } } + g.Log().Debugf(ctx, "httpCallResultLambda: body: %v", body) + // 构建请求参数 ProcessValueSourceRecursive(body, nodeInput.Global) // 递归剥掉 {type, value/attrs} 包裹层,只保留 key/value diff --git a/workflow/service/flow/lambda_value_source.go b/workflow/service/flow/lambda_value_source.go index 98d2e9d..932f262 100644 --- a/workflow/service/flow/lambda_value_source.go +++ b/workflow/service/flow/lambda_value_source.go @@ -186,21 +186,21 @@ func resolveValueSource(global *flowDto.FlowExecutionInput, nodeId, field string } } default: - for _, output := range nodeConfig.OutputResult { - // 模型节点输出记录是单 key 的字面量扁平 key(如 "choices.attrs[0].attrs.delta.attrs.content"), - // gjson 会把 . 和 [0] 当结构路径解析,无法命中字面量 key,故先按字面量 key 直接取值; - // 未命中再回退 gjson 路径查询(兼容真正嵌套的输出结构)。 - if v, has := output[field]; has { - value = v - } else { - if field == "templates" { - value = nodeConfig.Templates + if field == "templates" { + value = nodeConfig.Templates + } else { + for _, output := range nodeConfig.OutputResult { + // 模型节点输出记录是单 key 的字面量扁平 key(如 "choices.attrs[0].attrs.delta.attrs.content"), + // gjson 会把 . 和 [0] 当结构路径解析,无法命中字面量 key,故先按字面量 key 直接取值; + // 未命中再回退 gjson 路径查询(兼容真正嵌套的输出结构)。 + if v, has := output[field]; has { + value = v } else { value = gjson.Get(gconv.String(output), field).Value() } - } - if !g.IsEmpty(value) { - return value, gjson.Get(gconv.String(output), CleanFieldPath("refsName")).Value(), true + if !g.IsEmpty(value) { + return value, gjson.Get(gconv.String(output), CleanFieldPath("refsName")).Value(), true + } } } }