fix code
This commit is contained in:
@@ -18,7 +18,7 @@ class AuditLogSchemaBase(SchemaBase):
|
|||||||
status_code: int = Field(description="HTTP状态码")
|
status_code: int = Field(description="HTTP状态码")
|
||||||
error_message: Optional[str] = Field("", description="错误信息")
|
error_message: Optional[str] = Field("", description="错误信息")
|
||||||
called_at: Optional[datetime] = Field(None, description="调用时间")
|
called_at: Optional[datetime] = Field(None, description="调用时间")
|
||||||
image_id: int = Field(description="关联的图片ID")
|
image_id: Optional[int] = Field(None, description="关联的图片ID")
|
||||||
user_id: int = Field(description="调用用户ID")
|
user_id: int = Field(description="调用用户ID")
|
||||||
api_version: str = Field(description="API版本")
|
api_version: str = Field(description="API版本")
|
||||||
dict_level: Optional[str] = Field(None, description="词典等级")
|
dict_level: Optional[str] = Field(None, description="词典等级")
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ async def reply_conversation(request: Request, session_id: int, obj: Conversatio
|
|||||||
|
|
||||||
|
|
||||||
@router.post('/conversations/{session_id}/recognize_audio', summary='识别音频内容', dependencies=[DependsJwtAuth])
|
@router.post('/conversations/{session_id}/recognize_audio', summary='识别音频内容', dependencies=[DependsJwtAuth])
|
||||||
async def recognize_audio(request: Request, obj: ConversationRecognitionRequest) -> ResponseSchemaModel[ConversationRecognitionResponse]:
|
async def recognize_audio(request: Request, session_id: int, obj: ConversationRecognitionRequest) -> ResponseSchemaModel[ConversationRecognitionResponse]:
|
||||||
res = await qa_service.recognize_audio(file_id=int(obj.file_id), user_id=request.user.id, session_id=session_id)
|
res = await qa_service.recognize_audio(file_id=int(obj.file_id), user_id=request.user.id, session_id=session_id)
|
||||||
return response_base.success(data=ConversationRecognitionResponse(**res))
|
return response_base.success(data=ConversationRecognitionResponse(**res))
|
||||||
|
|
||||||
|
|||||||
@@ -897,6 +897,7 @@ class QaService:
|
|||||||
|
|
||||||
# 1. 验证会话
|
# 1. 验证会话
|
||||||
exercise_id = None
|
exercise_id = None
|
||||||
|
image_id = None
|
||||||
async with async_db_session.begin() as db:
|
async with async_db_session.begin() as db:
|
||||||
session = await qa_session_dao.get(db, session_id)
|
session = await qa_session_dao.get(db, session_id)
|
||||||
if not session:
|
if not session:
|
||||||
@@ -904,6 +905,10 @@ class QaService:
|
|||||||
if session.starter_user_id != user_id:
|
if session.starter_user_id != user_id:
|
||||||
raise errors.ForbiddenError(msg="Forbidden")
|
raise errors.ForbiddenError(msg="Forbidden")
|
||||||
exercise_id = session.exercise_id
|
exercise_id = session.exercise_id
|
||||||
|
|
||||||
|
exercise = await qa_exercise_dao.get(db, exercise_id)
|
||||||
|
if exercise:
|
||||||
|
image_id = exercise.image_id
|
||||||
|
|
||||||
# 2. 获取文件信息
|
# 2. 获取文件信息
|
||||||
file_obj = await file_service.get_file(file_id)
|
file_obj = await file_service.get_file(file_id)
|
||||||
@@ -935,7 +940,7 @@ class QaService:
|
|||||||
audio_url = temp_file_path
|
audio_url = temp_file_path
|
||||||
|
|
||||||
# 调用Qwen ASR
|
# 调用Qwen ASR
|
||||||
res = await Qwen.recognize_speech(audio_url, user_id=user_id)
|
res = await Qwen.recognize_speech(audio_url, user_id=user_id, image_id=image_id)
|
||||||
|
|
||||||
if not res.get("success"):
|
if not res.get("success"):
|
||||||
raise errors.ServerError(msg=res.get("error") or "ASR failed")
|
raise errors.ServerError(msg=res.get("error") or "ASR failed")
|
||||||
|
|||||||
@@ -317,11 +317,12 @@ class Qwen:
|
|||||||
)
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def recognize_speech(file_path: str, user_id: int = 0) -> Dict[str, Any]:
|
async def recognize_speech(file_path: str, user_id: int = 0, image_id: int | None = None) -> Dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
调用通义千问API识别语音内容
|
调用通义千问API识别语音内容
|
||||||
:param file_path: 音频文件路径 (本地路径)
|
:param file_path: 音频文件路径 (本地路径)
|
||||||
:param user_id: 用户ID
|
:param user_id: 用户ID
|
||||||
|
:param image_id: 关联的图片ID
|
||||||
:return: 识别结果
|
:return: 识别结果
|
||||||
"""
|
"""
|
||||||
api_key = _get_primary_qwen_api_key()
|
api_key = _get_primary_qwen_api_key()
|
||||||
@@ -377,7 +378,7 @@ class Qwen:
|
|||||||
status_code=status_code,
|
status_code=status_code,
|
||||||
error_message=None,
|
error_message=None,
|
||||||
called_at=start_at,
|
called_at=start_at,
|
||||||
image_id=0,
|
image_id=image_id,
|
||||||
user_id=user_id,
|
user_id=user_id,
|
||||||
cost=0,
|
cost=0,
|
||||||
api_version=settings.FASTAPI_API_V1_PATH,
|
api_version=settings.FASTAPI_API_V1_PATH,
|
||||||
@@ -428,7 +429,7 @@ class Qwen:
|
|||||||
duration=time.time() - start_time,
|
duration=time.time() - start_time,
|
||||||
status_code=status_code,
|
status_code=status_code,
|
||||||
error_message=error_message,
|
error_message=error_message,
|
||||||
image_id=0,
|
image_id=image_id,
|
||||||
user_id=user_id,
|
user_id=user_id,
|
||||||
called_at=start_at
|
called_at=start_at
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user