重构记忆系统核心模块,引入全局记忆作用域、记忆指纹去重机制和查询规划器,优化多阶段检索性能。移除插件热重载系统及其相关依赖。 主要变更: - 引入全局记忆作用域,简化记忆管理 - 实现记忆指纹去重,避免重复记忆存储 - 新增查询规划器,支持语义查询规划和记忆类型过滤 - 优化多阶段检索,增加语义重排和权重配置 - 改进向量存储,支持嵌入维度自动解析和查询向量生成 - 增强元数据索引,支持主体索引和更新操作 - 记忆构建器支持多主体和自然语言展示 - 移除watchdog依赖和插件热重载模块 - 更新配置模板,简化记忆配置项 BREAKING CHANGE: 移除插件热重载系统,相关API和命令不再可用。记忆系统接口有较大调整,使用该系统的模块需要适配新接口。
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Optional
|
|
|
|
from src.config.config import global_config, model_config
|
|
|
|
|
|
def resolve_embedding_dimension(fallback: Optional[int] = None, *, sync_global: bool = True) -> Optional[int]:
|
|
"""获取当前配置的嵌入向量维度。
|
|
|
|
优先顺序:
|
|
1. 模型配置中 `model_task_config.embedding.embedding_dimension`
|
|
2. 机器人配置中 `lpmm_knowledge.embedding_dimension`
|
|
3. 调用方提供的 fallback
|
|
"""
|
|
|
|
candidates: list[Optional[int]] = []
|
|
|
|
try:
|
|
embedding_task = getattr(model_config.model_task_config, "embedding", None)
|
|
if embedding_task is not None:
|
|
candidates.append(getattr(embedding_task, "embedding_dimension", None))
|
|
except Exception:
|
|
candidates.append(None)
|
|
|
|
try:
|
|
candidates.append(getattr(global_config.lpmm_knowledge, "embedding_dimension", None))
|
|
except Exception:
|
|
candidates.append(None)
|
|
|
|
candidates.append(fallback)
|
|
|
|
resolved: Optional[int] = next((int(dim) for dim in candidates if dim and int(dim) > 0), None)
|
|
|
|
if resolved and sync_global:
|
|
try:
|
|
if getattr(global_config.lpmm_knowledge, "embedding_dimension", None) != resolved:
|
|
global_config.lpmm_knowledge.embedding_dimension = resolved # type: ignore[attr-defined]
|
|
except Exception:
|
|
pass
|
|
|
|
return resolved
|