Skip to content

v0.1.1 — 大修:修复 TTFT 膨胀与缓存命中率衰减

Latest

Choose a tag to compare

@Tianbaidi Tianbaidi released this 15 Aug 18:29

本次为一次重大性能修复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