本次为一次重大性能修复。deepseek-vision provider 此前有两个由真实会话数据定位的问题:
🔧 修复内容
1. 首字 token 时间(TTFT)膨胀
- 问题:图片一旦进入会话历史(粘贴 /
read_image/ 恢复的会话),每一轮请求都会同步重新调用视觉端点转写图片。 - 实测影响:TTFT 从 ~1s 恶化到 22–69s,且每一轮都慢(不只是首轮)。
- 修复:新增转述结果缓存
transcriptionCache——按「图片内容 sha256 + 问题 sha256」键控,同一 (图片, 问题) 只转写一次,后续请求直接复用缓存文本,不再调用视觉端点。
2. 缓存命中率衰减
- 问题:转写文本非确定性(视觉端点采样随机),同一图片每轮转写结果不同 → 主模型前缀缓存从图片位置起永久断裂。
- 实测影响:缓存命中率从 99.8% 衰减到 91.1% 且随对话增长持续下降。
- 修复:视觉端点采样温度固定为
0(新配置temperature,可选seed),保证同一图片+同一问题输出完全确定,前缀缓存保持稳定。
✨ 新增
transcriptionCache:转述缓存(默认开启)file:~/.dsh/vision-transcription-cache.json(原子写入,重启不丢)maxEntries:1000 条上限,最旧优先淘汰
temperature(默认0)与seed(可选):确定性转写- 缓存键用内容 sha256:同一图片从「粘贴」和「
read_image归档副本」等不同入口进入时共享缓存
📋 配置示例
- id: vision
name: dsh-plugin-vision
config:
baseUrl: https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
apiKeyEnv: ALIBABA_CODING_PLAN_API_KEY
model: qwen3.7-plus
temperature: 0 # 新增:确定性输出(默认 0)
transcriptionCache: # 新增:转述缓存(默认开启)
enabled: true
file: ~/.dsh/vision-transcription-cache.json
maxEntries: 1000