From 1a16d2b6554d2b19c11e2097230c1b7c78681de6 Mon Sep 17 00:00:00 2001 From: linyq Date: Fri, 15 Nov 2024 15:44:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(utils):=20=E4=BC=98=E5=8C=96=20Moonshot?= =?UTF-8?q?=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91=E5=B9=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=87=8D=E8=AF=95=E6=9C=BA=E5=88=B6-=20=E5=9C=A8=20Moonshot=20?= =?UTF-8?q?=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91=E4=B8=AD=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E5=AF=B9=20429=E9=94=99=E8=AF=AF=E7=9A=84=E9=87=8D?= =?UTF-8?q?=E8=AF=95=E6=9C=BA=E5=88=B6=20-=20=E5=BD=93=E9=81=87=E5=88=B0?= =?UTF-8?q?=20429=20=E9=94=99=E8=AF=AF=E6=97=B6=EF=BC=8C=E7=AD=89=E5=BE=85?= =?UTF-8?q?=2065=E7=A7=92=E5=90=8E=E9=87=8D=E8=AF=95=20-=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E4=BA=86=E6=B5=8B=E8=AF=95=E7=A4=BA=E4=BE=8B=EF=BC=8C?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E8=BF=94=E5=9B=9E=E5=9B=BA=E5=AE=9A=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E4=BB=A5=E7=AE=80=E5=8C=96=E6=B5=8B=E8=AF=95=E8=BF=87?= =?UTF-8?q?=E7=A8=8B=20-=20=E6=9B=B4=E6=96=B0=E4=BA=86=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/test/test_gemini.py | 2 +- app/utils/script_generator.py | 30 +++++++++++++++++++----------- webui.txt | 2 +- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/app/test/test_gemini.py b/app/test/test_gemini.py index e3bd91a..916d4d9 100644 --- a/app/test/test_gemini.py +++ b/app/test/test_gemini.py @@ -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) diff --git a/app/utils/script_generator.py b/app/utils/script_generator.py index 933a285..f643aac 100644 --- a/app/utils/script_generator.py +++ b/app/utils/script_generator.py @@ -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的响应""" diff --git a/webui.txt b/webui.txt index f56d6ef..e835524 100644 --- a/webui.txt +++ b/webui.txt @@ -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"