提示词缓存
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 会直接使用缓存结果
使用场景
提示词缓存特别适用于以下情况:
- 开发过程中重复运行相似命令:当您反复测试和调整代码时,许多编辑请求可能是相同或相似的。
- 自动化测试:运行测试套件时可以节省成本。
- 教学演示:在演示时避免重复调用 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 操作。