mirror of
https://github.com/yangjian102621/geekai.git
synced 2026-05-01 07:24:30 +08:00
修复聊天应用绑定模型后,还是会轮询 API KEY,而不会使用模型绑定的 API KEY的bug
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
- 功能新增:用户注册和用户登录增加用户协议和隐私政策功能,需要用户同意协议才可注册和登录。
|
- 功能新增:用户注册和用户登录增加用户协议和隐私政策功能,需要用户同意协议才可注册和登录。
|
||||||
- 功能优化:修改重新回答功能,撤回千面的问答内容为可编辑内容,撤回的内容不会增加额外的上下文
|
- 功能优化:修改重新回答功能,撤回千面的问答内容为可编辑内容,撤回的内容不会增加额外的上下文
|
||||||
- 功能优化:优化聊天记录的存储结构,增加模型名称字段,支持存储更长的模型名称
|
- 功能优化:优化聊天记录的存储结构,增加模型名称字段,支持存储更长的模型名称
|
||||||
|
- Bug 修复:修复
|
||||||
|
|
||||||
## v4.2.3
|
## v4.2.3
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ func (h *ChatHandler) sendMessage(ctx context.Context, session *types.ChatSessio
|
|||||||
return errors.New("User 对象转换失败," + err.Error())
|
return errors.New("User 对象转换失败," + err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
if userVo.Status == false {
|
if !userVo.Status {
|
||||||
return errors.New("您的账号已经被禁用,如果疑问,请联系管理员!")
|
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" ||
|
if len(files) > 0 && !(session.Model.Value == "gpt-4-all" ||
|
||||||
strings.HasPrefix(session.Model.Value, "gpt-4-gizmo") ||
|
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)
|
contents := make([]string, 0)
|
||||||
var file model.File
|
var file model.File
|
||||||
for _, v := range files {
|
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 the chat model bind a KEY, use it directly
|
||||||
if session.Model.KeyId > 0 {
|
if session.Model.KeyId > 0 {
|
||||||
h.DB.Where("id", session.Model.KeyId).Find(apiKey)
|
h.DB.Where("id", session.Model.KeyId).Find(apiKey)
|
||||||
}
|
} else { // use the last unused key
|
||||||
// use the last unused key
|
|
||||||
if apiKey.Id == 0 {
|
|
||||||
h.DB.Where("type", "chat").Where("enabled", true).Order("last_used_at ASC").First(apiKey)
|
h.DB.Where("type", "chat").Where("enabled", true).Order("last_used_at ASC").First(apiKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
if apiKey.Id == 0 {
|
if apiKey.Id == 0 {
|
||||||
return nil, errors.New("no available key, please import key")
|
return nil, errors.New("no available key, please import key")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 the role bind a model_id, use role's bind model_id
|
||||||
if chatRole.ModelId > 0 {
|
if chatRole.ModelId > 0 {
|
||||||
chatMessage.RoleId = int(chatRole.ModelId)
|
chatMessage.ModelId = int(chatRole.ModelId)
|
||||||
}
|
}
|
||||||
// get model info
|
// get model info
|
||||||
var chatModel model.ChatModel
|
var chatModel model.ChatModel
|
||||||
err = h.DB.Where("id", chatMessage.ModelId).First(&chatModel).Error
|
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模型暂未启用,请更换模型后再发起对话!!!")
|
utils.SendAndFlush(client, "当前AI模型暂未启用,请更换模型后再发起对话!!!")
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -130,6 +130,7 @@ func (h *WebsocketHandler) Client(c *gin.Context) {
|
|||||||
session.ChatId = chatMessage.ChatId
|
session.ChatId = chatMessage.ChatId
|
||||||
session.Tools = chatMessage.Tools
|
session.Tools = chatMessage.Tools
|
||||||
session.Stream = chatMessage.Stream
|
session.Stream = chatMessage.Stream
|
||||||
|
session.Model.KeyId = chatMessage.ModelId
|
||||||
// 复制模型数据
|
// 复制模型数据
|
||||||
err = utils.CopyObject(chatModel, &session.Model)
|
err = utils.CopyObject(chatModel, &session.Model)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user