优化了部分代码
This commit is contained in:
@@ -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 "[发了一段语音,网卡了加载不出来]"
|
||||
|
||||
@@ -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 "[语音]"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user