From 1f0bb1f8afd269be2af3070274592046cdd67967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=96=B0=E6=9C=88?= Date: Fri, 19 Dec 2025 10:37:28 +0000 Subject: [PATCH] Merge #19 into develop from fix/memory_reflection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 统一输出 * fix/memory_reflection: (35 commits squashed) - 新增反思功能(功能配置接口+反思celery后台检测反思的迭代周期) - 新增反思功能(功能配置接口+反思celery后台检测反思的迭代周期) - 新增反思功能(检测代码/规范化程序) - 新增反思功能(检测代码/规范化程序) - 新增反思功能(检测代码/规范化程序) - 新增反思功能(检测代码/规范化程序) - 新增反思功能(检测代码/规范化程序) - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - 反思优化 - Merge branch develop into fix/memory_reflection (Conflict resolved online) # Conflicts: # api/app/controllers/memory_reflection_controller.py # api/app/schemas/memory_reflection_schemas.py - 反思优化 - Merge remote-tracking branch 'origin/fix/memory_reflection' into fix/memory_reflection - 统一输出 - 统一输出 - 统一输出 - Merge branch develop into fix/memory_reflection (Conflict resolved online) # Conflicts: # api/app/controllers/memory_reflection_controller.py - 统一输出 - Merge remote-tracking branch 'origin/fix/memory_reflection' into fix/memory_reflection - 统一输出 Signed-off-by: aliyun8644380055 Reviewed-by: aliyun6762716068 Merged-by: aliyun6762716068 CR-link: https://codeup.aliyun.com/redbearai/python/redbear-mem-open/change/19 --- .../memory_reflection_controller.py | 50 ++++++++----------- .../reflection_engine/self_reflexion.py | 5 +- 2 files changed, 23 insertions(+), 32 deletions(-) diff --git a/api/app/controllers/memory_reflection_controller.py b/api/app/controllers/memory_reflection_controller.py index bd9e0e09..8dfa6c50 100644 --- a/api/app/controllers/memory_reflection_controller.py +++ b/api/app/controllers/memory_reflection_controller.py @@ -1,4 +1,5 @@ import asyncio +import time from dotenv import load_dotenv from fastapi import APIRouter, Depends, HTTPException, status @@ -6,17 +7,17 @@ from sqlalchemy.orm import Session from sqlalchemy import text from app.core.logging_config import get_api_logger +from app.core.response_utils import success from app.core.memory.storage_services.reflection_engine.self_reflexion import ReflectionConfig, ReflectionEngine from app.dependencies import get_current_user from app.db import get_db from app.models.user_model import User from app.repositories.data_config_repository import DataConfigRepository from app.repositories.neo4j.neo4j_connector import Neo4jConnector - from app.services.memory_reflection_service import WorkspaceAppService, MemoryReflectionService - from app.schemas.memory_reflection_schemas import Memory_Reflection from app.services.model_service import ModelConfigService + load_dotenv() api_logger = get_api_logger() @@ -80,13 +81,8 @@ async def save_reflection_config( ) api_logger.info(f"成功保存反思配置到数据库,config_id: {config_id}") - - # 返回结果 - return { - "status": "成功", - "message": "反思配置已保存", - "config_id": config_id, - "database_record": { + + reflection_result={ "config_id": result.config_id, "enable_self_reflexion": result.enable_self_reflexion, "iteration_period": result.iteration_period, @@ -95,9 +91,11 @@ async def save_reflection_config( "reflection_model_id": result.reflection_model_id, "memory_verify": result.memory_verify, "quality_assessment": result.quality_assessment, - "user_id": result.user_id - } - } + "user_id": result.user_id} + + return success(data=reflection_result, msg="反思配置成功") + + except ValueError as ve: api_logger.error(f"参数错误: {str(ve)}") @@ -156,13 +154,7 @@ async def start_workspace_reflection( "reflection_result": reflection_result }) - return { - "status": "完成", - "message": f"成功处理 {len(reflection_results)} 个反思任务", - "workspace_id": str(workspace_id), - "reflection_count": len(reflection_results), - "reflection_results": reflection_results - } + return success(data=reflection_results, msg="反思配置成功") except Exception as e: api_logger.error(f"启动workspace反思失败: {str(e)}") @@ -179,7 +171,6 @@ async def start_reflection_configs( db: Session = Depends(get_db), ) -> dict: """通过config_id查询data_config表中的反思配置信息""" - try: api_logger.info(f"用户 {current_user.username} 查询反思配置,config_id: {config_id}") @@ -196,8 +187,8 @@ async def start_reflection_configs( # 构建返回数据 reflection_config = { "config_id": result.config_id, - "enable_self_reflexion": result.enable_self_reflexion, - "iteration_period": result.iteration_period, + "reflection_enabled": result.enable_self_reflexion, + "reflection_period_in_hours": result.iteration_period, "reflexion_range": result.reflexion_range, "baseline": result.baseline, "reflection_model_id": result.reflection_model_id, @@ -205,15 +196,10 @@ async def start_reflection_configs( "quality_assessment": result.quality_assessment, "user_id": result.user_id } - api_logger.info(f"成功查询反思配置,config_id: {config_id}") + return success(data=reflection_config, msg="反思配置查询成功") - return { - "status": "成功", - "message": "反思配置查询成功", - "data": reflection_config - } - + except HTTPException: # 重新抛出HTTP异常 raise @@ -276,4 +262,8 @@ async def reflection_run( ) result=await (engine.reflection_run()) - return result \ No newline at end of file + return success(data=result, msg="反思试运行") + + + + diff --git a/api/app/core/memory/storage_services/reflection_engine/self_reflexion.py b/api/app/core/memory/storage_services/reflection_engine/self_reflexion.py index 8f5b9bae..6ccec500 100644 --- a/api/app/core/memory/storage_services/reflection_engine/self_reflexion.py +++ b/api/app/core/memory/storage_services/reflection_engine/self_reflexion.py @@ -19,6 +19,7 @@ import uuid from pydantic import BaseModel +from app.core.response_utils import success from app.repositories.neo4j.cypher_queries import neo4j_query_part, neo4j_statement_part, neo4j_query_all, neo4j_statement_all from app.repositories.neo4j.neo4j_update import neo4j_data from app.repositories.neo4j.neo4j_connector import Neo4jConnector @@ -314,8 +315,8 @@ class ReflectionEngine: for result in item['results']: reflexion_data.append(result['reflexion']) result_data['reflexion_data'] = reflexion_data - execution_time = time.time() - start_time - return {"status": "SUCCESS", "message": "反思试运行", "data": result_data, "time": execution_time} + return result_data + async def extract_fields_from_json(self): """从example.json中提取source_data和databasets字段"""