From 7713e14d6a081674af331b0dfa4d2a9e09723800 Mon Sep 17 00:00:00 2001 From: Stephen Hu Date: Fri, 8 Aug 2025 14:13:07 +0800 Subject: [PATCH] Update chat_model.py (#9318) ### What problem does this PR solve? https://github.com/infiniflow/ragflow/issues/9317 base on https://discuss.ai.google.dev/t/valueerror-invalid-operation-the-response-text-quick-accessor-requires-the-response-to-contain-a-valid-part-but-none-were-returned/42866 should can be handled by retry ### Type of change - [x] Refactoring --- rag/llm/chat_model.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/rag/llm/chat_model.py b/rag/llm/chat_model.py index 49c535d81..1770b5b9e 100644 --- a/rag/llm/chat_model.py +++ b/rag/llm/chat_model.py @@ -1099,9 +1099,20 @@ class GeminiChat(Base): if system: self.model._system_instruction = content_types.to_content(system) - response = self.model.generate_content(hist, generation_config=gen_conf) - ans = response.text - return ans, response.usage_metadata.total_token_count + retry_count = 0 + max_retries = 3 + while retry_count < max_retries: + try: + response = self.model.generate_content(hist, generation_config=gen_conf) + ans = response.text + return ans, response.usage_metadata.total_token_count + except Exception as e: + retry_count += 1 + if retry_count >= max_retries: + raise e + else: + import time + time.sleep(50) def chat_streamly(self, system, history, gen_conf={}, **kwargs): from google.generativeai.types import content_types