From f047820196ced2ead475760627ded41e5ca8e7c4 Mon Sep 17 00:00:00 2001 From: lanceyq <1982376970@qq.com> Date: Thu, 25 Dec 2025 18:20:08 +0800 Subject: [PATCH] [fix]LLM formatted output --- api/app/services/emotion_analytics_service.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/api/app/services/emotion_analytics_service.py b/api/app/services/emotion_analytics_service.py index e4b5bed6..f2532557 100644 --- a/api/app/services/emotion_analytics_service.py +++ b/api/app/services/emotion_analytics_service.py @@ -542,15 +542,14 @@ class EmotionAnalyticsService: {"role": "user", "content": prompt} ] - response = await llm_client.chat(messages=messages) - response_text = response.content.strip() - - # 8. 解析LLM响应 + # 8. 使用结构化输出直接获取 Pydantic 模型 try: - response_data = json.loads(response_text) - suggestions_response = EmotionSuggestionsResponse(**response_data) - except (json.JSONDecodeError, Exception) as e: - logger.error(f"解析LLM响应失败: {str(e)}, response={response_text}") + suggestions_response = await llm_client.response_structured( + messages=messages, + response_model=EmotionSuggestionsResponse + ) + except Exception as e: + logger.error(f"LLM 结构化输出失败: {str(e)}") # 返回默认建议 suggestions_response = self._get_default_suggestions(health_data)