feat(utils): 优化 Moonshot生成逻辑并添加重试机制- 在 Moonshot 生成逻辑中添加了对 429错误的重试机制

- 当遇到 429 错误时,等待 65秒后重试
- 更新了测试示例,直接返回固定文本以简化测试过程
- 更新了资源下载链接
This commit is contained in:
linyq 2024-11-15 15:44:17 +08:00
parent af9e7fa279
commit 1a16d2b655
3 changed files with 21 additions and 13 deletions

View File

@ -7,5 +7,5 @@ os.environ["HTTPS_PROXY"] = config.proxy.get("https")
genai.configure(api_key=config.app.get("vision_gemini_api_key"))
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Explain how AI works")
response = model.generate_content("直接回复我文本'当前网络可用'")
print(response.text)

View File

@ -7,6 +7,7 @@ from typing import List, Dict
from datetime import datetime
from openai import OpenAI
import google.generativeai as genai
import time
class BaseGenerator:
@ -222,17 +223,24 @@ class MoonshotGenerator(BaseGenerator):
}
def _generate(self, messages: list, params: dict) -> any:
"""实现Moonshot特定的生成逻辑"""
try:
response = self.client.chat.completions.create(
model=self.model_name,
messages=messages,
**params
)
return response
except Exception as e:
logger.error(f"Moonshot generation error: {str(e)}")
raise
"""实现Moonshot特定的生成逻辑包含429错误重试机制"""
while True:
try:
response = self.client.chat.completions.create(
model=self.model_name,
messages=messages,
**params
)
return response
except Exception as e:
error_str = str(e)
if "Error code: 429" in error_str:
logger.warning("Moonshot API 触发限流等待65秒后重试...")
time.sleep(65) # 等待65秒后重试
continue
else:
logger.error(f"Moonshot generation error: {error_str}")
raise
def _process_response(self, response: any) -> str:
"""处理Moonshot的响应"""

View File

@ -18,7 +18,7 @@ set "urls_paths[1]=https://zenodo.org/records/13293144/files/MicrosoftYaHeiNorma
set "urls_paths[2]=https://zenodo.org/records/13293144/files/STHeitiLight.ttc|.\resource\fonts"
set "urls_paths[3]=https://zenodo.org/records/13293144/files/STHeitiMedium.ttc|.\resource\fonts"
set "urls_paths[4]=https://zenodo.org/records/13293144/files/UTM%20Kabel%20KT.ttf|.\resource\fonts"
set "urls_paths[5]=https://zenodo.org/records/13293129/files/demo.mp4|.\resource\videos"
set "urls_paths[5]=https://zenodo.org/records/14167125/files/test.mp4|.\resource\videos"
set "urls_paths[6]=https://zenodo.org/records/13293150/files/output000.mp3|.\resource\songs"
set "urls_paths[7]=https://zenodo.org/records/13293150/files/output001.mp3|.\resource\songs"
set "urls_paths[8]=https://zenodo.org/records/13293150/files/output002.mp3|.\resource\songs"