[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-config":3,"article-cut-api-cost-to-quarter":23},{"title":4,"description":5,"logoUrl":6,"icp":6,"contactEmail":6,"footerNote":6,"heroBadge":7,"heroTitle":8,"heroSubtitle":9,"primaryCtaLabel":10,"primaryCtaLink":11,"secondaryCtaLabel":12,"secondaryCtaLink":13,"showArticles":14,"articlesTitle":15,"articlesCount":16,"showProjects":14,"projectsTitle":17,"projectsCount":18,"showPlans":14,"plansTitle":19,"plansNote":20,"ctaTitle":21,"ctaDescription":22},"KeLi API 中转站","AI 中转站主站：知识分享、项目赞助、项目分享与供货商城。","","OpenAI 兼容 · 按次计费","按次计费的 AI 接口中转","一条 Base URL 接多模型上游，额度按天重置、账单按次结算。","查看套餐价格","\u002Fstore","读接入记录","\u002Farticles",true,"最新文章",3,"在做的项目",2,"套餐与价格","按天重置额度，按月计费","付款后自动开通，额度当天生效。","需要先看用法，接入记录里有每一步请求与返回。",{"ok":14,"data":24},{"id":18,"title":25,"slug":26,"summary":27,"coverUrl":28,"authorName":29,"authorAvatarUrl":30,"publishedAt":31,"readingMinutes":32,"tags":33,"views":36,"body":37,"bodyHtml":38,"toc":39,"author":48,"related":50,"updatedAt":63},"把 API 成本压到 1\u002F4：一条跑通两个月的真实链路","cut-api-cost-to-quarter","三条改动：请求分流、缓存命中、批量合并。附每步的账单对比。","https:\u002F\u002Fpicsum.photos\u002Fseed\u002Fkeli-cost\u002F1200\u002F675","KeLi",null,"2026-10-28T01:00:00.000Z",9,[34,35],"成本优化","实战",1287,"## 先说结论\n\n同一个业务量，月账单从 ¥1,240 降到 ¥310。没有换供应商，也没降模型质量。\n\n## 三步走\n\n1. **请求分流**：把摘要、分类这类短任务切到小模型，只把长文本推理留给大模型。\n2. **缓存命中**：同一段系统提示加固定前缀，命中率从 0% 提到 62%。\n3. **批量合并**：把 20 条独立翻译合并成一次请求，省掉 19 次计费。\n\n## 关键配置\n\n```bash\n# 前缀缓存要放在最前面，且逐字稳定\nsystem_prefix = \"你是客服助手，回答不超过三句。\"\n```\n\n## 踩过的坑\n\n- 缓存前缀里有时间戳，命中率永远是 0；\n- 合并请求超过 8k token 后，模型开始漏掉后半段。","\u003Ch2 id=\"先说结论\">先说结论\u003C\u002Fh2>\n\u003Cp>同一个业务量，月账单从 ¥1,240 降到 ¥310。没有换供应商，也没降模型质量。\u003C\u002Fp>\n\u003Ch2 id=\"三步走\">三步走\u003C\u002Fh2>\n\u003Col>\n\u003Cli>\u003Cstrong>请求分流\u003C\u002Fstrong>：把摘要、分类这类短任务切到小模型，只把长文本推理留给大模型。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>缓存命中\u003C\u002Fstrong>：同一段系统提示加固定前缀，命中率从 0% 提到 62%。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>批量合并\u003C\u002Fstrong>：把 20 条独立翻译合并成一次请求，省掉 19 次计费。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"关键配置\">关键配置\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-bash\"># 前缀缓存要放在最前面，且逐字稳定\nsystem_prefix = \"你是客服助手，回答不超过三句。\"\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"踩过的坑\">踩过的坑\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>缓存前缀里有时间戳，命中率永远是 0；\u003C\u002Fli>\n\u003Cli>合并请求超过 8k token 后，模型开始漏掉后半段。\u003C\u002Fli>\n\u003C\u002Ful>\n",[40,42,44,46],{"level":18,"id":41,"text":41},"先说结论",{"level":18,"id":43,"text":43},"三步走",{"level":18,"id":45,"text":45},"关键配置",{"level":18,"id":47,"text":47},"踩过的坑",{"id":49,"nickname":29,"avatarUrl":30,"headline":30,"bio":30,"articleCount":16},1,[51,57],{"id":16,"title":52,"slug":53,"summary":54,"readingMinutes":55,"publishedAt":56},"限流不是加个计数器：我们踩过的三个坑","rate-limit-three-traps","按 IP 限流会误伤整栋楼、滑动窗口要用哨兵值、限流要能降级。",7,"2026-10-26T06:30:00.000Z",{"id":49,"title":58,"slug":59,"summary":60,"readingMinutes":61,"publishedAt":62},"中转站怎么算账：一次请求到底花了多少","how-to-bill-a-request","输入输出分开计价、缓存命中打折、失败请求不计费。三个口径写清楚。",6,"2026-10-22T03:00:00.000Z","2026-10-29T22:26:12.379Z"]