handler chat error in the chat entry func

This commit is contained in:
RockYang 2024-05-15 15:30:34 +08:00
parent 3ab29da8f0
commit 36c27d6092
7 changed files with 14 additions and 23 deletions

View File

@ -42,12 +42,10 @@ func (h *ChatHandler) sendAzureMessage(
logger.Info("HTTP请求完成耗时", time.Now().Sub(start)) logger.Info("HTTP请求完成耗时", time.Now().Sub(start))
if err != nil { if err != nil {
if strings.Contains(err.Error(), "context canceled") { if strings.Contains(err.Error(), "context canceled") {
logger.Info("用户取消了请求:", prompt) return fmt.Errorf("用户取消了请求:%s", prompt)
return nil
} else if strings.Contains(err.Error(), "no available key") { } else if strings.Contains(err.Error(), "no available key") {
return errors.New("抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员") return errors.New("抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员")
} }
return err return err
} else { } else {
defer response.Body.Close() defer response.Body.Close()

View File

@ -58,9 +58,9 @@ func (h *ChatHandler) sendBaiduMessage(
response, err := h.doRequest(ctx, req, session, &apiKey) response, err := h.doRequest(ctx, req, session, &apiKey)
logger.Info("HTTP请求完成耗时", time.Now().Sub(start)) logger.Info("HTTP请求完成耗时", time.Now().Sub(start))
if err != nil { if err != nil {
logger.Error(err)
if strings.Contains(err.Error(), "context canceled") { if strings.Contains(err.Error(), "context canceled") {
logger.Info("用户取消了请求:", prompt) return fmt.Errorf("用户取消了请求:%s", prompt)
return nil
} else if strings.Contains(err.Error(), "no available key") { } else if strings.Contains(err.Error(), "no available key") {
return errors.New("抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员") return errors.New("抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员")
} }

View File

@ -43,8 +43,7 @@ func (h *ChatHandler) sendChatGLMMessage(
logger.Info("HTTP请求完成耗时", time.Now().Sub(start)) logger.Info("HTTP请求完成耗时", time.Now().Sub(start))
if err != nil { if err != nil {
if strings.Contains(err.Error(), "context canceled") { if strings.Contains(err.Error(), "context canceled") {
logger.Info("用户取消了请求:", prompt) return fmt.Errorf("用户取消了请求:%s", prompt)
return nil
} else if strings.Contains(err.Error(), "no available key") { } else if strings.Contains(err.Error(), "no available key") {
return errors.New("抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员") return errors.New("抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员")
} }

View File

@ -42,16 +42,11 @@ func (h *ChatHandler) sendOpenAiMessage(
response, err := h.doRequest(ctx, req, session, &apiKey) response, err := h.doRequest(ctx, req, session, &apiKey)
logger.Info("HTTP请求完成耗时", time.Now().Sub(start)) logger.Info("HTTP请求完成耗时", time.Now().Sub(start))
if err != nil { if err != nil {
logger.Error(err)
if strings.Contains(err.Error(), "context canceled") { if strings.Contains(err.Error(), "context canceled") {
logger.Info("用户取消了请求:", prompt) return fmt.Errorf("用户取消了请求:%s", prompt)
return nil
} else if strings.Contains(err.Error(), "no available key") { } else if strings.Contains(err.Error(), "no available key") {
utils.ReplyMessage(ws, "抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员") return errors.New("抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员")
return nil
} }
utils.ReplyMessage(ws, err.Error())
return err return err
} else { } else {
defer response.Body.Close() defer response.Body.Close()

View File

@ -57,8 +57,7 @@ func (h *ChatHandler) sendQWenMessage(
logger.Info("HTTP请求完成耗时", time.Now().Sub(start)) logger.Info("HTTP请求完成耗时", time.Now().Sub(start))
if err != nil { if err != nil {
if strings.Contains(err.Error(), "context canceled") { if strings.Contains(err.Error(), "context canceled") {
logger.Info("用户取消了请求:", prompt) return fmt.Errorf("用户取消了请求:%s", prompt)
return nil
} else if strings.Contains(err.Error(), "no available key") { } else if strings.Contains(err.Error(), "no available key") {
return errors.New("抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员") return errors.New("抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员")
} }

View File

@ -13,6 +13,7 @@ import (
"crypto/sha256" "crypto/sha256"
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"errors"
"fmt" "fmt"
"geekai/core/types" "geekai/core/types"
"geekai/store/model" "geekai/store/model"
@ -87,8 +88,7 @@ func (h *ChatHandler) sendXunFeiMessage(
res = h.DB.Where("platform", session.Model.Platform).Where("type", "chat").Where("enabled", true).Order("last_used_at ASC").First(&apiKey) res = h.DB.Where("platform", session.Model.Platform).Where("type", "chat").Where("enabled", true).Order("last_used_at ASC").First(&apiKey)
} }
if res.Error != nil { if res.Error != nil {
utils.ReplyMessage(ws, "抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员") return errors.New("抱歉😔😔😔,系统已经没有可用的 API KEY请联系管理员")
return nil
} }
// 更新 API KEY 的最后使用时间 // 更新 API KEY 的最后使用时间
h.DB.Model(&apiKey).UpdateColumn("last_used_at", time.Now().Unix()) h.DB.Model(&apiKey).UpdateColumn("last_used_at", time.Now().Unix())

View File

@ -186,7 +186,7 @@ func (s *LicenseService) IsValidApiURL(uri string) error {
return nil return nil
} }
if s.urlWhiteList == nil || len(s.urlWhiteList) == 0 { if len(s.urlWhiteList) == 0 {
urls, err := s.fetchUrlWhiteList() urls, err := s.fetchUrlWhiteList()
if err == nil { if err == nil {
s.urlWhiteList = urls s.urlWhiteList = urls