config_config替换成memory_config

This commit is contained in:
lixinyue
2026-01-22 14:59:01 +08:00
parent c4039f52bd
commit 1c7fe6d134
21 changed files with 374 additions and 298 deletions

View File

@@ -10,7 +10,7 @@ Classes:
from typing import Dict, Any
from sqlalchemy.orm import Session
from app.models.data_config_model import DataConfig
from app.models.memory_config_model import MemoryConfig
from app.core.logging_config import get_business_logger
logger = get_business_logger()
@@ -61,8 +61,8 @@ class EmotionConfigService:
logger.info(f"获取情绪配置: config_id={config_id}")
# 查询配置
config = self.db.query(DataConfig).filter(
DataConfig.config_id == config_id
config = self.db.query(MemoryConfig).filter(
MemoryConfig.config_id == config_id
).first()
if not config:
@@ -173,8 +173,8 @@ class EmotionConfigService:
self.validate_emotion_config(config_data)
# 查询配置
config = self.db.query(DataConfig).filter(
DataConfig.config_id == config_id
config = self.db.query(MemoryConfig).filter(
MemoryConfig.config_id == config_id
).first()
if not config:

View File

@@ -14,7 +14,7 @@ from app.core.memory.llm_tools.llm_client import LLMClientException
from app.core.memory.models.emotion_models import EmotionExtraction
from app.core.memory.utils.llm.llm_utils import MemoryClientFactory
from app.db import get_db_context
from app.models.data_config_model import DataConfig
from app.models.memory_config_model import MemoryConfig
logger = logging.getLogger(__name__)
@@ -60,7 +60,7 @@ class EmotionExtractionService:
async def extract_emotion(
self,
statement: str,
config: DataConfig
config: MemoryConfig
) -> Optional[EmotionExtraction]:
"""Extract emotion information from a statement.

View File

@@ -1249,7 +1249,7 @@ def get_end_users_connected_configs_batch(end_user_ids: List[str], db: Session)
"""
from app.models.app_release_model import AppRelease
from app.models.end_user_model import EndUser
from app.models.data_config_model import DataConfig
from app.models.memory_config_model import MemoryConfig
from sqlalchemy import select
logger.info(f"Batch getting connected configs for {len(end_user_ids)} end_users")

View File

@@ -14,7 +14,7 @@ from app.core.validators.memory_config_validators import (
validate_embedding_model,
validate_model_exists_and_active,
)
from app.repositories.data_config_repository import DataConfigRepository
from app.repositories.memory_config_repository import MemoryConfigRepository
from app.schemas.memory_config_schema import (
ConfigurationError,
InvalidConfigError,
@@ -127,7 +127,7 @@ class MemoryConfigService:
# Step 1: Get config and workspace
db_query_start = time.time()
result = DataConfigRepository.get_config_with_workspace(self.db, validated_config_id)
result = MemoryConfigRepository.get_config_with_workspace(self.db, validated_config_id)
db_query_time = time.time() - db_query_start
logger.info(f"[PERF] Config+Workspace query: {db_query_time:.4f}s")
if not result:

View File

@@ -23,7 +23,7 @@ from app.core.memory.storage_services.forgetting_engine.config_utils import (
load_actr_config_from_db,
)
from app.repositories.neo4j.neo4j_connector import Neo4jConnector
from app.repositories.data_config_repository import DataConfigRepository
from app.repositories.memory_config_repository import MemoryConfigRepository
from app.repositories.forgetting_cycle_history_repository import ForgettingCycleHistoryRepository
@@ -70,7 +70,7 @@ class MemoryForgetService:
def __init__(self):
"""初始化服务"""
self.config_repository = DataConfigRepository()
self.config_repository = MemoryConfigRepository()
self.history_repository = ForgettingCycleHistoryRepository()
def _get_neo4j_connector(self) -> Neo4jConnector:

View File

@@ -13,7 +13,7 @@ from app.db import get_db
from app.core.logging_config import get_api_logger
from app.core.memory.storage_services.reflection_engine import ReflectionConfig, ReflectionEngine
from app.core.memory.storage_services.reflection_engine.self_reflexion import ReflectionRange, ReflectionBaseline
from app.repositories.data_config_repository import DataConfigRepository
from app.repositories.memory_config_repository import MemoryConfigRepository
from app.repositories.neo4j.neo4j_connector import Neo4jConnector
from app.models.app_model import App
from app.models.app_release_model import AppRelease
@@ -70,7 +70,7 @@ class WorkspaceAppService:
"created_at": app.created_at.isoformat() if app.created_at else None,
"updated_at": app.updated_at.isoformat() if app.updated_at else None,
"releases": [],
"data_configs": [],
"memory_configs": [],
"end_users": []
}
@@ -98,11 +98,11 @@ class WorkspaceAppService:
if memory_content:
processed_configs.add(memory_content)
data_config_info = self._get_data_config(memory_content)
memory_config_info = self._get_memory_config(memory_content)
if data_config_info:
if not any(dc["config_id"] == data_config_info["config_id"] for dc in app_info["data_configs"]):
app_info["data_configs"].append(data_config_info)
if memory_config_info:
if not any(dc["config_id"] == memory_config_info["config_id"] for dc in app_info["memory_configs"]):
app_info["memory_configs"].append(memory_config_info)
app_info["releases"].append(release_info)
@@ -117,30 +117,30 @@ class WorkspaceAppService:
return None
def _get_data_config(self, memory_content: str) -> Dict[str, Any]:
"""Retrieve data_comfig information based on memory_comtent"""
def _get_memory_config(self, memory_content: str) -> Dict[str, Any]:
"""Retrieve memory_config information based on memory_content"""
try:
data_config_result = DataConfigRepository.query_reflection_config_by_id(self.db, int(memory_content))
memory_config_result = MemoryConfigRepository.query_reflection_config_by_id(self.db, int(memory_content))
# data_config_query, data_config_params = DataConfigRepository.build_select_reflection(memory_content)
# data_config_result = self.db.execute(text(data_config_query), data_config_params).fetchone()
# if data_config_result is None:
# memory_config_query, memory_config_params = MemoryConfigRepository.build_select_reflection(memory_content)
# memory_config_result = self.db.execute(text(memory_config_query), memory_config_params).fetchone()
# if memory_config_result is None:
# return None
if data_config_result:
if memory_config_result:
return {
"config_id": data_config_result.config_id,
"enable_self_reflexion": data_config_result.enable_self_reflexion,
"iteration_period": data_config_result.iteration_period,
"reflexion_range": data_config_result.reflexion_range,
"baseline": data_config_result.baseline,
"reflection_model_id": data_config_result.reflection_model_id,
"memory_verify": data_config_result.memory_verify,
"quality_assessment": data_config_result.quality_assessment,
"user_id": data_config_result.user_id
"config_id": memory_config_result.config_id,
"enable_self_reflexion": memory_config_result.enable_self_reflexion,
"iteration_period": memory_config_result.iteration_period,
"reflexion_range": memory_config_result.reflexion_range,
"baseline": memory_config_result.baseline,
"reflection_model_id": memory_config_result.reflection_model_id,
"memory_verify": memory_config_result.memory_verify,
"quality_assessment": memory_config_result.quality_assessment,
"user_id": memory_config_result.user_id
}
except Exception as e:
api_logger.warning(f"查询data_config失败memory_content: {memory_content}, 错误: {str(e)}")
api_logger.warning(f"查询memory_config失败memory_content: {memory_content}, 错误: {str(e)}")
return None
@@ -223,7 +223,7 @@ class MemoryReflectionService:
}
config_data_id = config_data['config_id']
reflection_config = WorkspaceAppService(self.db)._get_data_config(config_data_id)
reflection_config = WorkspaceAppService(self.db)._get_memory_config(config_data_id)
if reflection_config is not None and reflection_config['enable_self_reflexion']:
reflection_config = self._create_reflection_config_from_data(reflection_config)
# 3. 执行反思引擎
@@ -277,7 +277,7 @@ class MemoryReflectionService:
config_data_id=config_data['config_id']
reflection_config=WorkspaceAppService(self.db)._get_data_config(config_data_id)
reflection_config=WorkspaceAppService(self.db)._get_memory_config(config_data_id)
if reflection_config is not None and reflection_config['enable_self_reflexion']:
reflection_config= self._create_reflection_config_from_data(reflection_config)
iteration_period = int(reflection_config.iteration_period)

View File

@@ -15,7 +15,7 @@ from app.core.logging_config import get_config_logger, get_logger
from app.core.memory.analytics.hot_memory_tags import get_hot_memory_tags
from app.core.memory.analytics.recent_activity_stats import get_recent_activity_stats
from app.models.user_model import User
from app.repositories.data_config_repository import DataConfigRepository
from app.repositories.memory_config_repository import MemoryConfigRepository
from app.repositories.neo4j.neo4j_connector import Neo4jConnector
from app.schemas.memory_config_schema import ConfigurationError
from app.schemas.memory_storage_schema import (
@@ -125,7 +125,7 @@ class DataConfigService: # 数据配置服务类PostgreSQL
if not params.rerank_id:
params.rerank_id = configs.get('rerank')
config = DataConfigRepository.create(self.db, params)
config = MemoryConfigRepository.create(self.db, params)
self.db.commit()
return {"affected": 1, "config_id": config.config_id}
@@ -142,20 +142,20 @@ class DataConfigService: # 数据配置服务类PostgreSQL
# --- Delete ---
def delete(self, key: ConfigParamsDelete) -> Dict[str, Any]: # 删除配置参数按配置ID
success = DataConfigRepository.delete(self.db, key.config_id)
success = MemoryConfigRepository.delete(self.db, key.config_id)
if not success:
raise ValueError("未找到配置")
return {"affected": 1}
# --- Update ---
def update(self, update: ConfigUpdate) -> Dict[str, Any]: # 部分更新配置参数
config = DataConfigRepository.update(self.db, update)
config = MemoryConfigRepository.update(self.db, update)
if not config:
raise ValueError("未找到配置")
return {"affected": 1}
def update_extracted(self, update: ConfigUpdateExtracted) -> Dict[str, Any]: # 更新记忆萃取引擎配置参数
config = DataConfigRepository.update_extracted(self.db, update)
config = MemoryConfigRepository.update_extracted(self.db, update)
if not config:
raise ValueError("未找到配置")
return {"affected": 1}
@@ -166,14 +166,14 @@ class DataConfigService: # 数据配置服务类PostgreSQL
# --- Read ---
def get_extracted(self, key: ConfigKey) -> Dict[str, Any]: # 获取萃取配置参数
result = DataConfigRepository.get_extracted_config(self.db, key.config_id)
result = MemoryConfigRepository.get_extracted_config(self.db, key.config_id)
if not result:
raise ValueError("未找到配置")
return result
# --- Read All ---
def get_all(self, workspace_id = None) -> List[Dict[str, Any]]: # 获取所有配置参数
configs = DataConfigRepository.get_all(self.db, workspace_id)
configs = MemoryConfigRepository.get_all(self.db, workspace_id)
# 将 ORM 对象转换为字典列表
data_list = []
@@ -390,7 +390,7 @@ _neo4j_connector = Neo4jConnector()
async def search_dialogue(end_user_id: Optional[str] = None) -> Dict[str, Any]:
result = await _neo4j_connector.execute_query(
DataConfigRepository.SEARCH_FOR_DIALOGUE,
MemoryConfigRepository.SEARCH_FOR_DIALOGUE,
end_user_id=end_user_id,
)
data = {"search_for": "dialogue", "num": result[0]["num"]}
@@ -399,7 +399,7 @@ async def search_dialogue(end_user_id: Optional[str] = None) -> Dict[str, Any]:
async def search_chunk(end_user_id: Optional[str] = None) -> Dict[str, Any]:
result = await _neo4j_connector.execute_query(
DataConfigRepository.SEARCH_FOR_CHUNK,
MemoryConfigRepository.SEARCH_FOR_CHUNK,
end_user_id=end_user_id,
)
data = {"search_for": "chunk", "num": result[0]["num"]}
@@ -408,7 +408,7 @@ async def search_chunk(end_user_id: Optional[str] = None) -> Dict[str, Any]:
async def search_statement(end_user_id: Optional[str] = None) -> Dict[str, Any]:
result = await _neo4j_connector.execute_query(
DataConfigRepository.SEARCH_FOR_STATEMENT,
MemoryConfigRepository.SEARCH_FOR_STATEMENT,
end_user_id=end_user_id,
)
data = {"search_for": "statement", "num": result[0]["num"]}
@@ -417,7 +417,7 @@ async def search_statement(end_user_id: Optional[str] = None) -> Dict[str, Any]:
async def search_entity(end_user_id: Optional[str] = None) -> Dict[str, Any]:
result = await _neo4j_connector.execute_query(
DataConfigRepository.SEARCH_FOR_ENTITY,
MemoryConfigRepository.SEARCH_FOR_ENTITY,
end_user_id=end_user_id,
)
data = {"search_for": "entity", "num": result[0]["num"]}
@@ -426,7 +426,7 @@ async def search_entity(end_user_id: Optional[str] = None) -> Dict[str, Any]:
async def search_all(end_user_id: Optional[str] = None) -> Dict[str, Any]:
result = await _neo4j_connector.execute_query(
DataConfigRepository.SEARCH_FOR_ALL,
MemoryConfigRepository.SEARCH_FOR_ALL,
end_user_id=end_user_id,
)
@@ -461,7 +461,7 @@ async def kb_type_distribution(end_user_id: Optional[str] = None) -> Dict[str, A
聚合 dialogue/chunk/statement/entity 四类计数,返回统一的分布结构,便于前端一次性消费。
"""
result = await _neo4j_connector.execute_query(
DataConfigRepository.SEARCH_FOR_ALL,
MemoryConfigRepository.SEARCH_FOR_ALL,
end_user_id=end_user_id,
)
@@ -492,7 +492,7 @@ async def kb_type_distribution(end_user_id: Optional[str] = None) -> Dict[str, A
async def search_detials(end_user_id: Optional[str] = None) -> List[Dict[str, Any]]:
result = await _neo4j_connector.execute_query(
DataConfigRepository.SEARCH_FOR_DETIALS,
MemoryConfigRepository.SEARCH_FOR_DETIALS,
end_user_id=end_user_id,
)
return result
@@ -500,7 +500,7 @@ async def search_detials(end_user_id: Optional[str] = None) -> List[Dict[str, An
async def search_edges(end_user_id: Optional[str] = None) -> List[Dict[str, Any]]:
result = await _neo4j_connector.execute_query(
DataConfigRepository.SEARCH_FOR_EDGES,
MemoryConfigRepository.SEARCH_FOR_EDGES,
end_user_id=end_user_id,
)
return result