添加测试、添加总结、全量、rag(todo)3种历史记录保存方式,流式实现

This commit is contained in:
2026-05-05 03:01:20 +08:00
parent 2050a30a52
commit adb59da06d
46 changed files with 4484 additions and 882 deletions

76
test_chat_summary.py Normal file
View File

@@ -0,0 +1,76 @@
"""
简化版聊天记录总结功能测试
直接操作现有数据进行测试
"""
import sys
from pathlib import Path
# 添加backend目录到Python路径
backend_root = Path(__file__).parent / "backend"
sys.path.insert(0, str(backend_root))
from services.chat_service import chat_service
def test_simple_summary():
"""简单测试:直接操作现有聊天数据"""
print("=" * 60)
print("聊天记录总结功能简单测试")
print("=" * 60)
# 列出所有现有聊天
print("\n现有聊天列表:")
all_chats = chat_service.list_all_chats()
if not all_chats:
print(" 没有找到任何聊天,请先创建角色和聊天")
return
for role_name, chats in all_chats.items():
print(f"\n 角色: {role_name}")
for chat in chats[:3]: # 只显示前3个
print(f" - {chat['chat_name']} ({chat['message_count']}条消息)")
# 选择第一个聊天进行测试
first_role = list(all_chats.keys())[0]
first_chat = all_chats[first_role][0]['chat_name']
print(f"\n选择测试: {first_role}/{first_chat}")
# 获取聊天记录
chat_data = chat_service.get_chat(first_role, first_chat)
messages = chat_data['messages']
print(f"总消息数: {len(messages)}")
if len(messages) < 5:
print("消息数量不足,无法测试总结功能")
return
# 显示前5条消息
print("\n前5条消息:")
for i, msg in enumerate(messages[:5], 1):
name = msg.get('name', 'Unknown')
mes = msg.get('mes', '')[:50]
print(f" L{i}: {name}: {mes}...")
# 测试总结功能(模拟)
print("\n模拟总结 L1-L3:")
print(" 原始消息:")
for i in range(3):
msg = messages[i]
print(f" L{i+1}: {msg.get('name')}: {msg.get('mes', '')[:30]}...")
print("\n 总结后效果:")
print(" L1: [空] (is_summarized=true)")
print(" L2: [空] (is_summarized=true)")
print(" L3: [总结文本] (is_summary=true, summary_range='L1-L3')")
print(" L4+: 保持不变")
print("\n" + "=" * 60)
print("✅ 测试完成请在UI中验证实际效果")
print("=" * 60)
if __name__ == "__main__":
test_simple_summary()