优化了部分代码

This commit is contained in:
Windpicker-owo
2025-07-17 15:12:20 +08:00
parent 835ea24351
commit 367be4e7d7
3 changed files with 15 additions and 11 deletions

View File

@@ -162,7 +162,7 @@ class MessageRecv(Message):
self.has_picid = False
self.is_picid = False
self.is_emoji = False
self.is_voice == True
self.is_voice = True
if isinstance(segment.data, str):
return await get_voice_text(segment.data)
return "[发了一段语音,网卡了加载不出来]"
@@ -247,7 +247,7 @@ class MessageRecvS4U(MessageRecv):
self.has_picid = False
self.is_picid = False
self.is_emoji = False
self.is_voice == True
self.is_voice = True
if isinstance(segment.data, str):
return await get_voice_text(segment.data)
return "[发了一段语音,网卡了加载不出来]"

View File

@@ -17,7 +17,6 @@ from src.llm_models.utils_model import LLMRequest
from src.common.logger import get_logger
from rich.traceback import install
import traceback
install(extra_lines=3)
logger = get_logger("chat_voice")
@@ -25,7 +24,7 @@ logger = get_logger("chat_voice")
async def get_voice_text(voice_base64: str) -> str:
"""获取音频文件描述"""
try:
# 计算图片哈希
# 解码base64音频数据
# 确保base64字符串只包含ASCII字符
if isinstance(voice_base64, str):
voice_base64 = voice_base64.encode("ascii", errors="ignore").decode("ascii")
@@ -40,7 +39,6 @@ async def get_voice_text(voice_base64: str) -> str:
return f"[语音:{text}]"
except Exception as e:
traceback.print_exc()
logger.error(f"语音转文字失败: {str(e)}")
return "[语音]"

View File

@@ -668,15 +668,21 @@ class LLMRequest:
async def _build_formdata_payload(self, file_bytes: str, file_format: str):
"""构建form-data请求体"""
# 非常丑陋的方法,先将文件写入本地,然后再读取,应该有更好的办法
with open(f"file.{file_format}","wb") as f:
f.write(file_bytes)
# 目前只适配了音频文件
# 如果后续要支持其他类型的文件,可以在这里添加更多的处理逻辑
data = aiohttp.FormData()
content_type_list = {
"wav": "audio/wav",
"mp3": "audio/mpeg",
"ogg": "audio/ogg",
"flac": "audio/flac",
"aac": "audio/aac",
}
data.add_field(
"file",open(f"file.{file_format}","rb"),
"file",io.BytesIO(file_bytes),
filename=f"file.{file_format}",
content_type='audio/wav'
content_type=f'audio/{content_type_list[file_format]}' # 根据实际文件类型设置
)
data.add_field(
"model", self.model_name