我构建了一个 Serverless OpenAI Gateway,以降低 30% 成本并清理 PII(开源)

发布: (2026年1月31日 GMT+8 09:14)
3 分钟阅读
原文: Dev.to

Source: Dev.to

如果你在构建 LLM 包装器或内部工具,可能已经注意到两件事在蚕食你的利润(以及你的睡眠):

  • 冗余的 API 成本 – 用户会重复提问相同的问题,导致你一次又一次为相同的 token 向 OpenAI 付费。
  • 合规焦虑 – 用户可能会把客户的姓名、邮箱或税号粘贴到你的聊天机器人中,而这些信息随后会被发送到第三方服务器(OpenAI、DeepSeek 等)。

大多数现有方案要么是笨重的企业网关(Java/Docker),要么是昂贵的 SaaS 产品。我决定打造一个轻量级、无服务器的替代方案,完全在 Cloudflare Workers 的 Edge 上运行。

解决方案概览

Sanitiza.AI 是一个开源网关,缓存请求 并在离开你的网络前 清除 PII。目标是零 DevOps:不需要 Docker 容器,不需要 Redis 实例——仅仅是纯粹的无服务器函数。

运行时与技术栈

组件选择
运行时Cloudflare Workers(TypeScript)
框架Hono(轻量级 Web 框架,类似 Express)
存储Cloudflare KV(用于缓存的键值存储)
哈希原生 Web Crypto API(SHA‑256)

智能缓存(用于 RAG 应用)

在检索增强生成(RAG)工作负载中,冗余请求非常常见。网关会对请求体(prompt + system 指令)生成 SHA‑256 哈希,并将其用作缓存键。

// Generate a unique fingerprint for the request
async function generateHash(message: string): Promise {
  const msgBuffer = new TextEncoder().encode(message);
  const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
  const hashArray = Array.from(new Uint8Array(hashBuffer));
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}

缓存流程

结果操作成本
命中立即返回已存储的 JSON( 实时计算器:请查看仓库中的演示。)

Edge 上的性能

指标数值
冷启动~0 ms(几乎瞬时)
缓存响应时间

它兼容 OpenAI、DeepSeek、Groq 以及其他任何兼容的 API。

贡献

我正在寻找贡献者来实现 语义缓存(使用 Cloudflare Vectorize),以捕获相似但不完全相同的提示。如果你有 Rust/WASM 或向量数据库的经验,欢迎交流!

如果你觉得这个项目有用,请给仓库点个 ⭐——这对我们帮助很大!

Back to Blog

相关文章

阅读更多 »