test_lite_setup.py•4.64 kB
#!/usr/bin/env python3
"""
MemOS 轻量版功能测试脚本
测试核心记忆管理功能,不依赖LLM
"""
import os
import sys
import tempfile
import shutil
from pathlib import Path
# 添加src路径
sys.path.insert(0, str(Path(__file__).parent / "src"))
def test_basic_imports():
"""测试基础模块导入"""
print("🧪 测试基础模块导入...")
try:
# 测试核心模块
from memos.mem_cube.general import GeneralMemCube
from memos.memories.textual import TextualMemory
from memos.memories.activation import ActivationMemory
from memos.memories.parametric import ParametricMemory
print("✅ 核心模块导入成功")
return True
except ImportError as e:
print(f"❌ 模块导入失败: {e}")
return False
def test_memory_cube():
"""测试MemCube基础功能"""
print("🧪 测试MemCube基础功能...")
try:
from memos.mem_cube.general import GeneralMemCube
from memos.memories.textual import TextualMemory
# 创建临时目录
with tempfile.TemporaryDirectory() as temp_dir:
# 创建MemCube
mem_cube = GeneralMemCube()
# 添加文本记忆
text_memory = TextualMemory()
text_memory.add("这是一条测试记忆")
text_memory.add("这是另一条测试记忆")
mem_cube.text_mem = text_memory
# 保存MemCube
save_path = Path(temp_dir) / "test_cube"
mem_cube.dump(str(save_path))
# 加载MemCube
loaded_cube = GeneralMemCube.init_from_dir(str(save_path))
# 验证记忆
memories = loaded_cube.text_mem.get_all()
assert len(memories) == 2
print("✅ MemCube基础功能测试通过")
return True
except Exception as e:
print(f"❌ MemCube测试失败: {e}")
return False
def test_textual_memory():
"""测试文本记忆功能"""
print("🧪 测试文本记忆功能...")
try:
from memos.memories.textual import TextualMemory
# 创建文本记忆
text_mem = TextualMemory()
# 添加记忆
text_mem.add("Python是一种编程语言")
text_mem.add("MemOS是一个记忆操作系统")
text_mem.add("AI需要记忆来提供更好的服务")
# 获取所有记忆
all_memories = text_mem.get_all()
assert len(all_memories) == 3
# 搜索记忆(基础搜索,不依赖向量化)
search_results = text_mem.search("Python", top_k=1)
assert len(search_results) >= 0 # 基础搜索可能返回空结果
print("✅ 文本记忆功能测试通过")
return True
except Exception as e:
print(f"❌ 文本记忆测试失败: {e}")
return False
def test_activation_memory():
"""测试激活记忆功能"""
print("🧪 测试激活记忆功能...")
try:
from memos.memories.activation import ActivationMemory
# 创建激活记忆
act_mem = ActivationMemory()
# 添加键值对记忆
act_mem.add("user_preference", "喜欢简洁的界面")
act_mem.add("last_action", "查看记忆列表")
# 获取记忆
all_memories = act_mem.get_all()
assert len(all_memories) == 2
# 根据键获取值
preference = act_mem.get("user_preference")
assert preference is not None
print("✅ 激活记忆功能测试通过")
return True
except Exception as e:
print(f"❌ 激活记忆测试失败: {e}")
return False
def main():
"""主测试函数"""
print("🚀 开始MemOS轻量版功能测试")
print("=" * 50)
tests = [
test_basic_imports,
test_memory_cube,
test_textual_memory,
test_activation_memory,
]
passed = 0
total = len(tests)
for test in tests:
if test():
passed += 1
print()
print("=" * 50)
print(f"📊 测试结果: {passed}/{total} 通过")
if passed == total:
print("🎉 所有测试通过!MemOS轻量版安装成功")
return True
else:
print("❌ 部分测试失败,请检查安装")
return False
if __name__ == "__main__":
success = main()
sys.exit(0 if success else 1)