From 979a0cdd2e774b9f306ff08c52e079a66363ba80 Mon Sep 17 00:00:00 2001 From: Soulter <37870767+Soulter@users.noreply.github.com> Date: Mon, 13 Mar 2023 19:46:30 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=87=AA=E6=9C=89=E6=95=8F=E6=84=9F?= =?UTF-8?q?=E8=AF=8D=E6=8B=A6=E6=88=AA=E5=99=A8=E6=94=AF=E6=8C=81=E6=AD=A3?= =?UTF-8?q?=E5=88=99=E5=8C=B9=E9=85=8D=20#18=20fix:=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=98=BE=E7=A4=BA=E7=9A=84=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cores/qqbot/core.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/cores/qqbot/core.py b/cores/qqbot/core.py index 1a4e89484..c6b3db5b2 100644 --- a/cores/qqbot/core.py +++ b/cores/qqbot/core.py @@ -61,7 +61,7 @@ direct_message_mode = True abs_path = os.path.dirname(os.path.realpath(sys.argv[0])) + '/' # 版本 -version = '2.6' +version = '2.7 ChineseAreGood Ver.' # 语言模型提供商 REV_CHATGPT = 'rev_chatgpt' @@ -276,7 +276,7 @@ def initBot(cfg, prov): version = f.read() except: print('[System-Err] 读取更新记录文件失败') - version = 'Unknown' + # version = 'Unknown' # print("[System] QQChannelChatGPT版本: "+str(version)) # 得到发言频率配置 @@ -518,8 +518,14 @@ def oper_msg(message, at=False, msg_ref = None): # 关键词拦截器 for i in uw.unfit_words_q: - if i in qq_msg.strip(): - send_qq_msg(message, f"你的提问中有不太合适的内容😭\n请更换措辞~", msg_ref=msg_ref) + matches = re.match(i, qq_msg.strip(), re.I | re.M) + if matches: + send_qq_msg(message, f"你的提问得到的回复未通过【自有关键词拦截】服务,不予回复。", msg_ref=msg_ref) + return + if baidu_judge != None: + check, msg = baidu_judge.judge(qq_msg) + if not check: + send_qq_msg(message, f"你的提问得到的回复未通过【百度AI内容审核】服务,不予回复。\n\n{msg}", msg_ref=msg_ref) return # 会话机制 @@ -650,8 +656,7 @@ def oper_msg(message, at=False, msg_ref = None): # 过滤不合适的词 judged_res = chatgpt_res for i in uw.unfit_words: - if i in chatgpt_res: - judged_res = chatgpt_res.replace(i, "***") + res = re.sub(i, "***", judged_res) # 百度内容审核服务二次审核 if baidu_judge != None: check, msg = baidu_judge.judge(judged_res)