diff --git a/model/provider/provider_openai_official.py b/model/provider/provider_openai_official.py index ba32a7ed5..b4e0e634d 100644 --- a/model/provider/provider_openai_official.py +++ b/model/provider/provider_openai_official.py @@ -135,8 +135,9 @@ class ProviderOpenAIOfficial(Provider): # 使用 tictoken 截断消息 _encoded_prompt = self.enc.encode(prompt) - prompt = self.enc.decode(_encoded_prompt[:self.openai_model_configs['max_tokens'] - 100]) - gu.log(f"注意,有一部分 prompt 文本由于超出 token 限制而被截断。", level=gu.LEVEL_WARNING, max_len=300) + if self.openai_model_configs['max_tokens'] < len(_encoded_prompt): + prompt = self.enc.decode(_encoded_prompt[:self.openai_model_configs['max_tokens'] - 100]) + gu.log(f"注意,有一部分 prompt 文本由于超出 token 限制而被截断。", level=gu.LEVEL_WARNING, max_len=300) cache_data_list, new_record, req = self.wrap(prompt, session_id, image_url) gu.log(f"CACHE_DATA_: {str(cache_data_list)}", level=gu.LEVEL_DEBUG, max_len=99999)