Merge #61 into develop from fix/llm-output

[fix]LLM formatted output

* fix/llm-output: (3 commits)
  [fix]LLM formatted output
  [fix]LLM formatted output
  Merge branch 'fix/llm-output' of codeup.aliyun.com:redbearai/python/redbear-mem...

Signed-off-by: 乐力齐 <accounts_690c7b0af9007d7e338af636@mail.teambition.com>
Reviewed-by: aliyun6762716068 <accounts_68cb7c6b61f5dcc4200d6251@mail.teambition.com>
Merged-by: aliyun6762716068 <accounts_68cb7c6b61f5dcc4200d6251@mail.teambition.com>

CR-link: https://codeup.aliyun.com/redbearai/python/redbear-mem-open/change/61
This commit is contained in:
孙科
2025-12-25 18:22:34 +08:00

View File

@@ -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)