refactor: 重构工作流执行图构建与节点上下文处理
This commit is contained in:
@@ -41,19 +41,35 @@ func JudgeLambda(ctx context.Context, input any) (string, error) {
|
||||
if !ok {
|
||||
return "", fmt.Errorf("入参类型错误,期望 *flowDto.NodeExecutionInput,实际 %T", input)
|
||||
}
|
||||
//inputMap, outputMap, modelMap := GetNodeContextContent(nodeInput.Global, nodeInput.Config)
|
||||
//fmt.Printf("JudgeLambda路由:输入=%s\n", gjson.MustEncode(inputMap))
|
||||
//fmt.Printf("JudgeLambda路由:输出=%s\n", gjson.MustEncode(outputMap))
|
||||
//fmt.Printf("JudgeLambda路由:模型=%s\n", gjson.MustEncode(modelMap))
|
||||
//configMap := gconv.Map(nodeInput.Config.Config)
|
||||
//ids := gconv.Strings(configMap["branch_ids"])
|
||||
//fmt.Printf("JudgeLambda路由:目标节点ID=%s\n", gconv.String(ids))
|
||||
//
|
||||
//m := map[string]bool{
|
||||
// "80000a50-81e1-4c15-adae-aab6c0d781ad": true,
|
||||
// "59a6ffa2-3252-4535-b6ed-d3e49cdf6c55": true,
|
||||
//}
|
||||
//
|
||||
//return m, nil
|
||||
// 1. 直接用你原来的方法(返回两个 map)
|
||||
inputMap, outputMap, modelMap := GetNodeContextContent(nodeInput.Global, nodeInput.Config)
|
||||
var outputResult []node.NodeFormField
|
||||
for _, valueAny := range inputMap {
|
||||
if field, ok := valueAny.(node.NodeFormField); ok {
|
||||
outputResult = append(outputResult, field)
|
||||
}
|
||||
}
|
||||
for _, valueAny := range outputMap {
|
||||
if field, ok := valueAny.(node.NodeFormField); ok {
|
||||
outputResult = append(outputResult, field)
|
||||
}
|
||||
}
|
||||
outputResult = append(outputResult, inputMap...)
|
||||
outputResult = append(outputResult, outputMap...)
|
||||
//for _, valueAny := range inputMap {
|
||||
// if field, ok := valueAny.(node.NodeFormField); ok {
|
||||
// outputResult = append(outputResult, field)
|
||||
// }
|
||||
//}
|
||||
//for _, valueAny := range outputMap {
|
||||
// if field, ok := valueAny.(node.NodeFormField); ok {
|
||||
// outputResult = append(outputResult, field)
|
||||
// }
|
||||
//}
|
||||
for _, valueAny := range modelMap {
|
||||
if field, ok := valueAny.(node.NodeFormField); ok {
|
||||
outputResult = append(outputResult, field)
|
||||
@@ -204,6 +220,8 @@ func TextModelLambda(ctx context.Context, input any) (any, error) {
|
||||
return nil, err
|
||||
}
|
||||
nodeInput.Config.OutputResult = outputRes
|
||||
//}
|
||||
|
||||
return nodeInput, nil
|
||||
}
|
||||
|
||||
@@ -281,14 +299,13 @@ func VideoModelLambda(ctx context.Context, input any) (any, error) {
|
||||
Label: fmt.Sprintf("video_oss_url:content:%d", 0),
|
||||
Type: "string",
|
||||
})
|
||||
} else {
|
||||
outputRes = append(outputRes, node.NodeFormField{
|
||||
Field: fmt.Sprintf("concat_video_url:content:%d", 0),
|
||||
Value: urlPrefix + msg.FileURL,
|
||||
Label: fmt.Sprintf("concat_video_url:content:%d", 0),
|
||||
Type: "string",
|
||||
})
|
||||
}
|
||||
outputRes = append(outputRes, node.NodeFormField{
|
||||
Field: fmt.Sprintf("concat_video_url:content:%d", 0),
|
||||
Value: urlPrefix + msg.FileURL,
|
||||
Label: fmt.Sprintf("视频内容:content:%d", 0),
|
||||
Type: "string",
|
||||
})
|
||||
nodeInput.Config.OutputResult = outputRes
|
||||
|
||||
return nodeInput, nil
|
||||
@@ -303,6 +320,64 @@ func HttpLambda(ctx context.Context, input any) (any, error) {
|
||||
outputRes := make([]node.NodeFormField, 0)
|
||||
var err error
|
||||
outputRes, err = HttpNode(ctx, nodeInput)
|
||||
//if nodeInput.Config.Name == "生成视频" {
|
||||
// outputRes, err = HttpNode(ctx, nodeInput)
|
||||
//} else {
|
||||
// a := []map[string]any{
|
||||
// {
|
||||
// "timeline": "0.0-2.1",
|
||||
// "url": "https://ark-auto-2127201628-cn-beijing-default.tos-cn-beijing.volces.com/%E8%A7%86%E9%A2%91/1.mp4",
|
||||
// },
|
||||
// {
|
||||
// "timeline": "2.1-4.5",
|
||||
// "url": "https://ark-auto-2127201628-cn-beijing-default.tos-cn-beijing.volces.com/%E8%A7%86%E9%A2%91/2.mp4",
|
||||
// },
|
||||
// {
|
||||
// "timeline": "4.5-12.2",
|
||||
// "url": "https://ark-auto-2127201628-cn-beijing-default.tos-cn-beijing.volces.com/%E8%A7%86%E9%A2%91/3.mp4",
|
||||
// },
|
||||
// {
|
||||
// "timeline": "12.2-13.6",
|
||||
// "url": "https://ark-auto-2127201628-cn-beijing-default.tos-cn-beijing.volces.com/%E8%A7%86%E9%A2%91/4.mp4",
|
||||
// },
|
||||
// {
|
||||
// "timeline": "13.6-17.7",
|
||||
// "url": "https://ark-auto-2127201628-cn-beijing-default.tos-cn-beijing.volces.com/%E8%A7%86%E9%A2%91/5.mp4model-gateway",
|
||||
// },
|
||||
// {
|
||||
// "timeline": "17.7-31.0",
|
||||
// "url": "https://ark-auto-2127201628-cn-beijing-default.tos-cn-beijing.volces.com/%E8%A7%86%E9%A2%91/6.mp4",
|
||||
// },
|
||||
// {
|
||||
// "timeline": "31.0-33.2",
|
||||
// "url": "https://ark-auto-2127201628-cn-beijing-default.tos-cn-beijing.volces.com/%E8%A7%86%E9%A2%91/7.mp4",
|
||||
// },
|
||||
// {
|
||||
// "timeline": "33.2-37.4",
|
||||
// "url": "https://ark-auto-2127201628-cn-beijing-default.tos-cn-beijing.volces.com/%E8%A7%86%E9%A2%91/8.mp4",
|
||||
// },
|
||||
// {
|
||||
// "timeline": "37.4-38.9",
|
||||
// "url": "https://ark-auto-2127201628-cn-beijing-default.tos-cn-beijing.volces.com/%E8%A7%86%E9%A2%91/9.mp4",
|
||||
// },
|
||||
// {
|
||||
// "timeline": "38.9-57.9",
|
||||
// "url": "https://ark-auto-2127201628-cn-beijing-default.tos-cn-beijing.volces.com/%E8%A7%86%E9%A2%91/10.mp4",
|
||||
// },
|
||||
// }
|
||||
// outputRes = append(outputRes, node.NodeFormField{
|
||||
// Field: fmt.Sprintf("segments"),
|
||||
// Value: a,
|
||||
// Label: fmt.Sprintf("segments"),
|
||||
// Type: "string",
|
||||
// })
|
||||
// outputRes = append(outputRes, node.NodeFormField{
|
||||
// Field: fmt.Sprintf("audioUrl"),
|
||||
// Value: "http://116.204.74.41:9000/tenantid-94/2026-06-11/9915351c-55b9-46d8-b783-3815126b.m4a",
|
||||
// Label: fmt.Sprintf("audioUrl"),
|
||||
// Type: "string",
|
||||
// })
|
||||
//}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -437,11 +512,8 @@ func MergeLambda(ctx context.Context, input any) (res any, err error) {
|
||||
// 1. 把所有节点输出拍平成 字段名->内容 的map
|
||||
dataMap := make(map[string]node.NodeFormField)
|
||||
_, outputMap, _ := GetNodeContextContent(nodeInput.Global, nodeInput.Config)
|
||||
for _, valueAny := range outputMap {
|
||||
field := node.NodeFormField{}
|
||||
if field, ok = valueAny.(node.NodeFormField); ok {
|
||||
dataMap[field.Field] = field
|
||||
}
|
||||
for _, field := range outputMap {
|
||||
dataMap[field.Field] = field
|
||||
}
|
||||
|
||||
// 2. 提取所有文案:text_content_0,1,2...
|
||||
|
||||
Reference in New Issue
Block a user