@@ -377,21 +377,37 @@ def _process_string_fine(
377377 except Exception as e :
378378 logger .error (f"[MultiModalFine] Error calling LLM: { e } " )
379379 continue
380- for m in resp .get ("memory list" , []):
380+ if resp .get ("memory list" , []):
381+ for m in resp .get ("memory list" , []):
382+ try :
383+ # Normalize memory_type (same as simple_struct)
384+ memory_type = (
385+ m .get ("memory_type" , "LongTermMemory" )
386+ .replace ("长期记忆" , "LongTermMemory" )
387+ .replace ("用户记忆" , "UserMemory" )
388+ )
389+ # Create fine mode memory item (same as simple_struct)
390+ node = self ._make_memory_item (
391+ value = m .get ("value" , "" ),
392+ info = info ,
393+ memory_type = memory_type ,
394+ tags = m .get ("tags" , []),
395+ key = m .get ("key" , "" ),
396+ sources = sources , # Preserve sources from fast item
397+ background = resp .get ("summary" , "" ),
398+ )
399+ fine_memory_items .append (node )
400+ except Exception as e :
401+ logger .error (f"[MultiModalFine] parse error: { e } " )
402+ elif resp .get ("value" ) and resp .get ("key" ):
381403 try :
382- # Normalize memory_type (same as simple_struct)
383- memory_type = (
384- m .get ("memory_type" , "LongTermMemory" )
385- .replace ("长期记忆" , "LongTermMemory" )
386- .replace ("用户记忆" , "UserMemory" )
387- )
388404 # Create fine mode memory item (same as simple_struct)
389405 node = self ._make_memory_item (
390- value = m .get ("value" , "" ),
406+ value = resp .get ("value" , "" ). strip ( ),
391407 info = info ,
392- memory_type = memory_type ,
393- tags = m .get ("tags" , []),
394- key = m .get ("key" , "" ),
408+ memory_type = "LongTermMemory" ,
409+ tags = resp .get ("tags" , []),
410+ key = resp .get ("key" , None ),
395411 sources = sources , # Preserve sources from fast item
396412 background = resp .get ("summary" , "" ),
397413 )
0 commit comments