|
@@ -96,6 +96,7 @@ func (l *CreateDepartmentLogic) CreateDepartment(req *types.DepartmentInfo) (res
|
|
|
|
|
|
// 创建默认智能体
|
|
|
apps_info := &apps.Apps{
|
|
|
+ ParentID: nil,
|
|
|
TeamID: teams_info.ID,
|
|
|
TmbID: team_members_info.ID,
|
|
|
Name: "默认智能体",
|
|
@@ -104,7 +105,193 @@ func (l *CreateDepartmentLogic) CreateDepartment(req *types.DepartmentInfo) (res
|
|
|
Avatar: "/imgs/app/avatar/simple.svg",
|
|
|
Intro: "",
|
|
|
TeamTags: []string{},
|
|
|
- Modules: []apps.AppModule{},
|
|
|
+ Modules: []apps.AppModule{
|
|
|
+ {
|
|
|
+ NodeID: "userGuide",
|
|
|
+ Name: "系统配置",
|
|
|
+ Intro: "",
|
|
|
+ FlowNodeType: "userGuide",
|
|
|
+ Position: apps.Position{
|
|
|
+ X: 531.242273606555,
|
|
|
+ Y: -486.761172954975,
|
|
|
+ },
|
|
|
+ Version: "481",
|
|
|
+ Inputs: []apps.AppInput{},
|
|
|
+ Outputs: []apps.AppOutput{},
|
|
|
+ },
|
|
|
+ {
|
|
|
+ NodeID: "workflowStartNodeId",
|
|
|
+ Name: "流程开始",
|
|
|
+ Intro: "",
|
|
|
+ Avatar: "core/workflow/template/workflowStart",
|
|
|
+ FlowNodeType: "workflowStart",
|
|
|
+ Position: apps.Position{
|
|
|
+ X: 558.40823764155,
|
|
|
+ Y: 123.723874291941,
|
|
|
+ },
|
|
|
+ Version: "481",
|
|
|
+ Inputs: []apps.AppInput{
|
|
|
+ {
|
|
|
+ Key: "userChatInput",
|
|
|
+ RenderTypeList: []string{"reference", "textarea"},
|
|
|
+ ValueType: "string",
|
|
|
+ Label: "workflow:user_question",
|
|
|
+ ToolDescription: "workflow:user_question",
|
|
|
+ Required: true,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ Outputs: []apps.AppOutput{
|
|
|
+ {
|
|
|
+ ID: "userChatInput",
|
|
|
+ Key: "userChatInput",
|
|
|
+ Label: "common:core.module.input.label.user question",
|
|
|
+ Type: "static",
|
|
|
+ ValueType: "string",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ ID: "userFiles",
|
|
|
+ Key: "userFiles",
|
|
|
+ Label: "app:workflow.user_file_input",
|
|
|
+ Description: "app:workflow.user_file_input_desc",
|
|
|
+ Type: "static",
|
|
|
+ ValueType: "arrayString",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ NodeID: "7BdojPlukIQw",
|
|
|
+ Name: "AI 对话",
|
|
|
+ Intro: "AI 大模型对话",
|
|
|
+ Avatar: "core/workflow/template/aiChat",
|
|
|
+ FlowNodeType: "chatNode",
|
|
|
+ ShowStatus: true,
|
|
|
+ Position: apps.Position{
|
|
|
+ X: 1106.32383879608,
|
|
|
+ Y: -350.603067468347,
|
|
|
+ },
|
|
|
+ Version: "4813",
|
|
|
+ Inputs: []apps.AppInput{
|
|
|
+ {
|
|
|
+ Key: "model",
|
|
|
+ RenderTypeList: []string{"settingLLMModel", "reference"},
|
|
|
+ ValueType: "string",
|
|
|
+ Value: "DeepSeek-V3",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "temperature",
|
|
|
+ RenderTypeList: []string{"hidden"},
|
|
|
+ ValueType: "number",
|
|
|
+ Value: int32(0),
|
|
|
+ Min: getInt32(0),
|
|
|
+ Max: getInt32(10),
|
|
|
+ Step: getInt32(1),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "maxToken",
|
|
|
+ RenderTypeList: []string{"hidden"},
|
|
|
+ ValueType: "number",
|
|
|
+ Value: int32(2000),
|
|
|
+ Min: getInt32(100),
|
|
|
+ Max: getInt32(4000),
|
|
|
+ Step: getInt32(50),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "isResponseAnswerText",
|
|
|
+ RenderTypeList: []string{"hidden"},
|
|
|
+ ValueType: "boolean",
|
|
|
+ Value: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "aiChatQuoteRole",
|
|
|
+ RenderTypeList: []string{"hidden"},
|
|
|
+ ValueType: "string",
|
|
|
+ Value: "system",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "quoteTemplate",
|
|
|
+ RenderTypeList: []string{"hidden"},
|
|
|
+ ValueType: "string",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "quotePrompt",
|
|
|
+ RenderTypeList: []string{"hidden"},
|
|
|
+ ValueType: "string",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "systemPrompt",
|
|
|
+ RenderTypeList: []string{"textarea", "reference"},
|
|
|
+ Max: getInt32(3000),
|
|
|
+ ValueType: "string",
|
|
|
+ Label: "core.ai.Prompt",
|
|
|
+ Description: "core.app.tip.systemPromptTip",
|
|
|
+ Placeholder: "core.app.tip.chatNodeSystemPromptTip",
|
|
|
+ Value: "",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "history",
|
|
|
+ RenderTypeList: []string{"numberInput", "reference"},
|
|
|
+ ValueType: "chatHistory",
|
|
|
+ Label: "core.module.input.label.chat history",
|
|
|
+ Required: true,
|
|
|
+ Min: getInt32(0),
|
|
|
+ Max: getInt32(30),
|
|
|
+ Value: int32(6),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "userChatInput",
|
|
|
+ RenderTypeList: []string{"reference", "textarea"},
|
|
|
+ ValueType: "string",
|
|
|
+ Label: "common:core.module.input.label.user question",
|
|
|
+ Required: true,
|
|
|
+ ToolDescription: "common:core.module.input.label.user question",
|
|
|
+ Value: []interface{}{"workflowStartNodeId", "userChatInput"},
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "quoteQA",
|
|
|
+ RenderTypeList: []string{"settingDatasetQuotePrompt"},
|
|
|
+ Label: "",
|
|
|
+ DebugLabel: "common:core.module.Dataset quote.label",
|
|
|
+ Description: "",
|
|
|
+ ValueType: "datasetQuote",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "fileUrlList",
|
|
|
+ RenderTypeList: []string{"reference", "input"},
|
|
|
+ Label: "app:file_quote_link",
|
|
|
+ DebugLabel: "app:file_quote_link",
|
|
|
+ ValueType: "arrayString",
|
|
|
+ Value: [][]interface{}{{"workflowStartNodeId", "userFiles"}},
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Key: "aiChatVision",
|
|
|
+ RenderTypeList: []string{"hidden"},
|
|
|
+ ValueType: "boolean",
|
|
|
+ Value: true,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ Outputs: []apps.AppOutput{
|
|
|
+ {
|
|
|
+ ID: "history",
|
|
|
+ Key: "history",
|
|
|
+ Required: true,
|
|
|
+ Label: "common:core.module.output.label.New context",
|
|
|
+ Description: "common:core.module.output.description.New context",
|
|
|
+ ValueType: "chatHistory",
|
|
|
+ ValueDesc: "{\n obj: System | Human | AI;\n value: string;\n}[]",
|
|
|
+ Type: "static",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ ID: "answerText",
|
|
|
+ Key: "answerText",
|
|
|
+ Required: true,
|
|
|
+ Label: "common:core.module.output.label.Ai response content",
|
|
|
+ Description: "common:core.module.output.description.Ai response content",
|
|
|
+ ValueType: "string",
|
|
|
+ Type: "static",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
Edges: []apps.Edge{
|
|
|
{
|
|
|
Source: "workflowStartNodeId",
|
|
@@ -114,7 +301,7 @@ func (l *CreateDepartmentLogic) CreateDepartment(req *types.DepartmentInfo) (res
|
|
|
},
|
|
|
},
|
|
|
PluginData: apps.PluginData{
|
|
|
- ID: primitive.NewObjectID(),
|
|
|
+ ID: mustParseObjectID("67da46b29667c5bf21203554"),
|
|
|
NodeVersion: "67da46d29667c5bf2120361a",
|
|
|
},
|
|
|
InheritPermission: true,
|
|
@@ -138,15 +325,30 @@ func (l *CreateDepartmentLogic) CreateDepartment(req *types.DepartmentInfo) (res
|
|
|
CustomUrl: "",
|
|
|
},
|
|
|
Instruction: "",
|
|
|
- ID: primitive.NewObjectID(),
|
|
|
+ ID: mustParseObjectID("67da46d29667c5bf2120361d"),
|
|
|
},
|
|
|
- UpdateTime: time.Date(2024, 7, 10, 12, 0, 18, 197000000, time.UTC),
|
|
|
+ UpdateTime: time.Date(2025, 3, 19, 4, 24, 4, 394000000, time.UTC),
|
|
|
+ ScheduledTriggerConfig: nil,
|
|
|
+ ScheduledTriggerNextTime: nil,
|
|
|
}
|
|
|
|
|
|
- err = l.svcCtx.MongoModel.TeamMembersModel.Insert(context.TODO(), team_members_info)
|
|
|
+ err = l.svcCtx.MongoModel.AppsModel.Insert(context.TODO(), apps_info)
|
|
|
if err != nil {
|
|
|
return nil, errorx.NewInvalidArgumentError("fastgpt create failed " + err.Error())
|
|
|
}
|
|
|
|
|
|
return &types.BaseMsgResp{Msg: errormsg.Success}, nil
|
|
|
}
|
|
|
+
|
|
|
+func mustParseObjectID(hex string) primitive.ObjectID {
|
|
|
+ id, err := primitive.ObjectIDFromHex(hex)
|
|
|
+ if err != nil {
|
|
|
+ panic(err) // 或者根据需要处理错误
|
|
|
+ }
|
|
|
+ return id
|
|
|
+}
|
|
|
+
|
|
|
+func getInt32(n int32) *int32 {
|
|
|
+ num := int32(n)
|
|
|
+ return &num
|
|
|
+}
|