Update common.py

This commit is contained in:
CNlaojing
2025-03-05 02:16:04 +08:00
committed by GitHub
parent a14aab3255
commit 338db8d7cf
+10 -2
View File
@@ -44,16 +44,24 @@ def debug_log(prompt: str, response_content: str):
def invoke_with_cleaning(llm_adapter, prompt: str) -> str: def invoke_with_cleaning(llm_adapter, prompt: str) -> str:
""" """
调用 LLM,增加重试和清洗逻辑 增强版调用方法,支持自定义prompt结构
如果多次失败,则返回空字符串以继续流程,而不是中断。
""" """
def _invoke(prompt): def _invoke(prompt):
return llm_adapter.invoke(prompt) return llm_adapter.invoke(prompt)
response = call_with_retry(func=_invoke, max_retries=3, fallback_return="", prompt=prompt) response = call_with_retry(func=_invoke, max_retries=3, fallback_return="", prompt=prompt)
if not response: if not response:
logging.warning("No response from model after retry. Return empty.") logging.warning("No response from model after retry. Return empty.")
return "" return ""
# 增强清洗逻辑
cleaned_text = remove_think_tags(response) cleaned_text = remove_think_tags(response)
# 移除可能的多余标记
cleaned_text = re.sub(r'^```markdown\s*', '', cleaned_text, flags=re.IGNORECASE)
cleaned_text = re.sub(r'\s*```$', '', cleaned_text)
debug_log(prompt, cleaned_text) debug_log(prompt, cleaned_text)
return cleaned_text.strip() return cleaned_text.strip()