- 新增同会话+同工作流最近执行失败且参数一致时断点续跑逻辑 - exec_workflow/exec_chat 新增 error 字段存储原始错误,error_message 仅存友好提示 - 新增 UpdateExecChatReq 与 exec_chat_dao Update 方法 - 新增 GetLatestBySessionAndFlow 查询最近执行记录 - 修正 ListDates 分组与排序 SQL 表达式 - 新增 pipeline 配置结构,删除旧设计文档
85 lines
2.9 KiB
Go
85 lines
2.9 KiB
Go
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 {}
|
|
}
|