feat(llm): Add retry mechanism for LLM API calls (#400)

* feat(llm): Add retry mechanism for LLM API calls

* feat: configure max_retries for LLM calls via conf.yaml

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
This commit is contained in:
Kirk Lin
2025-07-12 10:12:07 +08:00
committed by GitHub
parent dfd4712d9f
commit 9f8f060506
2 changed files with 7 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ BASIC_MODEL:
base_url: https://ark.cn-beijing.volces.com/api/v3
model: "doubao-1-5-pro-32k-250115"
api_key: xxxx
# max_retries: 3 # Maximum number of retries for LLM calls
# verify_ssl: false # Uncomment this line to disable SSL certificate verification for self-signed certificates
# Reasoning model is optional.
@@ -20,6 +21,8 @@ BASIC_MODEL:
# base_url: https://ark-cn-beijing.bytedance.net/api/v3
# model: "doubao-1-5-thinking-pro-m-250428"
# api_key: xxxx
# max_retries: 3 # Maximum number of retries for LLM calls
# OTHER SETTINGS:
# Search engine configuration (Only supports Tavily currently)

View File

@@ -70,6 +70,10 @@ def _create_llm_use_conf(
if not merged_conf:
raise ValueError(f"No configuration found for LLM type: {llm_type}")
# Add max_retries to handle rate limit errors
if "max_retries" not in merged_conf:
merged_conf["max_retries"] = 3
if llm_type == "reasoning":
merged_conf["api_base"] = merged_conf.pop("base_url", None)