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)