Add/develop memory (#247)

* 遗漏的历史映射

* 遗漏的历史映射

* 遗漏的历史映射

* 遗漏的历史映射

* 遗漏的历史映射

* 遗漏的历史映射

* 遗漏的历史映射

* 遗漏的历史映射

* 遗漏的历史映射
This commit is contained in:
lixinyue11
2026-01-29 19:27:02 +08:00
committed by GitHub
parent a67be85858
commit ee50b25d06
2 changed files with 44 additions and 44 deletions

View File

@@ -84,9 +84,7 @@ async def trigger_forgetting_cycle(
connected_config = get_end_user_connected_config(end_user_id, db) connected_config = get_end_user_connected_config(end_user_id, db)
config_id = connected_config.get("memory_config_id") config_id = connected_config.get("memory_config_id")
config_id = resolve_config_id(int(config_id), db) config_id = resolve_config_id((config_id), db)
if config_id is None: if config_id is None:
api_logger.warning(f"终端用户 {end_user_id} 未关联记忆配置") api_logger.warning(f"终端用户 {end_user_id} 未关联记忆配置")
@@ -199,7 +197,7 @@ async def update_forgetting_config(
ApiResponse: 包含更新结果的响应 ApiResponse: 包含更新结果的响应
""" """
workspace_id = current_user.current_workspace_id workspace_id = current_user.current_workspace_id
payload.config_id=resolve_config_id(int(payload.config_id), db) payload.config_id=resolve_config_id((payload.config_id), db)
# 检查用户是否已选择工作空间 # 检查用户是否已选择工作空间
@@ -330,7 +328,7 @@ async def get_forgetting_curve(
ApiResponse: 包含遗忘曲线数据的响应 ApiResponse: 包含遗忘曲线数据的响应
""" """
workspace_id = current_user.current_workspace_id workspace_id = current_user.current_workspace_id
request.config_id = resolve_config_id(int(request.config_id), db) request.config_id = resolve_config_id((request.config_id), db)
# 检查用户是否已选择工作空间 # 检查用户是否已选择工作空间
if workspace_id is None: if workspace_id is None:
api_logger.warning(f"用户 {current_user.username} 尝试获取遗忘曲线但未选择工作空间") api_logger.warning(f"用户 {current_user.username} 尝试获取遗忘曲线但未选择工作空间")

View File

@@ -177,7 +177,6 @@ class LangChainAgent:
# messagss_list.append(f'用户:{query}。AI回复:{aimessages}') # messagss_list.append(f'用户:{query}。AI回复:{aimessages}')
# retrieved_content.append({query: aimessages}) # retrieved_content.append({query: aimessages})
# return messagss_list,retrieved_content # return messagss_list,retrieved_content
async def write(self, storage_type, end_user_id, user_message, ai_message, user_rag_memory_id, actual_end_user_id, actual_config_id): async def write(self, storage_type, end_user_id, user_message, ai_message, user_rag_memory_id, actual_end_user_id, actual_config_id):
""" """
写入记忆(支持结构化消息) 写入记忆(支持结构化消息)
@@ -200,7 +199,9 @@ class LangChainAgent:
""" """
db = next(get_db()) db = next(get_db())
try:
actual_config_id=resolve_config_id(actual_config_id, db) actual_config_id=resolve_config_id(actual_config_id, db)
if storage_type == "rag": if storage_type == "rag":
# RAG 模式:组合消息为字符串格式(保持原有逻辑) # RAG 模式:组合消息为字符串格式(保持原有逻辑)
combined_message = f"user: {user_message}\nassistant: {ai_message}" combined_message = f"user: {user_message}\nassistant: {ai_message}"
@@ -242,7 +243,8 @@ class LangChainAgent:
logger.info(f"[WRITE] Celery task submitted - task_id={write_id}") logger.info(f"[WRITE] Celery task submitted - task_id={write_id}")
write_status = get_task_memory_write_result(str(write_id)) write_status = get_task_memory_write_result(str(write_id))
logger.info(f'[WRITE] Task result - user={actual_end_user_id}, status={write_status}') logger.info(f'[WRITE] Task result - user={actual_end_user_id}, status={write_status}')
finally:
db.close()
async def chat( async def chat(
self, self,
message: str, message: str,