analyze_messages.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import json
  2. import os
  3. trace_dir = '/Users/elksmmx/Desktop/agent 2.10/Agent/examples/find knowledge/.trace/7ff963bc-3106-47fc-9725-b712f3e0d7d5/messages'
  4. files = sorted([f for f in os.listdir(trace_dir) if f.endswith('.json')])
  5. print(f"总消息数: {len(files)}\n")
  6. all_msgs = []
  7. user_assistant = []
  8. for f in files:
  9. with open(os.path.join(trace_dir, f)) as fp:
  10. d = json.load(fp)
  11. seq = d['sequence']
  12. role = d['role']
  13. all_msgs.append((seq, role))
  14. if role in ('user', 'assistant'):
  15. user_assistant.append(seq)
  16. # 显示前60条
  17. print("前60条消息的role分布:")
  18. for seq, role in all_msgs[:60]:
  19. print(f"{seq:3d} {role:10s}")
  20. print(f"\n统计:")
  21. print(f"- 前60条中user/assistant消息: {len([s for s in user_assistant if s <= 60])}个")
  22. print(f"- 前60条中tool消息: {len([s for s, r in all_msgs[:60] if r == 'tool'])}个")
  23. # 计算修改前后的缓存点位置
  24. print(f"\n修改前(包含tool):")
  25. cacheable_old = [(i, seq, role) for i, (seq, role) in enumerate(all_msgs[:60]) if role in ('user', 'assistant', 'tool')]
  26. print(f"- 可缓存消息数: {len(cacheable_old)}")
  27. if len(cacheable_old) >= 20:
  28. print(f"- 第20条缓存点: seq={cacheable_old[19][1]}, role={cacheable_old[19][2]}")
  29. if len(cacheable_old) >= 40:
  30. print(f"- 第40条缓存点: seq={cacheable_old[39][1]}, role={cacheable_old[39][2]}")
  31. if len(cacheable_old) >= 60:
  32. print(f"- 第60条缓存点: seq={cacheable_old[59][1]}, role={cacheable_old[59][2]}")
  33. print(f"\n修改后(只有user/assistant):")
  34. cacheable_new = [(i, seq, role) for i, (seq, role) in enumerate(all_msgs[:60]) if role in ('user', 'assistant')]
  35. print(f"- 可缓存消息数: {len(cacheable_new)}")
  36. if len(cacheable_new) >= 20:
  37. print(f"- 第20条缓存点: seq={cacheable_new[19][1]}, role={cacheable_new[19][2]}")
  38. if len(cacheable_new) >= 40:
  39. print(f"- 第40条缓存点: seq={cacheable_new[39][1]}, role={cacheable_new[39][2]}")
  40. if len(cacheable_new) >= 60:
  41. print(f"- 第60条缓存点: seq={cacheable_new[59][1]}, role={cacheable_new[59][2]}")