diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ae19b84..5fe6fbb0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - 功能新增:用户注册和用户登录增加用户协议和隐私政策功能,需要用户同意协议才可注册和登录。 - 功能优化:修改重新回答功能,撤回千面的问答内容为可编辑内容,撤回的内容不会增加额外的上下文 - 功能优化:优化聊天记录的存储结构,增加模型名称字段,支持存储更长的模型名称 +- Bug 修复:修复 ## v4.2.3 diff --git a/api/handler/chat_handler.go b/api/handler/chat_handler.go index fc7172c7..7261f14e 100644 --- a/api/handler/chat_handler.go +++ b/api/handler/chat_handler.go @@ -71,7 +71,7 @@ func (h *ChatHandler) sendMessage(ctx context.Context, session *types.ChatSessio return errors.New("User 对象转换失败," + err.Error()) } - if userVo.Status == false { + if !userVo.Status { return errors.New("您的账号已经被禁用,如果疑问,请联系管理员!") } @@ -200,7 +200,7 @@ func (h *ChatHandler) sendMessage(ctx context.Context, session *types.ChatSessio // 如果不是逆向模型,则提取文件内容 if len(files) > 0 && !(session.Model.Value == "gpt-4-all" || strings.HasPrefix(session.Model.Value, "gpt-4-gizmo") || - strings.HasSuffix(session.Model.Value, "claude-3")) { + strings.HasPrefix(session.Model.Value, "claude-3")) { contents := make([]string, 0) var file model.File for _, v := range files { @@ -327,11 +327,10 @@ func (h *ChatHandler) doRequest(ctx context.Context, req types.ApiRequest, sessi // if the chat model bind a KEY, use it directly if session.Model.KeyId > 0 { h.DB.Where("id", session.Model.KeyId).Find(apiKey) - } - // use the last unused key - if apiKey.Id == 0 { + } else { // use the last unused key h.DB.Where("type", "chat").Where("enabled", true).Order("last_used_at ASC").First(apiKey) } + if apiKey.Id == 0 { return nil, errors.New("no available key, please import key") } diff --git a/api/handler/ws_handler.go b/api/handler/ws_handler.go index 77e9636e..958a1266 100644 --- a/api/handler/ws_handler.go +++ b/api/handler/ws_handler.go @@ -104,12 +104,12 @@ func (h *WebsocketHandler) Client(c *gin.Context) { } // if the role bind a model_id, use role's bind model_id if chatRole.ModelId > 0 { - chatMessage.RoleId = int(chatRole.ModelId) + chatMessage.ModelId = int(chatRole.ModelId) } // get model info var chatModel model.ChatModel err = h.DB.Where("id", chatMessage.ModelId).First(&chatModel).Error - if err != nil || chatModel.Enabled == false { + if err != nil || !chatModel.Enabled { utils.SendAndFlush(client, "当前AI模型暂未启用,请更换模型后再发起对话!!!") continue } @@ -130,6 +130,7 @@ func (h *WebsocketHandler) Client(c *gin.Context) { session.ChatId = chatMessage.ChatId session.Tools = chatMessage.Tools session.Stream = chatMessage.Stream + session.Model.KeyId = chatMessage.ModelId // 复制模型数据 err = utils.CopyObject(chatModel, &session.Model) if err != nil {