Merge #63 into develop from fix/llm-output

[fix]Refresh formatted output

* fix/llm-output: (3 commits)
  [fix]Refresh formatted output
  [fix]Refresh 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/63
This commit is contained in:
孙科
2025-12-25 18:59:22 +08:00
2 changed files with 37 additions and 2 deletions

View File

@@ -312,7 +312,24 @@ class MemoryInsight:
response = await self.llm_client.chat(messages=messages)
return response.content
# 确保返回字符串类型
content = response.content
if isinstance(content, list):
# 如果是列表格式(如 [{'type': 'text', 'text': '...'}]),提取文本
if len(content) > 0:
if isinstance(content[0], dict):
# 尝试提取 'text' 字段
text = content[0].get('text', content[0].get('content', str(content[0])))
return str(text)
else:
return str(content[0])
return ""
elif isinstance(content, dict):
# 如果是字典格式,提取 text 字段
return str(content.get('text', content.get('content', str(content))))
else:
# 已经是字符串或其他类型,转为字符串
return str(content) if content is not None else ""
async def close(self):
"""

View File

@@ -135,7 +135,25 @@ class UserSummary:
# 3) Call LLM
response = await self.llm.chat(messages=messages)
return response.content
# 确保返回字符串类型
content = response.content
if isinstance(content, list):
# 如果是列表格式(如 [{'type': 'text', 'text': '...'}]),提取文本
if len(content) > 0:
if isinstance(content[0], dict):
# 尝试提取 'text' 字段
text = content[0].get('text', content[0].get('content', str(content[0])))
return str(text)
else:
return str(content[0])
return ""
elif isinstance(content, dict):
# 如果是字典格式,提取 text 字段
return str(content.get('text', content.get('content', str(content))))
else:
# 已经是字符串或其他类型,转为字符串
return str(content) if content is not None else ""
async def generate_user_summary(user_id: str | None = None) -> str: