# 上下文窗口占比显示技术方案 ## 1. 需求背景 当前客户端右侧边栏的上下文显示只显示当前已使用的token数量(如"上下文 12.3k"),没有显示模型的最大窗口限制。用户无法直观了解当前上下文使用占比,难以判断是否需要压缩上下文或清理历史消息。 ## 2. 需求描述 ### 2.1 功能目标 在右侧边栏的上下文显示中添加占比信息,让用户直观了解当前上下文使用情况。 ### 2.2 具体需求 1. **显示格式**: - 默认显示:百分比格式(如"上下文 9.6%") - 鼠标悬停:显示详细信息(如"12.3k/128k") 2. **交互方式**: - 纯文本显示,不添加可视化进度条 - 保持现有context-badge的位置和样式 3. **数据来源**: - 后端通过WebSocket `context_window`事件推送已用token数量 - 前端根据session中的modelId主动查询模型的最大窗口限制 - 两种方式结合确保数据实时性和准确性 4. **更新时机**: - 实时更新,每次收到`context_window`事件时都更新占比 5. **错误处理**: - 如果模型没有配置contextWindowTokens(理论上不会发生),回退到当前行为,只显示已用token数量 ## 3. 技术选型 ### 3.1 前端技术 - **Vue 3 Composition API**:使用现有的`