判断是否需要压缩 — 源码 compact.rs:32-35 两个条件必须同时满足: 1. 消息数量 > preserve_recent_messages(有东西可以压缩) 2. 估算 token >= max_estimated_tokens(确实超了)
(
messages: List[ConversationMessage],
config: CompactionConfig,
)
| 461 | |
| 462 | |
| 463 | def should_compact( |
| 464 | messages: List[ConversationMessage], |
| 465 | config: CompactionConfig, |
| 466 | ) -> bool: |
| 467 | """判断是否需要压缩 — 源码 compact.rs:32-35 |
| 468 | |
| 469 | 两个条件必须同时满足: |
| 470 | 1. 消息数量 > preserve_recent_messages(有东西可以压缩) |
| 471 | 2. 估算 token >= max_estimated_tokens(确实超了) |
| 472 | """ |
| 473 | return ( |
| 474 | len(messages) > config.preserve_recent_messages |
| 475 | and estimate_session_tokens(messages) >= config.max_estimated_tokens |
| 476 | ) |
| 477 | |
| 478 | |
| 479 | def summarize_messages(messages: List[ConversationMessage]) -> str: |
no test coverage detected