mirror of
https://github.com/RockChinQ/QChatGPT.git
synced 2024-11-16 19:57:04 +08:00
fix: 未经keymgr完整跟踪的key超额问题 #39
This commit is contained in:
parent
ba03173761
commit
cf04d833f9
|
@ -91,6 +91,13 @@ class KeysManager:
|
||||||
self.alerted.append(key_name)
|
self.alerted.append(key_name)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
# 设置当前使用的api-key使用量超限
|
||||||
|
# 这是在尝试调用api时发生超限异常时调用的
|
||||||
|
def set_current_exceeded(self):
|
||||||
|
md5 = hashlib.md5(self.using_key.encode('utf-8')).hexdigest()
|
||||||
|
self.usage[md5] = self.api_key_usage_threshold
|
||||||
|
self.dump_usage()
|
||||||
|
|
||||||
def dump_usage(self):
|
def dump_usage(self):
|
||||||
pkg.database.manager.get_inst().dump_api_key_usage(api_keys=self.api_key, usage=self.usage)
|
pkg.database.manager.get_inst().dump_api_key_usage(api_keys=self.api_key, usage=self.usage)
|
||||||
|
|
||||||
|
|
|
@ -194,8 +194,16 @@ class QQBotManager:
|
||||||
self.notify_admin("{}会话调用API失败:{}".format(session_name, e))
|
self.notify_admin("{}会话调用API失败:{}".format(session_name, e))
|
||||||
reply = "[bot]err:调用API失败,请重试或联系作者,或等待修复"
|
reply = "[bot]err:调用API失败,请重试或联系作者,或等待修复"
|
||||||
except openai.error.RateLimitError as e:
|
except openai.error.RateLimitError as e:
|
||||||
self.notify_admin("API调用额度超限,请向OpenAI账户充值或在config.py中更换api_key")
|
# 尝试切换api-key
|
||||||
reply = "[bot]err:API调用额度超额,请联系作者,或等待修复"
|
pkg.openai.manager.get_inst().key_mgr.set_current_exceeded()
|
||||||
|
switched, name = pkg.openai.manager.get_inst().key_mgr.auto_switch()
|
||||||
|
|
||||||
|
if not switched:
|
||||||
|
self.notify_admin("API调用额度超限,请向OpenAI账户充值或在config.py中更换api_key")
|
||||||
|
reply = "[bot]err:API调用额度超额,请联系作者,或等待修复"
|
||||||
|
else:
|
||||||
|
self.notify_admin("API调用额度超限,已切换到{}".format(name))
|
||||||
|
reply = "[bot]err:API调用额度超额,已自动切换,请重新发送消息"
|
||||||
except openai.error.InvalidRequestError as e:
|
except openai.error.InvalidRequestError as e:
|
||||||
self.notify_admin("{}API调用参数错误:{}\n\n这可能是由于config.py中的prompt_submit_length参数或"
|
self.notify_admin("{}API调用参数错误:{}\n\n这可能是由于config.py中的prompt_submit_length参数或"
|
||||||
"completion_api_params中的max_tokens参数数值过大导致的,请尝试将其降低".format(
|
"completion_api_params中的max_tokens参数数值过大导致的,请尝试将其降低".format(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user