feat: Enhance AI Workflow with Variable Contracts and Input Mapping
- Added ConfigSchema, InputSchema, OutputSchema, and DefaultInputs to AIWorkflowNodeSpecResponse. - Implemented BuildAIWorkflowNodeSpecs to include variable contracts for start and send_reply nodes. - Introduced applyAutoInputMappings to automatically map inputs based on node connections. - Enhanced validation to check for required input mappings in workflows. - Updated workflow editor to support variable selection for node inputs. - Translated node names and labels to Chinese for better localization. - Added tests for variable mapping and validation logic.
This commit is contained in:
@@ -50,6 +50,12 @@ func TestAIAgentServiceCreatesDefaultWorkflow(t *testing.T) {
|
||||
if stored.EntryNodeID == "" {
|
||||
t.Fatalf("expected default draft definition")
|
||||
}
|
||||
if len(stored.Nodes) < 5 {
|
||||
t.Fatalf("expected product-ready default workflow, got nodes: %#v", stored.Nodes)
|
||||
}
|
||||
if !workflowHasNodeType(stored, "knowledge_retrieve") || !workflowHasNodeType(stored, "llm_reply") || !workflowHasNodeType(stored, "send_reply") {
|
||||
t.Fatalf("expected default workflow to include retrieve, llm reply, and send reply nodes: %#v", stored.Nodes)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAIWorkflowServicePublishAgentWorkflowBindsAgentVersion(t *testing.T) {
|
||||
@@ -169,3 +175,12 @@ func aiAgentWorkflowTestOperator() *dto.AuthPrincipal {
|
||||
Nickname: "agent-workflow-tester",
|
||||
}
|
||||
}
|
||||
|
||||
func workflowHasNodeType(def dsl.Definition, nodeType string) bool {
|
||||
for _, node := range def.Nodes {
|
||||
if node.Type == nodeType {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user