提示词缓存

Aider 支持将提示词(prompt)缓存到本地磁盘。当启用缓存时,Aider 会为每个发送给大型语言模型(LLM)的提示词生成一个哈希值。如果该提示词之前已经被处理过,Aider 会直接使用缓存的响应结果,而不会再次调用 LLM 服务。

启用缓存

要启用提示词缓存功能,请运行以下命令:

aider --cache

或者,您也可以设置环境变量:

export AIDER_CACHE=1
aider

缓存目录

默认情况下,缓存文件存储在 ~/.aider.cache 目录中。您可以通过以下方式自定义缓存位置:

aider --cache-dir /path/to/cache

或使用环境变量:

export AIDER_CACHE_DIR=/path/to/cache
aider

工作原理

  • 每个提示词会根据其内容生成唯一的哈希值
  • 缓存文件以 hash.json 的形式存储
  • 每个缓存文件包含完整的 LLM 响应数据
  • 当遇到相同提示词时,Aider 会直接使用缓存结果

使用场景

提示词缓存特别适用于以下情况:

  1. 开发过程中重复运行相似命令:当您反复测试和调整代码时,许多编辑请求可能是相同或相似的。
  2. 自动化测试:运行测试套件时可以节省成本。
  3. 教学演示:在演示时避免重复调用 LLM 服务。

注意事项

  • 缓存是基于提示词内容的精确匹配,即使细微变化也会被视为新提示词
  • 清除缓存目录将强制所有提示词重新发送到 LLM
  • 缓存不会过期,除非手动删除
  • 不同版本的 Aider 可能使用不同的缓存格式

禁用缓存

要临时禁用缓存功能,可以运行:

aider --no-cache

或取消环境变量设置:

unset AIDER_CACHE
aider

提示词缓存功能为频繁使用 Aider 的用户提供了显著的效率和成本优势,特别是在迭代开发过程中。

提示缓存

Aider 支持提示缓存功能以节省成本并加速编码过程。 目前 Anthropic 为 Sonnet 和 Haiku 模型提供缓存支持, 而 DeepSeek 则为 Chat 模型提供缓存功能。

Aider 会组织聊天历史记录以实现缓存,包括:

  • 系统提示词
  • 通过 --read/read-only 添加的只读文件
  • 仓库结构图
  • 已添加到聊天中的可编辑文件

提示缓存

使用方法

运行 aider 时添加 --cache-prompts 参数,或将该设置添加到您的配置文件中。

由于服务提供商 API 的限制,当启用流式响应时无法获取缓存统计和成本信息。 如需关闭流式响应,请使用 --no-stream 参数。

启用缓存后,aider 启动时会为主模型显示缓存状态:

主模型:claude-3-5-sonnet-20240620 支持差异编辑格式、提示缓存、无限输出

防止缓存过期

Aider 可以通过定期 ping 服务提供商来保持提示缓存活跃,防止其过期。 默认情况下,Anthropic 会保留您的缓存 5 分钟。 使用 --cache-keepalive-pings N 参数让 aider 每隔 5 分钟 ping 一次以维持缓存活跃。 在您发送每条消息后,aider 会在 N*5 分钟内最多执行 N 次 ping 操作。


目录