liumaolin commited on
Commit
d231de5
·
1 Parent(s): fb6d02a

Refactor ASR routes: replace `fastapi_request.state` with `fastapi_request.app.state` for consistent application-level state management.

Browse files
src/VoiceDialogue/api/routes/asr_routes.py CHANGED
@@ -29,7 +29,7 @@ async def get_supported_languages(fastapi_request: Request):
29
  available_languages = asr_manager.get_available_languages()
30
  language_mappings = asr_manager._language_to_asr_mapping
31
  asr_engines = list(asr_manager.list_registered_asr().keys())
32
- current_asr_language = getattr(fastapi_request.state, "current_asr_language", None)
33
 
34
  return SupportedLanguagesResponse(
35
  languages=available_languages,
@@ -63,7 +63,7 @@ async def create_asr_instance(
63
  )
64
 
65
  # 检查当前语言是否已存在且相同
66
- current_asr_language = getattr(fastapi_request.state, "current_asr_language", None)
67
  if current_asr_language and current_asr_language == request.language:
68
  asr_type = asr_manager._get_asr_type_for_language(request.language)
69
  return ASRInstanceResponse(
@@ -126,7 +126,7 @@ async def _create_asr_instance_background(request: ASRInstanceRequest, fastapi_r
126
  raise RuntimeError("服务管理器未初始化")
127
 
128
  # 检查是否需要重新创建服务
129
- current_asr_language = getattr(fastapi_request.state, "current_asr_language", None)
130
  if current_asr_language and current_asr_language != request.language:
131
  logger.info(f"请求语言({request.language})与当前语言({current_asr_language})不同,需要重新创建服务")
132
 
@@ -142,7 +142,7 @@ async def _create_asr_instance_background(request: ASRInstanceRequest, fastapi_r
142
  raise RuntimeError("ASR服务启动失败")
143
 
144
  # 更新请求状态中的当前语言
145
- fastapi_request.state.current_asr_language = request.language
146
 
147
  # 生成实例ID
148
  instance_id = f"{asr_type}_{request.language}"
 
29
  available_languages = asr_manager.get_available_languages()
30
  language_mappings = asr_manager._language_to_asr_mapping
31
  asr_engines = list(asr_manager.list_registered_asr().keys())
32
+ current_asr_language = getattr(fastapi_request.app.state, "current_asr_language", None)
33
 
34
  return SupportedLanguagesResponse(
35
  languages=available_languages,
 
63
  )
64
 
65
  # 检查当前语言是否已存在且相同
66
+ current_asr_language = getattr(fastapi_request.app.state, "current_asr_language", None)
67
  if current_asr_language and current_asr_language == request.language:
68
  asr_type = asr_manager._get_asr_type_for_language(request.language)
69
  return ASRInstanceResponse(
 
126
  raise RuntimeError("服务管理器未初始化")
127
 
128
  # 检查是否需要重新创建服务
129
+ current_asr_language = getattr(fastapi_request.app.state, "current_asr_language", None)
130
  if current_asr_language and current_asr_language != request.language:
131
  logger.info(f"请求语言({request.language})与当前语言({current_asr_language})不同,需要重新创建服务")
132
 
 
142
  raise RuntimeError("ASR服务启动失败")
143
 
144
  # 更新请求状态中的当前语言
145
+ fastapi_request.app.state.current_asr_language = request.language
146
 
147
  # 生成实例ID
148
  instance_id = f"{asr_type}_{request.language}"