| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import json
- import os
- trace_dir = '/Users/elksmmx/Desktop/agent 2.10/Agent/examples/find knowledge/.trace/7ff963bc-3106-47fc-9725-b712f3e0d7d5/messages'
- files = sorted([f for f in os.listdir(trace_dir) if f.endswith('.json')])
- print(f"总消息数: {len(files)}\n")
- all_msgs = []
- user_assistant = []
- for f in files:
- with open(os.path.join(trace_dir, f)) as fp:
- d = json.load(fp)
- seq = d['sequence']
- role = d['role']
- all_msgs.append((seq, role))
- if role in ('user', 'assistant'):
- user_assistant.append(seq)
- # 显示前60条
- print("前60条消息的role分布:")
- for seq, role in all_msgs[:60]:
- print(f"{seq:3d} {role:10s}")
- print(f"\n统计:")
- print(f"- 前60条中user/assistant消息: {len([s for s in user_assistant if s <= 60])}个")
- print(f"- 前60条中tool消息: {len([s for s, r in all_msgs[:60] if r == 'tool'])}个")
- # 计算修改前后的缓存点位置
- print(f"\n修改前(包含tool):")
- cacheable_old = [(i, seq, role) for i, (seq, role) in enumerate(all_msgs[:60]) if role in ('user', 'assistant', 'tool')]
- print(f"- 可缓存消息数: {len(cacheable_old)}")
- if len(cacheable_old) >= 20:
- print(f"- 第20条缓存点: seq={cacheable_old[19][1]}, role={cacheable_old[19][2]}")
- if len(cacheable_old) >= 40:
- print(f"- 第40条缓存点: seq={cacheable_old[39][1]}, role={cacheable_old[39][2]}")
- if len(cacheable_old) >= 60:
- print(f"- 第60条缓存点: seq={cacheable_old[59][1]}, role={cacheable_old[59][2]}")
- print(f"\n修改后(只有user/assistant):")
- cacheable_new = [(i, seq, role) for i, (seq, role) in enumerate(all_msgs[:60]) if role in ('user', 'assistant')]
- print(f"- 可缓存消息数: {len(cacheable_new)}")
- if len(cacheable_new) >= 20:
- print(f"- 第20条缓存点: seq={cacheable_new[19][1]}, role={cacheable_new[19][2]}")
- if len(cacheable_new) >= 40:
- print(f"- 第40条缓存点: seq={cacheable_new[39][1]}, role={cacheable_new[39][2]}")
- if len(cacheable_new) >= 60:
- print(f"- 第60条缓存点: seq={cacheable_new[59][1]}, role={cacheable_new[59][2]}")
|