57 lines
1.9 KiB
Go
57 lines
1.9 KiB
Go
package session
|
|
|
|
import (
|
|
flowDto "ai-agent/workflow/model/dto/flow"
|
|
sessionDto "ai-agent/workflow/model/dto/session"
|
|
"ai-agent/workflow/service/flow"
|
|
sessionService "ai-agent/workflow/service/session"
|
|
"context"
|
|
|
|
"gitea.redpowerfuture.com/red-future/common/beans"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/os/glog"
|
|
)
|
|
|
|
type session struct{}
|
|
|
|
var Session = new(session)
|
|
|
|
func (c *session) WsExecute(ctx context.Context, req *sessionDto.WebSocketConnectReq) (res *beans.ResponseEmpty, err error) {
|
|
r := g.RequestFromCtx(ctx)
|
|
// 首次连接仅升级 WebSocket,不区分普通对话/工作流;由后续消息 type 路由到对应处理器
|
|
err = flow.WsConnect(ctx, r, req)
|
|
if err != nil {
|
|
glog.Errorf(ctx, "ws connect failed: %v", err)
|
|
return nil, err
|
|
}
|
|
// 标记响应缓冲区,使 MiddlewareHandlerResponse 跳过
|
|
r.Response.Writeln("")
|
|
return
|
|
}
|
|
|
|
func (c *session) Get(ctx context.Context, req *sessionDto.GetSessionInfoReq) (res *sessionDto.GetSessionInfoRes, err error) {
|
|
return sessionService.SessionService.Get(ctx, req)
|
|
}
|
|
|
|
func (c *session) List(ctx context.Context, req *sessionDto.ListSessionReq) (res *sessionDto.ListSessionRes, err error) {
|
|
return sessionService.SessionService.List(ctx, req)
|
|
}
|
|
|
|
func (c *session) Delete(ctx context.Context, req *sessionDto.DeleteSessionReq) (res *beans.ResponseEmpty, err error) {
|
|
if err = sessionService.SessionService.Delete(ctx, req); err != nil {
|
|
return
|
|
}
|
|
return &beans.ResponseEmpty{}, nil
|
|
}
|
|
|
|
func (c *session) DeleteRecord(ctx context.Context, req *sessionDto.DeleteSessionRecordReq) (res *beans.ResponseEmpty, err error) {
|
|
if err = sessionService.SessionService.DeleteRecord(ctx, req); err != nil {
|
|
return
|
|
}
|
|
return &beans.ResponseEmpty{}, nil
|
|
}
|
|
|
|
func (c *session) ResultList(ctx context.Context, req *sessionDto.ListWorkflowResultReq) (res *flowDto.ListFlowExecutionTreeRes, err error) {
|
|
return sessionService.SessionService.ResultList(ctx, req)
|
|
}
|