2026-05-12 13:34:28 +08:00
|
|
|
package node
|
|
|
|
|
|
|
|
|
|
// ======================== 【常量定义:所有中文文案放这里!】 ========================
|
|
|
|
|
// 分组名称
|
|
|
|
|
const (
|
|
|
|
|
NodeGroupNameComponent = "组件"
|
|
|
|
|
NodeGroupNameBase = "基础"
|
|
|
|
|
NodeGroupNameCustom = "自定义"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// 节点名称
|
|
|
|
|
const (
|
2026-06-10 14:23:55 +08:00
|
|
|
NodeNameTextModel = "生成文案"
|
|
|
|
|
NodeNameImageModel = "生成图片"
|
|
|
|
|
NodeNameVideoModel = "生成视频"
|
|
|
|
|
NodeNameAudioModel = "生成音频"
|
|
|
|
|
NodeNameBatchModel = "批量处理一起返回"
|
|
|
|
|
NodeNameSenseOptimizeModel = "语义优化"
|
|
|
|
|
NodeNameStoryOptimizeModel = "分镜优化"
|
|
|
|
|
NodeNameScriptOptimizeModel = "剧本优化"
|
|
|
|
|
NodeNameDataConversionModel = "参数转换"
|
|
|
|
|
NodeNameModel = "模型"
|
|
|
|
|
NodeNameMerge = "结果合并"
|
|
|
|
|
NodeNameDataMerge = "结果汇集"
|
|
|
|
|
NodeNameJudge = "条件判断"
|
|
|
|
|
NodeNameForm = "表单"
|
|
|
|
|
NodeNameHttp = "HTTP(S)接口"
|
|
|
|
|
NodeNameCustomNode = "自定义节点"
|
2026-05-12 13:34:28 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// 表单字段 Label
|
|
|
|
|
const (
|
2026-06-10 14:23:55 +08:00
|
|
|
FormLabelApiKey = "API Key"
|
|
|
|
|
FormLabelModel = "模型名称"
|
2026-05-12 13:34:28 +08:00
|
|
|
FormLabelCondition = "判断条件"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// ======================== 枚举类型 ========================
|
|
|
|
|
type NodeGroup string
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
NodeGroupComponent NodeGroup = "component"
|
|
|
|
|
NodeGroupBase NodeGroup = "base"
|
|
|
|
|
NodeGroupCustom NodeGroup = "custom"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type NodeType string
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
// 组件
|
2026-06-10 14:23:55 +08:00
|
|
|
NodeTypeTextModel NodeType = "text_model"
|
|
|
|
|
NodeTypeImageModel NodeType = "image_model"
|
|
|
|
|
NodeTypeVideoModel NodeType = "video_model"
|
|
|
|
|
NodeTypeAudioModel NodeType = "audio_model"
|
|
|
|
|
NodeTypeBatchModel NodeType = "batch_model"
|
2026-05-12 13:34:28 +08:00
|
|
|
|
2026-06-10 14:23:55 +08:00
|
|
|
NodeTypeSenseOptimizeModel NodeType = "sense_optimize_model"
|
|
|
|
|
NodeTypeStoryOptimizeModel NodeType = "story_optimize_model"
|
|
|
|
|
NodeTypeScriptOptimizeModel NodeType = "script_optimize_model"
|
2026-05-12 13:34:28 +08:00
|
|
|
// 基础
|
2026-06-10 14:23:55 +08:00
|
|
|
NodeTypeDataConversionModel NodeType = "data_conversion_model"
|
|
|
|
|
NodeTypeModel NodeType = "model"
|
|
|
|
|
NodeTypeMerge NodeType = "merge"
|
|
|
|
|
NodeTypeDataMerge NodeType = "data_merge"
|
|
|
|
|
NodeTypeJudge NodeType = "judge"
|
|
|
|
|
NodeTypeForm NodeType = "form"
|
|
|
|
|
NodeTypeIntent NodeType = "intent"
|
|
|
|
|
NodeTypeHttp NodeType = "http"
|
2026-05-12 13:34:28 +08:00
|
|
|
// 自定义
|
|
|
|
|
NodeTypeCustomNode NodeType = "custom_node"
|
|
|
|
|
)
|
|
|
|
|
|
2026-05-12 14:31:51 +08:00
|
|
|
const (
|
2026-06-10 14:23:55 +08:00
|
|
|
ModelTypeText = 100
|
|
|
|
|
ModelTypeImage = 200
|
|
|
|
|
ModelTypeAudio = 300
|
|
|
|
|
ModelTypeModality = 500
|
|
|
|
|
ModelTypeVideo = 600
|
2026-05-12 14:31:51 +08:00
|
|
|
)
|
|
|
|
|
|
2026-05-12 13:34:28 +08:00
|
|
|
// ======================== 结构定义 ========================
|
|
|
|
|
type NodeFormField struct {
|
2026-06-10 14:23:55 +08:00
|
|
|
Value any `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"`
|
|
|
|
|
FieldConstraint any `json:"fieldConstraint"`
|
2026-05-12 13:34:28 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type SelectOption struct {
|
|
|
|
|
Label string `json:"label"`
|
|
|
|
|
Value string `json:"value"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ModelItem struct {
|
2026-06-10 14:23:55 +08:00
|
|
|
ModelName string `json:"modelName"`
|
|
|
|
|
ModelForm []NodeFormField `json:"modelForm"`
|
2026-05-12 13:34:28 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type NodeItem struct {
|
2026-06-10 14:23:55 +08:00
|
|
|
NodeId string `json:"nodeId"`
|
|
|
|
|
NodeCode NodeType `json:"nodeCode"`
|
|
|
|
|
ModelType int `json:"modelType"`
|
|
|
|
|
NodeName string `json:"nodeName"` // 从常量来
|
|
|
|
|
SkillOption bool `json:"skillOption"`
|
|
|
|
|
PromptOption bool `json:"promptOption"`
|
|
|
|
|
IsSaveFile bool `json:"isSaveFile"`
|
|
|
|
|
FormConfig []NodeFormField `json:"formConfig"`
|
|
|
|
|
ModelConfig []ModelItem `json:"modelConfig"`
|
2026-05-12 13:34:28 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type NodeGroupItem struct {
|
|
|
|
|
Group NodeGroup `json:"group"`
|
|
|
|
|
Label string `json:"label"` // 从常量来
|
|
|
|
|
Items []NodeItem `json:"items"`
|
|
|
|
|
}
|