Browse Source

wip:异常回复提交

wangkaiyue 2 năm trước cách đây
mục cha
commit
942a0510d8
2 tập tin đã thay đổi với 11 bổ sung9 xóa
  1. 7 7
      internal/model/ws.go
  2. 4 2
      manifest/config/config.yaml

+ 7 - 7
internal/model/ws.go

@@ -44,20 +44,21 @@ func (m *WsChat) Handle(ws *ghttp.WebSocket, msg []byte) {
 			PersonId:   jSession.PositionId,
 			CreateTime: time.Now().Format(date.Date_Full_Layout),
 		})
-		// 校验是否在黑名单,黑名单不返回内容
-		if UserBlackList.CheckBlackList(m.Ctx, jSession.PositionId) {
-			return "", 0, nil
-		}
+
 		var err error
 		reply, from := "", 0
 		errReply := func() string {
+			// 校验是否在黑名单,黑名单不返回内容
+			if UserBlackList.CheckBlackList(m.Ctx, jSession.PositionId) {
+				return g.Cfg().MustGet(m.Ctx, "limit.blackMsg").String()
+			}
 			// 校验问答频率
 			if ChatLimit.GetBucket(m.Ctx, jSession.PositionId).TakeAvailable(1) == 0 {
 				return g.Cfg().MustGet(m.Ctx, "limit.exceedMsg").String()
 			}
 			// 问题敏感词过滤
 			if fsw.Match(req.Prompt) {
-				return g.Cfg().MustGet(m.Ctx, "limit.fswMsg", "您的问题可能包含敏感词汇,请修改后再提问!").String()
+				return g.Cfg().MustGet(m.Ctx, "limit.fswMsg").String()
 			}
 			return ""
 		}()
@@ -67,7 +68,7 @@ func (m *WsChat) Handle(ws *ghttp.WebSocket, msg []byte) {
 			reply, from, err = Question.DetailQuestion(m.Ctx, req)
 			if err != nil {
 				g.Log().Error(m.Ctx, "问答异常", err)
-				return "", 0, fmt.Errorf("问答异常")
+				return "", 0, fmt.Errorf(g.Cfg().MustGet(m.Ctx, "limit.errMsg").String())
 			}
 		}
 
@@ -84,7 +85,6 @@ func (m *WsChat) Handle(ws *ghttp.WebSocket, msg []byte) {
 		if replyId <= 0 {
 			g.Log().Error(m.Ctx, "问答存储存储异常")
 		}
-
 		return reply, replyId, nil
 	}()
 

+ 4 - 2
manifest/config/config.yaml

@@ -45,8 +45,10 @@ database:
 
 limit:
   rateMinute: 10 #每分钟速率
-  exceedMsg: "您的提问过于频繁,请等待一会儿再试" # 超出提示语句
-  fswMsg: "您的问题可能包含敏感词汇,请修改后再提问!"# 敏感词回复
+  exceedMsg: "您的提问过于频繁,请等待一会儿再试。" # 超出提示语句
+  fswMsg: "对不起,您的问题暂时无法回答,原因:您的访问行为可能涉及安全风险。"# 敏感词回复
+  blackMsg: "对不起,您的问题暂时无法回答,原因:您的访问行为可能涉及安全风险。" # 黑名单回复
+  errMsg: "对不起,智能助手开了点小差,请您稍后再试。"
 
 logger:
   path: "logs"        # 日志文件路径。默认为空,表示关闭,仅输出到终端