Merge pull request #3060 from xinnan-tech/py_test_end

Py test end
This commit is contained in:
wengzh
2026-04-03 17:31:56 +08:00
committed by GitHub
14 changed files with 84 additions and 25 deletions
@@ -17,8 +17,22 @@ class LLMProvider(LLMProviderBase):
self.base_url = config.get("base_url")
else:
self.base_url = config.get("url")
timeout = config.get("timeout", 300)
self.timeout = int(timeout) if timeout else 300
timeout_config = config.get("timeout")
if isinstance(timeout_config, dict):
# 细粒度超时配置
custom_timeout = httpx.Timeout(
pool=timeout_config.get("pool", 2.0),
connect=timeout_config.get("connect", 3.0),
write=timeout_config.get("write", 5.0),
read=timeout_config.get("read", 60.0)
)
elif isinstance(timeout_config, (int, float)) and timeout_config > 0:
# 兼容旧的单一超时配置(整数或浮点数)
custom_timeout = httpx.Timeout(timeout_config)
else:
# 未配置或配置无效,使用默认值
custom_timeout = httpx.Timeout(300)
param_defaults = {
"max_tokens": int,
@@ -45,7 +59,7 @@ class LLMProvider(LLMProviderBase):
model_key_msg = check_model_key("LLM", self.api_key)
if model_key_msg:
logger.bind(tag=TAG).error(model_key_msg)
self.client = openai.OpenAI(api_key=self.api_key, base_url=self.base_url, timeout=httpx.Timeout(self.timeout))
self.client = openai.OpenAI(api_key=self.api_key, base_url=self.base_url, timeout=custom_timeout)
@staticmethod
def normalize_dialogue(dialogue):
@@ -128,7 +128,7 @@ class TTSProvider(TTSProviderBase):
self.start_session(self.conn.sentence_id),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
self.before_stop_play_files.clear()
logger.bind(tag=TAG).info("TTS会话启动成功")
except Exception as e:
@@ -145,7 +145,7 @@ class TTSProvider(TTSProviderBase):
self.text_to_speak(message.content_detail, None),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
logger.bind(tag=TAG).debug("TTS文本发送成功")
except Exception as e:
logger.bind(tag=TAG).error(f"发送TTS文本失败: {str(e)}")
@@ -166,7 +166,7 @@ class TTSProvider(TTSProviderBase):
self.finish_session(self.conn.sentence_id),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
except Exception as e:
logger.bind(tag=TAG).error(f"结束TTS会话失败: {str(e)}")
continue
@@ -233,7 +233,7 @@ class TTSProvider(TTSProviderBase):
self.start_session(self.task_id),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
self.before_stop_play_files.clear()
logger.bind(tag=TAG).debug("TTS会话启动成功")
@@ -251,7 +251,7 @@ class TTSProvider(TTSProviderBase):
self.text_to_speak(message.content_detail, None),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
logger.bind(tag=TAG).debug("TTS文本发送成功")
except Exception as e:
logger.bind(tag=TAG).error(f"发送TTS文本失败: {str(e)}")
@@ -271,7 +271,7 @@ class TTSProvider(TTSProviderBase):
self.finish_session(self.task_id),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
except Exception as e:
logger.bind(tag=TAG).error(f"结束TTS会话失败: {str(e)}")
continue
@@ -36,6 +36,7 @@ class TTSProviderBase(ABC):
self.delete_audio_file = delete_audio_file
self.audio_file_type = "wav"
self.output_file = config.get("output_dir", "tmp/")
self.tts_timeout = int(config.get("tts_timeout", 15))
self.tts_text_queue = queue.Queue()
self.tts_audio_queue = queue.Queue()
self.tts_audio_first_sentence = True
@@ -368,7 +369,7 @@ class TTSProviderBase(ABC):
sendAudioMessage(self.conn, sentence_type, audio_datas, text),
self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
# 记录输出和报告
if self.conn.max_output_size > 0 and text:
@@ -309,7 +309,7 @@ class TTSProvider(TTSProviderBase):
self.start_session(self.conn.sentence_id),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
self.before_stop_play_files.clear()
logger.bind(tag=TAG).debug("TTS会话启动成功")
except Exception as e:
@@ -326,7 +326,7 @@ class TTSProvider(TTSProviderBase):
self.text_to_speak(message.content_detail, None),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
logger.bind(tag=TAG).debug("TTS文本发送成功")
except Exception as e:
logger.bind(tag=TAG).error(f"发送TTS文本失败: {str(e)}")
@@ -346,7 +346,7 @@ class TTSProvider(TTSProviderBase):
self.finish_session(self.conn.sentence_id),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
except Exception as e:
logger.bind(tag=TAG).error(f"结束TTS会话失败: {str(e)}")
continue
@@ -179,7 +179,7 @@ class TTSProvider(TTSProviderBase):
self.start_session(self.conn.sentence_id),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
self.before_stop_play_files.clear()
logger.bind(tag=TAG).info("TTS会话启动成功")
@@ -198,7 +198,7 @@ class TTSProvider(TTSProviderBase):
self.text_to_speak(message.content_detail, None),
loop=self.conn.loop,
)
future.result()
future.result(timeout=self.tts_timeout)
logger.bind(tag=TAG).debug("TTS文本发送成功")
except Exception as e:
logger.bind(tag=TAG).error(f"发送TTS文本失败: {str(e)}")