|
@@ -0,0 +1,145 @@
|
|
|
+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 = "重命名成功"
|
|
|
+}
|