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" ) const ( ModelTypeText = 1 ModelTypeImage = 2 ) // ======================== 结构定义 ======================== 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"` ModelType int `json:"modelType"` 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{}, // } //}