🇬🇧 English · 🇰🇷 한국어 · 🇯🇵 日本語
为 AI 生成内容设计的自增长缓存池 — 在节省成本与保持响应多样性之间取得平衡。
NSKit 的成本效率基础技术 — 有结构,才有无限组合。承担 NSKit 生产服务的 AI 内容缓存层,在保留响应多样性的前提下,把 AI API 成本降低约 97%。
传统缓存为每个 key 存一个响应。这对确定性数据很适合,但 AI 响应 天然是非确定性的 — 同一个问题问两次应该得到不同的答案。
只缓存一个 AI 响应能省钱,但会扼杀多样性。完全不缓存能保住多样性,但会烧光 API 预算。
Growing Pool Cache 解决这个矛盾: 每个缓存 key 会根据需求 自然成长出一个响应池。
- 缓存未命中 — 调用 AI,把响应 A 存进池中(
hit_count=0) - 缓存命中 — 返回 A,命中次数 +1
- A 命中达到 N 次 — 照常返回响应,同时异步触发
onGrowth回调 → 调用方在后台生成新内容 - 新响应 B 存入 — 池大小变 2,
is_growing=false - 后续请求 — 从池中随机选 A 或 B
- B 命中达到 N 次 — 生成 C... 池继续成长,但由于随机分布让命中分散到更多条目,自然减速
以 poolTarget=3 为例:
| 池大小 | 触发成长的平均命中数 | 有效间隔 |
|---|---|---|
| 1 | 3 次请求 | 每 3 次 |
| 2 | 6 次请求 | 每 6 次 |
| 3 | 9 次请求 | 每 9 次 |
| 5 | 15 次请求 | 每 15 次 |
| 10 | 30 次请求 | 每 30 次 |
池自我调节: 高流量的 key 获得更多多样性,低流量的 key 保持小巧。
成长曲线遵循 O(√n) — 前期增长快,随后逐渐减速,无需配置。
到 1,000 次请求时,Growing Pool Cache 仅用 约 30 次 AI 调用(无缓存则需 1,000 次)。降低 97% 成本,同时保持响应多样。
npm install growing-pool-cacheconst { GrowingPoolCache } = require('growing-pool-cache');
const cache = new GrowingPoolCache({
poolTarget: 3, // 决定命中数 N
onGrowth: async (key) => {
// 调用方代码,向 AI 请求新响应
return await generateWithAI(key);
}
});
// 获取 — 如池中无值,则触发 onGrowth
const response = await cache.get('fortune:love');被用于 NewMyoung「每日运势」、Haru 推荐等「同一 key 需要多样 AI 响应」的场景。即便每月数万次请求,也能把 AI API 成本控制在预算内。
完整 API、选项、用法示例、基准测试、生产案例请查看英文版: README (English)
growing-pool-cache · Part of the NSKit ecosystem
© 2026 Neoulsoft Inc.