From cd1390d4499e5ec2fe7ab1159cb0059fc984c66a Mon Sep 17 00:00:00 2001 From: Soulter <37870767+Soulter@users.noreply.github.com> Date: Sun, 5 Mar 2023 10:59:31 +0800 Subject: [PATCH 1/2] =?UTF-8?q?perf:=20=E9=80=86=E5=90=91=E5=BA=93?= =?UTF-8?q?=E6=94=AF=E6=8C=81access/session=E7=99=BB=E5=BD=95=20fix:=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=B9=E9=80=86=E5=90=91=E5=BA=93=E7=9A=84?= =?UTF-8?q?=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/revChatGPT/revchatgpt.py | 4 ++-- configs/config.yaml | 14 ++++++++++++-- cores/qqbot/core.py | 17 ++++++++++------- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/addons/revChatGPT/revchatgpt.py b/addons/revChatGPT/revchatgpt.py index 7257642e9..31fbf54a9 100644 --- a/addons/revChatGPT/revchatgpt.py +++ b/addons/revChatGPT/revchatgpt.py @@ -3,8 +3,8 @@ from revChatGPT.V1 import Chatbot class revChatGPT: def __init__(self, config): - print("[RevChatGPT] 逆向库初始化:"+str(config)) - config['password'] = str(config['password']) + if 'password' in config: + config['password'] = str(config['password']) self.chatbot = Chatbot(config=config) def chat(self, prompt): diff --git a/configs/config.yaml b/configs/config.yaml index 7fcd33984..a6ae93cf8 100644 --- a/configs/config.yaml +++ b/configs/config.yaml @@ -56,20 +56,30 @@ direct_message_mode: true # enable设置为true后,将会停止使用上面正常的官方API调用而使用本逆向项目 # # 多账户可以保证每个请求都能得到及时的回复。 -# 关于account的格式 + + +# 关于account的格式,请你务必认真阅读以下格式。 + + +# account支持email+password、session_token、access_token多种方式登录。 +# 如果要使用session_token、access_token登录,直接添加新的一行(注意缩进!) - access_token: xxxxxxx即可 # account: +# - session_token: xxxxxxxx +# - access_token: xxxxxxxx # - email: 第1个账户 # password: 第1个账户密码 # - email: 第2个账户 # password: 第2个账户密码 # - .... # 请严格按照上面这个格式填写。 -# 这里我免费提供2个账号给大家,不过用的人一定会很多的,所以会造成一些bug,因此还是用自己的账号好一点。 +# 这里免费提供2个账号给大家,不过用的人一定会很多的,所以会造成一些bug,因此还是用自己的账号好一点。 # 需要账号可以联系我。QQ905617992 rev_ChatGPT: enable: false account: + - access_token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1UaEVOVUpHTkVNMVFURTRNMEZCTWpkQ05UZzVNRFUxUlRVd1FVSkRNRU13UmtGRVFrRXpSZyJ9.eyJodHRwczovL2FwaS5vcGVuYWkuY29tL3Byb2ZpbGUiOnsiZW1haWwiOiJkdWVsdG1wK3JzdG56QGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJnZW9pcF9jb3VudHJ5IjoiU0cifSwiaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS9hdXRoIjp7InVzZXJfaWQiOiJ1c2VyLURNUmhqWXc1N2JGWURiTXdPUWwyRWtTQiJ9LCJpc3MiOiJodHRwczovL2F1dGgwLm9wZW5haS5jb20vIiwic3ViIjoiYXV0aDB8NjNkODdiYjk4MWY4NDViYmU5NWFhMmU0IiwiYXVkIjpbImh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEiLCJodHRwczovL29wZW5haS5vcGVuYWkuYXV0aDBhcHAuY29tL3VzZXJpbmZvIl0sImlhdCI6MTY3NzgyNzk1NCwiZXhwIjoxNjc5MDM3NTU0LCJhenAiOiJUZEpJY2JlMTZXb1RIdE45NW55eXdoNUU0eU9vNkl0RyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgbW9kZWwucmVhZCBtb2RlbC5yZXF1ZXN0IG9yZ2FuaXphdGlvbi5yZWFkIG9mZmxpbmVfYWNjZXNzIn0.gpj7nLFYGmkKj3y0qcR2Ggrgi1fSbPdMA06uUeHNjG8Gw9cTxKxdyvl9LB80Xbua0wlsMoitXfthYck4f4Ok9s970ilPLvi77ZQKuqwoW1DvbQO_4NLpZhoerJYJDycjOD1O-FRkAA2Qi0tD7MJ-jwQ5hDwxdywm6o8BTqu6NU8fsGjmrYjURI8IeNYlOG61xuY9z0g_BELRkNcucD5tMeSqKbkdjEc2M_XUQwSPLqoWgbAlbvw3B7swzbDbIMo-Etyx7pCnDTRzf0iRkn_KwcTCOy3F_KYakDvr2N4wOwQxY0fOc8f8nXDpSaL_0eUbUQgxfZFqUZJ5QVuwPcbrsA + # - session_token: xxxxxxxx - email: d.o.m.her.ry61.7@gmail.com password: 11111111 - email: ca.it.li.nal.o.i.si.o91@gmail.com diff --git a/cores/qqbot/core.py b/cores/qqbot/core.py index 239cc1aa3..6f7bc5e25 100644 --- a/cores/qqbot/core.py +++ b/cores/qqbot/core.py @@ -187,17 +187,18 @@ def initBot(cfg, prov): if 'account' in cfg['rev_ChatGPT']: from addons.revChatGPT.revchatgpt import revChatGPT for i in range(0, len(cfg['rev_ChatGPT']['account'])): - print(f"[System] 正在创建rev_ChatGPT负载{str(i)}: " + cfg['rev_ChatGPT']['account'][i]['email']) try: + print(f"[System] 创建rev_ChatGPT负载{str(i)}: " + str(cfg['rev_ChatGPT']['account'][i])) revstat = { 'obj': revChatGPT(cfg['rev_ChatGPT']['account'][i]), 'busy': False } rev_chatgpt.append(revstat) + except: print("[System] 创建rev_ChatGPT负载失败") else: - input("[System-err] 请退出本程序, 然后在配置文件中填写rev_ChatGPT的email和password") + input("[System-err] 请退出本程序, 然后在配置文件中填写rev_ChatGPT相关配置") elif prov == OPENAI_OFFICIAL: from cores.openai.core import ChatGPT chatgpt = ChatGPT(cfg['openai']) @@ -345,9 +346,11 @@ def get_rev_ChatGPT_response(prompts_str): def send_qq_msg(message, res, image_mode=False): if not image_mode: try: - asyncio.run_coroutine_threadsafe(message.reply(content=res), client.loop) - except: - raise + res = asyncio.run_coroutine_threadsafe(message.reply(content=res), client.loop) + res.result() + except BaseException as e: + print("[System-Error] 回复QQ消息失败") + raise e else: asyncio.run_coroutine_threadsafe(message.reply(image=res, content=""), client.loop) @@ -574,7 +577,7 @@ def oper_msg(message, at=False, loop=None): gap_chatgpt_res = gap_chatgpt_res.replace(i, "***") # 发送信息 send_qq_msg(message, ''+gap_chatgpt_res) - except: + except BaseException as e: print("QQ频道API错误: \n"+str(e)) f_res = "" for t in chatgpt_res: @@ -582,7 +585,7 @@ def oper_msg(message, at=False, loop=None): try: send_qq_msg(message, ''+f_res) # send(message, f"QQ频道API错误:{str(e)}\n下面是格式化后的回答:\n{f_res}") - except: + except BaseException as e: # 如果还是不行则过滤url f_res = re.sub(r'(https|http)?:\/\/(\w|\.|\/|\?|\=|\&|\%)*\b', '', f_res, flags=re.MULTILINE) f_res = f_res.replace(".", "·") From 651ba7b3d627a72820038b7815897c1a5ee1d4d0 Mon Sep 17 00:00:00 2001 From: Soulter <37870767+Soulter@users.noreply.github.com> Date: Sun, 5 Mar 2023 11:02:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configs/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/config.yaml b/configs/config.yaml index a6ae93cf8..f577db6c9 100644 --- a/configs/config.yaml +++ b/configs/config.yaml @@ -78,7 +78,7 @@ direct_message_mode: true rev_ChatGPT: enable: false account: - - access_token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1UaEVOVUpHTkVNMVFURTRNMEZCTWpkQ05UZzVNRFUxUlRVd1FVSkRNRU13UmtGRVFrRXpSZyJ9.eyJodHRwczovL2FwaS5vcGVuYWkuY29tL3Byb2ZpbGUiOnsiZW1haWwiOiJkdWVsdG1wK3JzdG56QGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJnZW9pcF9jb3VudHJ5IjoiU0cifSwiaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS9hdXRoIjp7InVzZXJfaWQiOiJ1c2VyLURNUmhqWXc1N2JGWURiTXdPUWwyRWtTQiJ9LCJpc3MiOiJodHRwczovL2F1dGgwLm9wZW5haS5jb20vIiwic3ViIjoiYXV0aDB8NjNkODdiYjk4MWY4NDViYmU5NWFhMmU0IiwiYXVkIjpbImh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEiLCJodHRwczovL29wZW5haS5vcGVuYWkuYXV0aDBhcHAuY29tL3VzZXJpbmZvIl0sImlhdCI6MTY3NzgyNzk1NCwiZXhwIjoxNjc5MDM3NTU0LCJhenAiOiJUZEpJY2JlMTZXb1RIdE45NW55eXdoNUU0eU9vNkl0RyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgbW9kZWwucmVhZCBtb2RlbC5yZXF1ZXN0IG9yZ2FuaXphdGlvbi5yZWFkIG9mZmxpbmVfYWNjZXNzIn0.gpj7nLFYGmkKj3y0qcR2Ggrgi1fSbPdMA06uUeHNjG8Gw9cTxKxdyvl9LB80Xbua0wlsMoitXfthYck4f4Ok9s970ilPLvi77ZQKuqwoW1DvbQO_4NLpZhoerJYJDycjOD1O-FRkAA2Qi0tD7MJ-jwQ5hDwxdywm6o8BTqu6NU8fsGjmrYjURI8IeNYlOG61xuY9z0g_BELRkNcucD5tMeSqKbkdjEc2M_XUQwSPLqoWgbAlbvw3B7swzbDbIMo-Etyx7pCnDTRzf0iRkn_KwcTCOy3F_KYakDvr2N4wOwQxY0fOc8f8nXDpSaL_0eUbUQgxfZFqUZJ5QVuwPcbrsA + - access_token: # - session_token: xxxxxxxx - email: d.o.m.her.ry61.7@gmail.com password: 11111111