From 141c91301f0c6f2cd2642dae8756aebaa9118b92 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Sun, 11 Aug 2024 12:01:40 -0400 Subject: [PATCH] perf: Improve sleep time handling in QQOfficial and ProviderOpenAIOfficial --- model/platform/qq_official.py | 2 +- model/provider/openai_official.py | 10 ++++------ util/general_utils.py | 30 ------------------------------ 3 files changed, 5 insertions(+), 37 deletions(-) delete mode 100644 util/general_utils.py diff --git a/model/platform/qq_official.py b/model/platform/qq_official.py index a19b6024a..6911cb367 100644 --- a/model/platform/qq_official.py +++ b/model/platform/qq_official.py @@ -408,4 +408,4 @@ class QQOfficial(Platform): cnt += 1 if cnt > 300: raise Exception("等待消息超时。") - time.sleep(1)() + time.sleep(1) diff --git a/model/provider/openai_official.py b/model/provider/openai_official.py index 31be2873b..4914b9a8c 100644 --- a/model/provider/openai_official.py +++ b/model/provider/openai_official.py @@ -1,5 +1,5 @@ import os -import sys +import asyncio import json import time import tiktoken @@ -14,8 +14,6 @@ from openai._exceptions import * from astrbot.persist.helper import dbConn from model.provider.provider import Provider -from util import general_utils as gu -from util.cmd_config import CmdConfig from SparkleLogging.utils.core import LogManager from logging import Logger from typing import List, Dict @@ -369,7 +367,7 @@ class ProviderOpenAIOfficial(Provider): logger.error(f"OpenAI API Key {self.chosen_api_key} 达到请求速率限制或者官方服务器当前超载。详细原因:{e}") await self.switch_to_next_key() rate_limit_retry += 1 - time.sleep(1) + await asyncio.sleep(1) except NotFoundError as e: raise e except Exception as e: @@ -383,7 +381,7 @@ class ProviderOpenAIOfficial(Provider): logger.warning(traceback.format_exc()) logger.warning(f"OpenAI 请求失败:{e}。重试第 {retry} 次。") - time.sleep(1) + await asyncio.sleep(1) assert isinstance(completion, ChatCompletion) logger.debug(f"openai completion: {completion.usage}") @@ -454,7 +452,7 @@ class ProviderOpenAIOfficial(Provider): logger.error(traceback.format_exc()) raise Exception(f"OpenAI 图片生成请求失败:{e}。重试次数已达到上限。") logger.warning(f"OpenAI 图片生成请求失败:{e}。重试第 {retry} 次。") - time.sleep(1) + await asyncio.sleep(1) async def forget(self, session_id=None, keep_system_prompt: bool=False) -> bool: if session_id is None: return False diff --git a/util/general_utils.py b/util/general_utils.py deleted file mode 100644 index 270faf418..000000000 --- a/util/general_utils.py +++ /dev/null @@ -1,30 +0,0 @@ -import time -import asyncio -import requests -import json -import sys -import psutil - -from type.types import Context -from SparkleLogging.utils.core import LogManager -from logging import Logger - -logger: Logger = LogManager.GetLogger(log_name='astrbot') - -def run_monitor(global_object: Context): - ''' - 监测机器性能 - - Bot 内存使用量 - - CPU 占用率 - ''' - start_time = time.time() - while True: - stat = global_object.dashboard_data.stats - # 程序占用的内存大小 - mem = psutil.Process().memory_info().rss / 1024 / 1024 # MB - stat['sys_perf'] = { - 'memory': mem, - 'cpu': psutil.cpu_percent() - } - stat['sys_start_time'] = start_time - time.sleep(30)