Merge branch 'develop' of github.com:SuanmoSuanyangTechnology/MemoryBear into develop

This commit is contained in:
Mark
2026-01-12 21:11:09 +08:00
38 changed files with 811 additions and 296 deletions

View File

@@ -113,8 +113,8 @@ class AppChatService:
web_tools = config.tools
web_search_choice = web_tools.get("web_search", {})
web_search_enable = web_search_choice.get("enabled", False)
if web_search == True:
if web_search_enable == True:
if web_search:
if web_search_enable:
search_tool = create_web_search_tool({})
tools.append(search_tool)
@@ -263,8 +263,8 @@ class AppChatService:
web_tools = config.tools
web_search_choice = web_tools.get("web_search", {})
web_search_enable = web_search_choice.get("enabled", False)
if web_search == True:
if web_search_enable == True:
if web_search:
if web_search_enable:
search_tool = create_web_search_tool({})
tools.append(search_tool)

View File

@@ -318,8 +318,8 @@ class DraftRunService:
web_tools = agent_config.tools
web_search_choice = web_tools.get("web_search", {})
web_search_enable = web_search_choice.get("enabled", False)
if web_search == True:
if web_search_enable == True:
if web_search:
if web_search_enable:
search_tool = create_web_search_tool({})
tools.append(search_tool)
@@ -546,8 +546,8 @@ class DraftRunService:
web_tools = agent_config.tools
web_search_choice = web_tools.get("web_search", {})
web_search_enable = web_search_choice.get("enabled", False)
if web_search == True:
if web_search_enable == True:
if web_search:
if web_search_enable:
search_tool = create_web_search_tool({})
tools.append(search_tool)

View File

@@ -396,6 +396,7 @@ class MemoryAgentService:
import time
start_time = time.time()
ori_message=message
end_user_id=group_id
# Resolve config_id if None using end_user's connected config
if config_id is None:
try:
@@ -528,7 +529,6 @@ class MemoryAgentService:
workflow_duration = time.time() - start
logger.info(f"Read graph workflow completed in {workflow_duration}s")
# Extract final answer
final_answer = ""
for messages in outputs:
@@ -602,18 +602,24 @@ class MemoryAgentService:
repo = ShortTermMemoryRepository(db)
if str(search_switch)!="2":
for intermediate in intermediate_outputs:
print(intermediate)
intermediate_type=intermediate['type']
if intermediate_type=="search_result":
query=intermediate['query']
raw_results=intermediate['raw_results']
reranked_results=raw_results.get('reranked_results',[])
statements=[statement['statement'] for statement in reranked_results.get('statements', [])]
try:
statements=[statement['statement'] for statement in reranked_results.get('statements', [])]
except Exception as e:
statements=[]
statements=list(set(statements))
retrieved_content.append({query:statements})
if '信息不足,无法回答' in str(final_answer) or retrieved_content!=[]:
if retrieved_content==[]:
retrieved_content=''
if '信息不足,无法回答。' != str(final_answer) :#and retrieved_content!=[]
# 使用 upsert 方法
repo.upsert(
end_user_id=group_id, # 确保这个变量在作用域内
end_user_id=end_user_id, # 确保这个变量在作用域内
messages=ori_message,
aimessages=final_answer,
retrieved_content=retrieved_content,

View File

@@ -205,8 +205,8 @@ class MemoryConfigService:
chunker_strategy=memory_config.chunker_strategy or "RecursiveChunker",
reflexion_enabled=memory_config.enable_self_reflexion or False,
reflexion_iteration_period=int(memory_config.iteration_period or "3"),
reflexion_range=memory_config.reflexion_range or "retrieval",
reflexion_baseline=memory_config.baseline or "time",
reflexion_range=memory_config.reflexion_range or "partial",
reflexion_baseline=memory_config.baseline or "Time",
loaded_at=datetime.now(),
# Pipeline config: Deduplication
enable_llm_dedup_blockwise=bool(memory_config.enable_llm_dedup_blockwise) if memory_config.enable_llm_dedup_blockwise is not None else False,

View File

@@ -490,17 +490,19 @@ class MemoryEmotion:
# 如果created_at是字符串格式尝试格式化
if isinstance(created_at, str):
formatted_created_at = self._format_datetime(created_at)
emotion_type = record.get('emotion_type')
emotion_intensity = record.get('emotion_intensity')
if emotion_type !=None:
length_data.append(emotion_intensity)
if emotion_type is not None and emotion_intensity is not None and formatted_created_at is not None:
# 使用(emotion_type, created_at)作为分组键
if emotion_type in {"joy", "surprise"}:
emotion_type='positive'
elif emotion_type in {"sadness", "fear", "anger"}:
emotion_type='negative'
elif emotion_type=='neutral':
emotion_type='neutral'
group_key = (emotion_type, formatted_created_at)
# 累加emotion_intensity
try:
emotion_groups[group_key] += float(emotion_intensity)

View File

@@ -209,7 +209,7 @@ class SharedChatService:
# 添加长期记忆工具
memory_flag=False
if memory==True:
if memory:
memory_config = config.get("memory", {})
if memory_config.get("enabled") and user_id:
memory_flag=True
@@ -219,8 +219,8 @@ class SharedChatService:
web_tools=config.get("tools")
web_search_choice = web_tools.get("web_search", {})
web_search_enable = web_search_choice.get("enabled",False)
if web_search==True:
if web_search_enable==True:
if web_search:
if web_search_enable:
search_tool = create_web_search_tool({})
tools.append(search_tool)
@@ -413,8 +413,8 @@ class SharedChatService:
web_tools = config.get("tools")
web_search_choice = web_tools.get("web_search", {})
web_search_enable = web_search_choice.get("enabled", False)
if web_search == True:
if web_search_enable == True:
if web_search:
if web_search_enable:
search_tool = create_web_search_tool({})
tools.append(search_tool)