From dbce2e7cb5ff01eac9ba9a1136bf1542abca383a Mon Sep 17 00:00:00 2001 From: Rock Chin <1010553892@qq.com> Date: Thu, 15 Dec 2022 18:40:02 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix(session.py):=20=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E7=9A=84=E6=88=AA=E5=8F=96=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/openai/session.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/openai/session.py b/pkg/openai/session.py index aa0f6ba7..3aff1895 100644 --- a/pkg/openai/session.py +++ b/pkg/openai/session.py @@ -185,7 +185,7 @@ class Session: if checked_rounds > max_rounds: break - if len(result_temp) > max_tokens: + if int((len(result_temp.encode('utf-8')) - len(result_temp)) / 2 + len(result_temp)) > max_tokens: break result = result_temp From 9e941252121de21be18235adb50e1d4ae9f9c350 Mon Sep 17 00:00:00 2001 From: Rock Chin <1010553892@qq.com> Date: Thu, 15 Dec 2022 18:40:21 +0800 Subject: [PATCH 2/5] =?UTF-8?q?chore:=20=E5=88=A0=E9=99=A4requirements.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 1215238a..00000000 --- a/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -colorlog>=6.6.0 -func-timeout>=4.3.5 -openai>=0.25.0 -websockets==10.4 -yiri-mirai==0.2.6.1 From 5e4d0cb23f7478e69e905d29bd9ba2cb65e4863c Mon Sep 17 00:00:00 2001 From: Rock Chin <1010553892@qq.com> Date: Thu, 15 Dec 2022 18:50:15 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0usage=E6=8C=87?= =?UTF-8?q?=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config-template.py | 3 ++- pkg/qqbot/manager.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/config-template.py b/config-template.py index 62f5783d..cad49e44 100644 --- a/config-template.py +++ b/config-template.py @@ -98,4 +98,5 @@ help_message = """此机器人通过调用OpenAI的GPT-3大型语言模型生成 !last - 切换到前一次的对话 !next - 切换到后一次的对话 !prompt - 显示当前对话所有内容 -!list - 列出所有历史会话""".format(session_expire_time // 60) +!list - 列出所有历史会话 +!usage - 列出各个api-key的使用量""".format(session_expire_time // 60) diff --git a/pkg/qqbot/manager.py b/pkg/qqbot/manager.py index 830cf0ef..ef824a9f 100644 --- a/pkg/qqbot/manager.py +++ b/pkg/qqbot/manager.py @@ -8,6 +8,7 @@ from mirai import At, GroupMessage, MessageEvent, Mirai, Plain, StrangerMessage, import config import pkg.openai.session +import pkg.openai.manager from func_timeout import func_set_timeout, FunctionTimedOut import datetime import logging @@ -165,6 +166,18 @@ class QQBotManager: reply += ",当前会话是 #{}\n".format(current) else: reply += ",当前处于全新会话或不在此页" + elif cmd == 'usage': + api_keys = pkg.openai.manager.get_inst().key_mgr.api_key + reply = "[bot]api-key使用情况:(阈值:{})\n".format(pkg.openai.manager.get_inst().key_mgr.api_key_usage_threshold) + + using_key_name = "" + for api_key in api_keys: + reply += "{}: {} {}%\n".format(api_key, + pkg.openai.manager.get_inst().key_mgr.get_usage(api_keys[api_key]), + pkg.openai.manager.get_inst().key_mgr.get_usage(api_keys[api_key]) / pkg.openai.manager.get_inst().key_mgr.api_key_usage_threshold * 100) + if api_keys[api_key] == pkg.openai.manager.get_inst().key_mgr.using_key: + using_key_name = api_key + reply += "当前使用:{}".format(using_key_name) except Exception as e: self.notify_admin("{}指令执行失败:{}".format(session_name, e)) logging.exception(e) From 795f943d0adc31d9e1d53c57e02a85a25b1b7c85 Mon Sep 17 00:00:00 2001 From: Rock Chin <1010553892@qq.com> Date: Thu, 15 Dec 2022 18:55:40 +0800 Subject: [PATCH 4/5] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96usage=E7=9A=84?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/qqbot/manager.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/qqbot/manager.py b/pkg/qqbot/manager.py index ef824a9f..94d043d6 100644 --- a/pkg/qqbot/manager.py +++ b/pkg/qqbot/manager.py @@ -168,16 +168,16 @@ class QQBotManager: reply += ",当前处于全新会话或不在此页" elif cmd == 'usage': api_keys = pkg.openai.manager.get_inst().key_mgr.api_key - reply = "[bot]api-key使用情况:(阈值:{})\n".format(pkg.openai.manager.get_inst().key_mgr.api_key_usage_threshold) + reply = "[bot]api-key使用情况:(阈值:{})\n\n".format(pkg.openai.manager.get_inst().key_mgr.api_key_usage_threshold) using_key_name = "" for api_key in api_keys: - reply += "{}: {} {}%\n".format(api_key, + reply += "{}:\n - {}字 {}%\n".format(api_key, pkg.openai.manager.get_inst().key_mgr.get_usage(api_keys[api_key]), - pkg.openai.manager.get_inst().key_mgr.get_usage(api_keys[api_key]) / pkg.openai.manager.get_inst().key_mgr.api_key_usage_threshold * 100) + round(pkg.openai.manager.get_inst().key_mgr.get_usage(api_keys[api_key]) / pkg.openai.manager.get_inst().key_mgr.api_key_usage_threshold * 100, 3)) if api_keys[api_key] == pkg.openai.manager.get_inst().key_mgr.using_key: using_key_name = api_key - reply += "当前使用:{}".format(using_key_name) + reply += "\n当前使用:{}".format(using_key_name) except Exception as e: self.notify_admin("{}指令执行失败:{}".format(session_name, e)) logging.exception(e) From 3c7f085984a9fb3ec90b914028555cc772e6bed1 Mon Sep 17 00:00:00 2001 From: Rock Chin <1010553892@qq.com> Date: Thu, 15 Dec 2022 20:12:19 +0800 Subject: [PATCH 5/5] =?UTF-8?q?doc:=20=E7=BC=96=E8=BE=91=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f9c490be..c195cc6e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # QChatGPT -- 交流、答疑群: 204785790 +- 交流、答疑群: 204785790 + - **进群提问前请您`确保`已经找遍文档和issue均无法解决** + - **进群提问前请您`确保`已经找遍文档和issue均无法解决** + - **进群提问前请您`确保`已经找遍文档和issue均无法解决** - QQ频道机器人见[QQChannelChatGPT](https://github.com/Soulter/QQChannelChatGPT) 通过调用OpenAI GPT-3模型提供的Completion API来实现一个更加智能的QQ机器人