package main import ( digitalhumanController "ai-agent/digital-human/controller" "ai-agent/workflow/service/flow" // 空导入:加载内置模型工具与工作流处理器(组合根统一装载,业务侧不感知实现位置) _ "ai-agent/tools/builtin/current_time" "ai-agent/workflow/consts/public" workController "ai-agent/workflow/controller" workflowController "ai-agent/workflow/controller/flow" workflowNodeController "ai-agent/workflow/controller/node" sessionController "ai-agent/workflow/controller/session" workflowSkillController "ai-agent/workflow/controller/skill" toolController "ai-agent/workflow/controller/tool" _ "ai-agent/workflow/service/flow/processor/builtin/media" _ "ai-agent/workflow/service/flow/processor/builtin/split_batch" _ "ai-agent/workflow/service/flow/processor/builtin/split_segment" _ "ai-agent/workflow/service/flow/processor/builtin/split_shots_pipeline" "context" "os" "os/signal" "syscall" "gitea.redpowerfuture.com/red-future/common/http" "gitea.redpowerfuture.com/red-future/common/jaeger" gmq "github.com/bjang03/gmq/core/gmq" "github.com/bjang03/gmq/mq" _ "github.com/gogf/gf/contrib/drivers/pgsql/v2" _ "github.com/gogf/gf/contrib/nosql/redis/v2" "github.com/gogf/gf/v2/frame/g" ) func main() { ctx := context.Background() defer jaeger.ShutDown(ctx) // 注册HTTP路由 http.Httpserver.BindHandler("/httpNodeCallback", workflowController.FlowCallBack.HttpNodeCallback) http.RouteRegister([]interface{}{ //digitalhuman相关接口 digitalhumanController.Audio, // 语音相关接口 digitalhumanController.CustomVoice, // 自定义语音相关接口 digitalhumanController.DigitalHuman, // 数字人相关接口 digitalhumanController.Video, // 视频相关接口 digitalhumanController.AsyncTask, // 异步任务相关接口 workController.CreationInfo, workflowController.FlowExecution, workflowController.FlowUser, workflowController.FlowTemplate, workflowNodeController.NodeLibrary, workflowNodeController.NodePrompt, workflowSkillController.SkillTemplate, workflowSkillController.SkillUser, toolController.Tool, sessionController.Session, }) //workflow.ExternalInterruptDemo() //err := activePullService.ActivePullService.AllList(ctx) //if err != nil { // g.Log().Error(ctx, "ActivePullService err: %v", err) //} gmq.GmqRegister(public.GmqMsgPluginsName, &mq.NatsConn{ NatsConfig: mq.NatsConfig{ Addr: g.Config().MustGet(ctx, "nats.addr").String(), Port: g.Config().MustGet(ctx, "nats.port").String(), Username: g.Config().MustGet(ctx, "nats.username").String(), Password: g.Config().MustGet(ctx, "nats.password").String(), }, }) // 监听退出信号,执行优雅关闭 sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) go func() { <-sigCh flow.SessionWsService.Close() }() // 保持应用运行 select {} }