MaiBot/test_del_memory.py

74 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
测试del_memory函数的脚本
"""
import sys
import os
# 添加src目录到Python路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src'))
from person_info.person_info import Person
def test_del_memory():
"""测试del_memory函数"""
print("开始测试del_memory函数...")
# 创建一个测试用的Person实例不连接数据库
person = Person.__new__(Person)
person.person_id = "test_person"
person.memory_points = [
"性格:这个人很友善:5.0",
"性格:这个人很友善:4.0",
"爱好:喜欢打游戏:3.0",
"爱好:喜欢打游戏:2.0",
"工作:是一名程序员:1.0",
"性格:这个人很友善:6.0"
]
print(f"原始记忆点数量: {len(person.memory_points)}")
print("原始记忆点:")
for i, memory in enumerate(person.memory_points):
print(f" {i+1}. {memory}")
# 测试删除"性格"分类中"这个人很友善"的记忆
print("\n测试1: 删除'性格'分类中'这个人很友善'的记忆")
deleted_count = person.del_memory("性格", "这个人很友善")
print(f"删除了 {deleted_count} 个记忆点")
print("删除后的记忆点:")
for i, memory in enumerate(person.memory_points):
print(f" {i+1}. {memory}")
# 测试删除"爱好"分类中"喜欢打游戏"的记忆
print("\n测试2: 删除'爱好'分类中'喜欢打游戏'的记忆")
deleted_count = person.del_memory("爱好", "喜欢打游戏")
print(f"删除了 {deleted_count} 个记忆点")
print("删除后的记忆点:")
for i, memory in enumerate(person.memory_points):
print(f" {i+1}. {memory}")
# 测试相似度匹配
print("\n测试3: 测试相似度匹配")
person.memory_points = [
"性格:这个人非常友善:5.0",
"性格:这个人很友善:4.0",
"性格:这个人友善:3.0"
]
print("原始记忆点:")
for i, memory in enumerate(person.memory_points):
print(f" {i+1}. {memory}")
# 删除"这个人很友善"(应该匹配"这个人很友善"和"这个人友善"
deleted_count = person.del_memory("性格", "这个人很友善", similarity_threshold=0.8)
print(f"删除了 {deleted_count} 个记忆点")
print("删除后的记忆点:")
for i, memory in enumerate(person.memory_points):
print(f" {i+1}. {memory}")
print("\n测试完成!")
if __name__ == "__main__":
test_del_memory()