Files
ai-agent/workflow/consts/node/node_template.go

187 lines
4.5 KiB
Go
Raw Normal View History

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{},
// }
//}