feat: 新增工作流执行模块
新增流程执行记录的实体、DTO、DAO、控制器和服务层,支持工作流的执行、回调及结果树状列表查询;同时更新服务名称为 ai-agent。
This commit is contained in:
186
workflow/consts/node/node_template.go
Normal file
186
workflow/consts/node/node_template.go
Normal file
@@ -0,0 +1,186 @@
|
||||
package node
|
||||
|
||||
// ======================== 【常量定义:所有中文文案放这里!】 ========================
|
||||
// 分组名称
|
||||
const (
|
||||
NodeGroupNameComponent = "组件"
|
||||
NodeGroupNameBase = "基础"
|
||||
NodeGroupNameCustom = "自定义"
|
||||
)
|
||||
|
||||
// 节点名称
|
||||
const (
|
||||
NodeNameTextModel = "生成文案"
|
||||
NodeNameImageModel = "生成图片"
|
||||
NodeNameVideoModel = "视频"
|
||||
NodeNameAudioModel = "音频"
|
||||
NodeNameModel = "模型"
|
||||
NodeNameMerge = "结果合并"
|
||||
NodeNameJudge = "判断节点"
|
||||
NodeNameForm = "表单"
|
||||
NodeNameCustomNode = "自定义节点"
|
||||
)
|
||||
|
||||
// 表单字段 Label
|
||||
const (
|
||||
FormLabelApiKey = "API Key"
|
||||
FormLabelModel = "模型名称"
|
||||
|
||||
FormLabelCondition = "判断条件"
|
||||
)
|
||||
|
||||
// ======================== 枚举类型 ========================
|
||||
type NodeGroup string
|
||||
|
||||
const (
|
||||
NodeGroupComponent NodeGroup = "component"
|
||||
NodeGroupBase NodeGroup = "base"
|
||||
NodeGroupCustom NodeGroup = "custom"
|
||||
)
|
||||
|
||||
type NodeType string
|
||||
|
||||
const (
|
||||
// 组件
|
||||
NodeTypeTextModel NodeType = "text_model"
|
||||
NodeTypeImageModel NodeType = "image_model"
|
||||
NodeTypeVideoModel NodeType = "video_model"
|
||||
NodeTypeAudioModel NodeType = "audio_model"
|
||||
|
||||
// 基础
|
||||
NodeTypeModel NodeType = "model"
|
||||
NodeTypeMerge NodeType = "merge"
|
||||
NodeTypeJudge NodeType = "judge"
|
||||
NodeTypeForm NodeType = "form"
|
||||
NodeTypeIntent NodeType = "intent"
|
||||
|
||||
// 自定义
|
||||
NodeTypeCustomNode NodeType = "custom_node"
|
||||
)
|
||||
|
||||
// ======================== 结构定义 ========================
|
||||
type NodeFormField struct {
|
||||
Value string `json:"value"`
|
||||
Field string `json:"field"`
|
||||
Label string `json:"label"` // 从常量来
|
||||
Type string `json:"type"`
|
||||
Required bool `json:"required"`
|
||||
Default any `json:"default,omitempty"`
|
||||
Options []SelectOption `json:"options"`
|
||||
Expand any `json:"expand"`
|
||||
}
|
||||
|
||||
type SelectOption struct {
|
||||
Label string `json:"label"`
|
||||
Value string `json:"value"`
|
||||
}
|
||||
|
||||
type ModelItem struct {
|
||||
ModelApiKey string `json:"modelApiKey"`
|
||||
ModelName string `json:"modelName"`
|
||||
ModelForm map[string]any `json:"modelForm"`
|
||||
ModelResponse map[string]any `json:"modelResponse"`
|
||||
}
|
||||
|
||||
type NodeItem struct {
|
||||
NodeId string `json:"nodeId"`
|
||||
NodeCode NodeType `json:"nodeCode"`
|
||||
NodeName string `json:"nodeName"` // 从常量来
|
||||
SkillOption bool `json:"skillOption"`
|
||||
FormConfig []NodeFormField `json:"formConfig"`
|
||||
ModelConfig []ModelItem `json:"modelConfig"`
|
||||
}
|
||||
|
||||
type NodeGroupItem struct {
|
||||
Group NodeGroup `json:"group"`
|
||||
Label string `json:"label"` // 从常量来
|
||||
Items []NodeItem `json:"items"`
|
||||
}
|
||||
|
||||
//
|
||||
//// 文案模型节点定义
|
||||
//func NewTextModelNode() NodeItem {
|
||||
// return NodeItem{
|
||||
// NodeCode: NodeTypeTextModel,
|
||||
// NodeName: NodeNameTextModel,
|
||||
// FormConfig: []ModelItem{},
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//// 图片模型节点
|
||||
//func NewImageModelNode() NodeItem {
|
||||
// return NodeItem{
|
||||
// NodeCode: NodeTypeImageModel,
|
||||
// NodeName: NodeNameImageModel,
|
||||
// FormConfig: []ModelItem{},
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//// 音频模型节点
|
||||
//func NewAudioModelNode() NodeItem {
|
||||
// return NodeItem{
|
||||
// NodeCode: NodeTypeAudioModel,
|
||||
// NodeName: NodeNameAudioModel,
|
||||
// FormConfig: []ModelItem{},
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//// 视频模型节点
|
||||
//func NewVideoModelNode() NodeItem {
|
||||
// return NodeItem{
|
||||
// NodeCode: NodeTypeVideoModel,
|
||||
// NodeName: NodeNameVideoModel,
|
||||
// FormConfig: []ModelItem{},
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//// 基础模型节点
|
||||
//func NewModelNode() NodeItem {
|
||||
// return NodeItem{
|
||||
// NodeCode: NodeTypeModel,
|
||||
// NodeName: NodeNameModel,
|
||||
// FormConfig: []ModelItem{
|
||||
// {
|
||||
// ModelName: "模型名称",
|
||||
// ModelForm: []NodeFormField{
|
||||
// {Field: "apiKey", Label: FormLabelApiKey, Type: "input", Required: true},
|
||||
// {Field: "model", Label: FormLabelModel, Type: "input", Required: true},
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//// 判断节点
|
||||
//func NewJudgeNode() NodeItem {
|
||||
// return NodeItem{
|
||||
// NodeCode: NodeTypeJudge,
|
||||
// NodeName: NodeNameJudge,
|
||||
// FormConfig: []ModelItem{
|
||||
// {
|
||||
// ModelName: "判断条件",
|
||||
// ModelForm: []NodeFormField{
|
||||
// {Field: "condition", Label: FormLabelCondition, Type: "input", Required: true},
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//// 表单参数节点
|
||||
//func NewFormNode() NodeItem {
|
||||
// return NodeItem{
|
||||
// NodeCode: NodeTypeForm,
|
||||
// NodeName: NodeNameForm,
|
||||
// FormConfig: []ModelItem{},
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//// 自定义节点
|
||||
//func NewCustomNode() NodeItem {
|
||||
// return NodeItem{
|
||||
// NodeCode: NodeTypeCustomNode,
|
||||
// NodeName: NodeNameCustomNode,
|
||||
// FormConfig: []ModelItem{},
|
||||
// }
|
||||
//}
|
||||
Reference in New Issue
Block a user