diff --git a/pkg/openai/session.py b/pkg/openai/session.py index 96d56d3c..06b00757 100644 --- a/pkg/openai/session.py +++ b/pkg/openai/session.py @@ -327,7 +327,7 @@ class Session: json.dumps(self.prompt), json.dumps(self.default_prompt), json.dumps(self.token_counts)) # 重置session - def reset(self, explicit: bool = False, expired: bool = False, schedule_new: bool = True, use_prompt: str = None): + def reset(self, explicit: bool = False, expired: bool = False, schedule_new: bool = True, use_prompt: str = None, persist: bool = False): if self.prompt: self.persistence() if explicit: @@ -345,7 +345,7 @@ class Session: if expired: pkg.utils.context.get_database_manager().set_session_expired(self.name, self.create_timestamp) - if use_prompt: + if not persist: # 不要求保持default prompt self.default_prompt = self.get_default_prompt(use_prompt) self.prompt = [] self.token_counts = [] diff --git a/pkg/qqbot/message.py b/pkg/qqbot/message.py index 4c0207df..b4dcbfba 100644 --- a/pkg/qqbot/message.py +++ b/pkg/qqbot/message.py @@ -115,7 +115,7 @@ def process_normal_message(text_message: str, mgr, config, launcher_type: str, "[bot]err:RateLimitError,请重试或联系作者,或等待修复") except openai.error.InvalidRequestError as e: if config.auto_reset and "This model's maximum context length is" in str(e): - session.reset() + session.reset(persist=True) reply = [tips_custom.session_auto_reset_message] else: reply = handle_exception("{}API调用参数错误:{}\n".format(