package rag import ( "encoding/json" "eta/eta_api/controllers" "eta/eta_api/controllers/rag/llm_http" "eta/eta_api/models" "eta/eta_api/models/llm" "eta/eta_api/utils" "time" ) type UserChatController struct { controllers.BaseAuthController } // NewChat @Title 新建对话框 // @Description 新建对话框 // @Success 101 {object} response.ListResp // @router /chat/new_chat [post] func (ucCtrl *UserChatController) NewChat() { br := new(models.BaseResponse).Init() defer func() { ucCtrl.Data["json"] = br ucCtrl.ServeJSON() }() var req llm_http.UserChatReq err := json.Unmarshal(ucCtrl.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } sysUser := ucCtrl.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } if req.ChatTitle == "" { req.ChatTitle = "新会话" } session := llm.UserLlmChat{ UserId: sysUser.AdminId, CreatedTime: time.Now(), ChatTitle: req.ChatTitle, } err = session.CreateChatSession() if err != nil { br.Msg = "创建失败" br.ErrMsg = "创建失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "创建成功" } // RenameChat @Title 新建对话框 // @Description 新建对话框 // @Success 101 {object} response.ListResp // @router /chat/rename_chat [post] func (ucCtrl *UserChatController) RenameChat() { br := new(models.BaseResponse).Init() defer func() { ucCtrl.Data["json"] = br ucCtrl.ServeJSON() }() var req llm_http.UserChatReq err := json.Unmarshal(ucCtrl.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } sysUser := ucCtrl.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } if req.ChatId <= 0 { br.Msg = "非法的对话框Id" br.ErrMsg = "非法的对话框Id" return } if req.ChatTitle == "" { br.Msg = "重命名不能为空" br.ErrMsg = "重命名不能为空" return } session := llm.UserLlmChat{ Id: req.ChatId, UpdateTime: time.Now(), UserId: sysUser.AdminId, ChatTitle: req.ChatTitle, } err = session.RenameChatSession() if err != nil { br.Msg = "重命名失败" br.ErrMsg = "重命名失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "重命名成功" } // GetUserChatList @Title 获取用户对话框列表 // @Description 获取用户对话框列表 // @Success 101 {object} response.ListResp // @router /chat/user_chat_list [get] func (ucCtrl *UserChatController) GetUserChatList() { br := new(models.BaseResponse).Init() defer func() { ucCtrl.Data["json"] = br ucCtrl.ServeJSON() }() sysUser := ucCtrl.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } //周日是0,周六是6 toDay := time.Now().Weekday() offset := int(time.Monday - toDay) if offset > 0 { offset -= 7 } monDay := time.Now().AddDate(0, 0, offset).Format(utils.FormatDate) chatList, err := llm.GetUserChatList(sysUser.AdminId, monDay, time.Now().Format(utils.FormatDate)) if err != nil { br.Msg = "重命名失败" br.ErrMsg = "重命名失败,Err:" + err.Error() return } br.Data = chatList br.Ret = 200 br.Success = true br.Msg = "重命名成功" }