84 lines
3.8 KiB
Python
84 lines
3.8 KiB
Python
"""
|
|
测试工作记忆链机制
|
|
"""
|
|
import sys
|
|
sys.path.insert(0, 'e:/program/graph_enable_ability')
|
|
|
|
from graph_memory_tui.core.optimized_operations import OPTIMIZED_SYSTEM_PROMPT
|
|
|
|
def test_working_memory_chain():
|
|
"""测试工作记忆链机制是否正确添加"""
|
|
|
|
print("=" * 60)
|
|
print("工作记忆链机制测试")
|
|
print("=" * 60)
|
|
|
|
# 测试1: 检查核心概念
|
|
assert "工作记忆链机制" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到工作记忆链机制"
|
|
print("[OK] 测试1通过: 工作记忆链机制已添加")
|
|
|
|
# 测试2: 检查节点类型
|
|
assert "TaskNode" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到TaskNode"
|
|
assert "StateNode" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到StateNode"
|
|
assert "普通记忆节点" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到普通记忆节点"
|
|
assert "InfoNode" not in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] InfoNode应该被移除"
|
|
print("[OK] 测试2通过: 所有节点类型已正确定义(使用普通记忆节点)")
|
|
|
|
# 测试3: 检查边类型
|
|
assert "NEXT_TASK" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到NEXT_TASK"
|
|
assert "HAS_STATE" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到HAS_STATE"
|
|
assert "CONTAINS_INFO" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到CONTAINS_INFO"
|
|
assert "SUB_TASK" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到SUB_TASK"
|
|
print("[OK] 测试3通过: 所有边类型已定义")
|
|
|
|
# 测试4: 检查强制执行规则
|
|
assert "强制执行规则" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到强制执行规则"
|
|
assert "每轮对话开始时" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到每轮对话开始时"
|
|
assert "每轮对话结束时" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到每轮对话结束时"
|
|
print("[OK] 测试4通过: 强制执行规则已定义")
|
|
|
|
# 测试5: 检查连续性任务处理
|
|
assert "连续性任务处理" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到连续性任务处理"
|
|
assert "成语接龙" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到成语接龙示例"
|
|
print("[OK] 测试5通过: 连续性任务处理已定义")
|
|
|
|
# 测试6: 检查任务状态转换
|
|
assert "State_进行中" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到State_进行中"
|
|
assert "State_已完成" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到State_已完成"
|
|
assert "State_已暂停" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到State_已暂停"
|
|
print("[OK] 测试6通过: 任务状态转换已定义")
|
|
|
|
# 测试7: 检查核心职责更新
|
|
assert "维护工作记忆链" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到维护工作记忆链"
|
|
print("[OK] 测试7通过: 核心职责已更新")
|
|
|
|
# 测试8: 检查示例说明
|
|
assert "第一轮:用户发起游戏" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到第一轮示例"
|
|
assert "第二轮:话题被打断" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到第二轮示例"
|
|
assert "第三轮:用户要求继续游戏" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到第三轮示例"
|
|
print("[OK] 测试8通过: 完整示例已添加")
|
|
|
|
print("=" * 60)
|
|
print("所有测试通过! 工作记忆链机制已成功添加到提示词中")
|
|
print("=" * 60)
|
|
|
|
# 统计信息
|
|
total_length = len(OPTIMIZED_SYSTEM_PROMPT)
|
|
working_memory_length = len("工作记忆链机制")
|
|
|
|
print(f"\n提示词总长度: {total_length} 字符")
|
|
print(f"工作记忆链机制部分约占: {working_memory_length / total_length * 100:.2f}%")
|
|
|
|
return True
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
test_working_memory_chain()
|
|
print("\n[SUCCESS] 测试成功!")
|
|
except AssertionError as e:
|
|
print(f"\n[ERROR] 测试失败: {e}")
|
|
sys.exit(1)
|
|
except Exception as e:
|
|
print(f"\n[ERROR] 发生错误: {e}")
|
|
sys.exit(1)
|