Merge pull request #531 from SuanmoSuanyangTechnology/feature/pruning-scene

[add] Different scenarios achieve different pruning effects.
This commit is contained in:
Ke Sun
2026-03-10 20:16:08 +08:00
committed by GitHub
6 changed files with 124 additions and 552 deletions

View File

@@ -107,29 +107,19 @@ def _validate_config_id(config_id, db: Session = None):
)
# 专门场景的内置 key 集合,直接从 SceneConfigRegistry 派生,避免重复维护
# 使用懒加载函数避免模块级循环导入
def _get_builtin_pruning_scenes() -> set:
from app.core.memory.storage_services.extraction_engine.data_preprocessing.scene_config import SceneConfigRegistry
return set(SceneConfigRegistry.get_all_scenes())
def _load_ontology_classes(db: Session, scene_id, pruning_scene: Optional[str]) -> Optional[list]:
"""当 pruning_scene 不是内置场景时,从 ontology_class 表加载类型名称列表。
"""从 ontology_class 表加载场景类型名称列表,用于注入提示词
Args:
db: 数据库会话
scene_id: 本体场景 UUID
pruning_scene: 语义剪枝场景名称
pruning_scene: 语义剪枝场景名称(保留参数,暂未使用)
Returns:
class_name 字符串列表,或 None内置场景 / 无数据时)
class_name 字符串列表,或 None无数据时
"""
if not scene_id:
return None
# 内置场景走 SceneConfigRegistry不需要注入类型列表
if pruning_scene in _get_builtin_pruning_scenes():
return None
try:
from app.repositories.ontology_class_repository import OntologyClassRepository
repo = OntologyClassRepository(db)

View File

@@ -120,7 +120,8 @@ async def run_pilot_extraction(
"pruning_switch": memory_config.pruning_enabled,
"pruning_scene": memory_config.pruning_scene,
"pruning_threshold": memory_config.pruning_threshold,
"llm_model_id": str(memory_config.llm_model_id),
"scene_id": str(memory_config.scene_id) if memory_config.scene_id else None,
"ontology_classes": memory_config.ontology_classes,
}
config = PruningConfig(**pruning_config_dict)