|
|
@@ -638,32 +638,6 @@ class OutlineGenerator:
|
|
|
return None
|
|
|
return self._keyword_rules_cache.get(code)
|
|
|
|
|
|
- def _resolve_llm_model_name(
|
|
|
- self,
|
|
|
- function_name: Optional[str] = None,
|
|
|
- model_name: Optional[str] = None
|
|
|
- ) -> str:
|
|
|
- """解析本次 LLM 调用实际会使用的模型名,用于日志排查。"""
|
|
|
- try:
|
|
|
- from foundation.ai.models.model_config_loader import get_model_for_function
|
|
|
-
|
|
|
- # 保持和 generate_model_client.get_model_generate_invoke 的解析顺序一致。
|
|
|
- if function_name:
|
|
|
- resolved_model = get_model_for_function(function_name)
|
|
|
- if resolved_model:
|
|
|
- return resolved_model
|
|
|
-
|
|
|
- if model_name:
|
|
|
- return model_name
|
|
|
-
|
|
|
- default_model = get_model_for_function("default")
|
|
|
- if default_model:
|
|
|
- return default_model
|
|
|
- except Exception as e:
|
|
|
- logger.warning(f"[LLM调用] 解析模型名失败: {str(e)}")
|
|
|
-
|
|
|
- return model_name or "default"
|
|
|
-
|
|
|
async def _call_llm(
|
|
|
self,
|
|
|
trace_id: str,
|
|
|
@@ -735,14 +709,7 @@ class OutlineGenerator:
|
|
|
"task_prompt": chat_template
|
|
|
}
|
|
|
|
|
|
- resolved_model_name = self._resolve_llm_model_name(
|
|
|
- function_name=function_name,
|
|
|
- model_name=model_name
|
|
|
- )
|
|
|
- logger.info(
|
|
|
- f"[LLM调用] trace_id: {trace_id}, model: {resolved_model_name}, "
|
|
|
- f"function_name: {function_name}, 开始生成内容"
|
|
|
- )
|
|
|
+ logger.info(f"[LLM调用] trace_id: {trace_id}, 开始生成内容")
|
|
|
|
|
|
# 调用模型生成(非流式)
|
|
|
generated_content = await generate_model_client.get_model_generate_invoke(
|
|
|
@@ -753,26 +720,15 @@ class OutlineGenerator:
|
|
|
function_name=function_name,
|
|
|
)
|
|
|
|
|
|
- logger.info(
|
|
|
- f"[LLM调用] trace_id: {trace_id}, model: {resolved_model_name}, "
|
|
|
- f"生成完成,内容长度: {len(generated_content)}"
|
|
|
- )
|
|
|
+ logger.info(f"[LLM调用] trace_id: {trace_id}, 生成完成,内容长度: {len(generated_content)}")
|
|
|
|
|
|
return generated_content
|
|
|
|
|
|
except TimeoutError as e:
|
|
|
- resolved_model_name = self._resolve_llm_model_name(
|
|
|
- function_name=function_name,
|
|
|
- model_name=model_name
|
|
|
- )
|
|
|
- logger.error(f"[LLM调用] trace_id: {trace_id}, model: {resolved_model_name}, 超时: {str(e)}")
|
|
|
+ logger.error(f"[LLM调用] trace_id: {trace_id}, 超时: {str(e)}")
|
|
|
raise
|
|
|
except Exception as e:
|
|
|
- resolved_model_name = self._resolve_llm_model_name(
|
|
|
- function_name=function_name,
|
|
|
- model_name=model_name
|
|
|
- )
|
|
|
- logger.error(f"[LLM调用] trace_id: {trace_id}, model: {resolved_model_name}, 异常: {str(e)}")
|
|
|
+ logger.error(f"[LLM调用] trace_id: {trace_id}, 异常: {str(e)}")
|
|
|
raise
|
|
|
|
|
|
async def _generate_single_chapter(
|