Files
Mofox-Core/src/chat/utils/memory_mappings.py
Windpicker-owo 1f2d7d9ee5 feat(memory): 实现灵活搜索模式并重构记忆格式化系统
- 新增灵活匹配模式(flexible_mode),支持2/4项匹配即可的记忆检索策略
- 删除冗余的memory_formatter模块,简化记忆系统架构
- 增强枚举值解析机制,支持字符串、整数和枚举实例的自动转换
- 优化元数据索引搜索逻辑,分离严格模式和灵活模式的实现路径
- 改进向量存储的搜索回退机制,当元数据筛选无结果时自动回退到全量搜索
- 统一记忆类型映射管理,避免重复的格式化函数定义

这些变更提升了记忆检索的准确性和灵活性,同时简化了代码结构,提高了系统可维护性。
2025-10-02 11:27:06 +08:00

109 lines
2.8 KiB
Python

# -*- coding: utf-8 -*-
"""
记忆系统相关的映射表和工具函数
提供记忆类型、置信度、重要性等的中文标签映射
"""
# 记忆类型到中文标签的完整映射表
MEMORY_TYPE_CHINESE_MAPPING = {
"personal_fact": "个人事实",
"preference": "偏好",
"event": "事件",
"opinion": "观点",
"relationship": "人际关系",
"emotion": "情感状态",
"knowledge": "知识信息",
"skill": "技能能力",
"goal": "目标计划",
"experience": "经验教训",
"contextual": "上下文信息",
"unknown": "未知"
}
# 置信度等级到中文标签的映射表
CONFIDENCE_LEVEL_CHINESE_MAPPING = {
1: "低置信度",
2: "中等置信度",
3: "高置信度",
4: "已验证",
"LOW": "低置信度",
"MEDIUM": "中等置信度",
"HIGH": "高置信度",
"VERIFIED": "已验证",
"unknown": "未知"
}
# 重要性等级到中文标签的映射表
IMPORTANCE_LEVEL_CHINESE_MAPPING = {
1: "低重要性",
2: "一般重要性",
3: "高重要性",
4: "关键重要性",
"LOW": "低重要性",
"NORMAL": "一般重要性",
"HIGH": "高重要性",
"CRITICAL": "关键重要性",
"unknown": "未知"
}
def get_memory_type_chinese_label(memory_type: str) -> str:
"""获取记忆类型的中文标签
Args:
memory_type: 记忆类型字符串
Returns:
str: 对应的中文标签,如果找不到则返回"未知"
"""
return MEMORY_TYPE_CHINESE_MAPPING.get(memory_type, "未知")
def get_confidence_level_chinese_label(level) -> str:
"""获取置信度等级的中文标签
Args:
level: 置信度等级(可以是数字、字符串或枚举实例)
Returns:
str: 对应的中文标签,如果找不到则返回"未知"
"""
# 处理枚举实例
if hasattr(level, 'value'):
level = level.value
# 处理数字
if isinstance(level, int):
return CONFIDENCE_LEVEL_CHINESE_MAPPING.get(level, "未知")
# 处理字符串
if isinstance(level, str):
level_upper = level.upper()
return CONFIDENCE_LEVEL_CHINESE_MAPPING.get(level_upper, "未知")
return "未知"
def get_importance_level_chinese_label(level) -> str:
"""获取重要性等级的中文标签
Args:
level: 重要性等级(可以是数字、字符串或枚举实例)
Returns:
str: 对应的中文标签,如果找不到则返回"未知"
"""
# 处理枚举实例
if hasattr(level, 'value'):
level = level.value
# 处理数字
if isinstance(level, int):
return IMPORTANCE_LEVEL_CHINESE_MAPPING.get(level, "未知")
# 处理字符串
if isinstance(level, str):
level_upper = level.upper()
return IMPORTANCE_LEVEL_CHINESE_MAPPING.get(level_upper, "未知")
return "未知"