我用每月 5 美元构建了生产级 RAG 系统(大多数替代方案成本 100‑200 美元以上)
Source: Dev.to
(请提供您希望翻译的正文内容,我将为您翻译成简体中文,并保留原始的格式、Markdown 语法以及技术术语。)
TL;DR
我在 Cloudflare 边缘部署了一个 semantic‑search system,其运行成本为 $5‑10 / month,而不是通常的 $100‑200 +。它更快,遵循企业 MCP 可组合架构模式,并能够处理生产流量。下面是实现方式。
问题:传统 RAG 成本
| 组件 | 典型成本(≈每月 1 万次搜索) |
|---|---|
| Pinecone 向量数据库(Standard 计划) | $50‑70 |
| OpenAI 嵌入 API(按使用计费) | $30‑50 |
| AWS EC2(t3.medium) | $35‑50 |
| 监控 / 日志 | $15‑20 |
| 总计 | $130‑190 / 月 |
对于一个自筹资金的初创公司来说,这意味着 $1,560‑2,280 / 年,而且在该功能产生收入之前就已经产生了这些费用。
重新思考架构
传统流程
User → App Server → OpenAI (embeddings) → Pinecone (search) → User
多次跳转 → 更高的延迟和成本。
仅 Edge 流程
User → Cloudflare Edge (embeddings + search + response) → User
所有工作都在同一地点完成——无需往返请求,也没有空闲服务器。
我构建的内容
Vectorize MCP Worker – 一个单一的 Cloudflare Worker,具备以下功能:
- 嵌入生成 – Workers AI (
bge-small-en-v1.5) - 向量搜索 – Cloudflare Vectorize(HNSW 索引)
- 结果格式化 – 在 Worker 内部完成
- 身份验证 – 内置
所有代码均在 Cloudflare 的边缘网络运行,覆盖全球 300+ 城市。
技术栈
| 项目 | 细节 |
|---|---|
| 嵌入模型 | @cf/baai/bge-small-en-v1.5(384 维) |
| 向量数据库 | Cloudflare Vectorize(托管,HNSW) |
| 语言 | TypeScript(完整类型安全) |
| API | 简单的 HTTP 接口,可从任意位置调用 |
搜索端点(TypeScript)
async function searchIndex(query: string, topK: number, env: Env) {
const startTime = Date.now();
// 1️⃣ 生成嵌入(边缘执行)
const embeddingStart = Date.now();
const embedding = await env.AI.run("@cf/baai/bge-small-en-v1.5", {
text: query,
});
const embeddingTime = Date.now() - embeddingStart;
// 2️⃣ 搜索向量(边缘执行)
const searchStart = Date.now();
const results = await env.VECTORIZE.query(embedding, {
topK,
returnMetadata: true,
});
const searchTime = Date.now() - searchStart;
// 3️⃣ 返回负载
return {
query,
results: results.matches,
performance: {
embeddingTime: `${embeddingTime}ms`,
searchTime: `${searchTime}ms`,
totalTime: `${Date.now() - startTime}ms`,
},
};
}
没有编排层,没有服务网格——仅 Workers AI + Vectorize。
为什么这对 MCP(机器中心编程)很重要
最近的企业 MCP 讨论(例如 Workato 的系列)表明,大多数实现 失败 的原因是它们暴露了原始 API,而不是 可组合的技能。
典型的 “工具繁重” 方法
get_guest_by_email
get_booking_by_guest
create_payment_intent
charge_payment_method
send_receipt_email
... 47 tools total
LLM 必须在每个任务中编排 6+ 次调用 → 体验慢且易出错。
我们的 “技能优先” 方法
| 工具 | 目的 |
|---|---|
semantic_search | 查找相关信息 |
intelligent_search | 搜索 + AI 合成 |
一次工具调用 → 完整结果。后端隐藏所有复杂性。
与企业 MCP 模式的一致性
| # | 模式 | 工作者如何满足该模式 |
|---|---|---|
| 1 | 业务标识优先于系统 ID | 用户使用自然语言查询({ "query": "How does edge computing work?" })。 |
| 2 | 原子操作 | 一次调用完成嵌入、搜索、格式化,并返回指标。 |
| 3 | 智能默认值 | topK 若未提供,默认值为 5。 |
| 4 | 内置授权 | 生产环境需要 API 密钥;开发模式允许未认证测试。 |
| 5 | 错误文档 | 错误信息包含可操作的提示(例如,topK 必须在 1 到 20 之间)。 |
| 6 | 可观测性能 | 每个响应都包含时间信息(embeddingTime、searchTime、totalTime)。 |
| 7 | 自然语言对齐 | 工具名称与用户表述相匹配(semantic_search)。 |
| 8 | 防御性组合 | /populate 端点是幂等的——可安全重复调用。 |
| 9 | 版本化契约 | 通过稳定的 API 版本化进行处理。 |
基准
| 指标 | 典型企业 MCP(Workato) | 我们的边缘工作者 |
|---|---|---|
| 响应时间 | 2‑4 秒 | 365 毫秒(快 6‑10 倍) |
| 成功率 | 94 % | ≈100 %(确定性) |
| 所需工具 | 12 | 2(最小化) |
| 每任务调用次数 | 1.8 | 1(一次性) |
边缘部署 + 合适的抽象产生了差异。
劳动分工(LLM 与后端)
| 职责 | LLM(非确定性) | 后端(确定性) |
|---|---|---|
| 理解用户意图 | ✅ | |
选择 semantic_search 与 intelligent_search | ✅ | |
| 为用户解释结果 | ✅ | |
| 生成嵌入 | ✅ | |
| 原子化查询向量 | ✅ | |
| 优雅地处理错误 | ✅ | |
| 确保一致的性能 | ✅ | |
| 管理身份验证 | ✅ |
LLM 负责意图处理;后端负责执行。
实际性能(尼日利亚港口哈科特 – 23 Dec 2024)
| 操作 | 时间 |
|---|---|
| 嵌入生成 | 142 ms |
| 向量搜索 | 223 ms |
| 响应格式化 | 已计入总计 |
| 总响应 | ≈365 ms |
| 月成本 | ~$5‑10 / month 相比传统 $130‑190 / month |
要点
通过将整个 RAG 流水线迁移到 Cloudflare 的边缘,并暴露 高层次、可组合的技能 而非原始 API,我们实现了:
- 巨大的成本降低(≈ 95 % 更便宜)
- 亚秒级延迟(≈ 365 ms)
- 确定性的单次调用工作流
- 企业级 MCP 设计
让 LLM 专注于意图,让边缘后端处理执行。
每月费用概览
| 方案 | 每月费用 | 备注 |
|---|---|---|
| 此 Worker | $8‑10 | Cloudflare 公布的费率 |
| Pinecone Standard | $50‑70 | $50 最低费用 + 使用量 |
| Weaviate Serverless | $25‑40 | 基于使用量的定价 |
| Self‑hosted + pgvector | $40‑60 | 服务器 + 维护 |
价格截至 2024 年 12 月。实际费用可能因使用模式而异。
传统替代方案(相同容量的估计)
- Pinecone Standard: $50‑70 /月(最低费用 + 使用费)
- Weaviate Cloud: $25‑40 /月(取决于存储)
- Self‑hosted pgvector: $40‑60 /月(服务器 + 维护)
节省: 85‑95 % 取决于所选替代方案。
Cloudflare 免费层(覆盖大多数副项目和小型企业)
- 100,000 Workers 请求 / 天
- 10,000 AI 神经元 / 天
- 30 M 向量化查询 / 月
大多数副项目和小型企业从不超出免费层。
身份验证(生产环境可选)
// Optional API key for production
if (env.API_KEY && !isAuthorized(request)) {
return new Response("Unauthorized", { status: 401 });
}
// Dev mode works without auth. Production requires it.
内置性能指标(无需单独的APM)
{
"query": "edge computing",
"results": [ /* … */ ],
"performance": {
"embeddingTime": "142ms",
"searchTime": "223ms",
"totalTime": "365ms"
}
}
API 文档 (GET /)
{
"name": "Vectorize MCP Worker",
"endpoints": {
"POST /search": "Search the index",
"POST /populate": "Add documents",
"GET /stats": "Index statistics"
}
}
预先为 Web 应用配置 – 开箱即用。
真实案例
| 场景 | 之前 | 之后 | 成本 |
|---|---|---|---|
| 50人创业公司(文档在 Notion、Google Docs、Confluence) | 手动搜索;员工每天浪费约30分钟 | 语义搜索在几秒钟内找到正确文档 | $5/月(对比 Algolia DocSearch 的 $70) |
| 拥有500篇支持文章的SaaS | 关键词搜索错过相关文章 | AI驱动搜索提供完美匹配 | $10/月(对比企业解决方案的 $200+) |
| 拥有1000份PDF的学术机构 | 在单个文件中使用 Ctrl + F | 语义查询整个库 | $8/月 |
关键要点
- Edge‑first architecture is transformative – 将所有内容部署在边缘,消除网络跳转;性能提升立竿见影且可量化。
- Composable tool design beats API wrappers – 提供高级技能而非底层 API,使系统更快更可靠;大语言模型专注于意图,而非编排。
- Serverless pricing changes everything – 没有空闲服务器费用 → 可以自由实验。周五上线,使用量激增?没问题。自动弹性伸缩。
- Simple HTTP beats fancy SDKs – 没有版本冲突,也没有依赖地狱。只需
curl或fetch。在 Python、Node、Go 等环境均可使用。
当前限制与权衡
-
本地开发不便 –
Vectorize在wrangler dev中无法使用;必须部署后才能测试搜索。
权衡: 其他方面可以快速迭代,完整测试需要部署。 -
知识库更新需要重新部署 – 目前需要编辑代码并重新部署。
未来: 动态上传 API。
权衡: 安全性 vs. 便利性。 -
384 维度可能不足以应对特定领域 –
bge‑small‑en‑v1.5对通用文本表现良好,但医学或法律等专业领域可能需要更大的模型。
权衡: 速度 vs. 精度。
方法论: 所有成本均基于 每日 10 000 次搜索(≈每月 30 万次),以及 10 000 个存储向量,每个向量 384 维 进行估算。
快速 5 分钟 设置
# 1️⃣ Clone the repo
git clone https://github.com/dannwaneri/vectorize-mcp-worker
cd vectorize-mcp-worker
npm install
# 2️⃣ Create a vector index
wrangler vectorize create mcp-knowledge-base --dimensions=384 --metric=cosine
# 3️⃣ Deploy
wrangler deploy
# 4️⃣ Set API key for production
openssl rand -base64 32 | wrangler secret put API_KEY
# 5️⃣ Populate with your data
curl -X POST https://your-worker.workers.dev/populate \
-H "Authorization: Bearer YOUR_KEY"
# 6️⃣ Search
curl -X POST https://your-worker.workers.dev/search \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"your question","topK":3}'
实时演示: https://vectorize-mcp-worker.fpl-test.workers.dev
开源仓库: https://github.com/dannwaneri/vectorize-mcp-worker
谁应该使用?
- Startup founders: 停止为 AI 基础设施支付过高费用。每月 $5 部署,预算用于差异化功能。
- Consultants / Agencies: 在固定价格项目中有利可图地加入 AI 搜索——无需持续的基础设施烦恼。
- Enterprise teams: 在不需要 $1 500+/年预算项的情况下,为各部门部署搜索。
- MCP Server Builders: 将其用作遵循企业最佳实践的可组合工具设计的参考实现。
经济性是有道理的。过去需要专门预算的,现在比你团队每天的咖啡预算还便宜。
路线图(未解决问题)
- 动态文档上传 API(无需代码更改)
- 长文档的语义分块
- 多模态支持(图像、表格)
- 完整的测试套件
我也在帮助几家公司部署此方案以满足他们的使用场景。如果您在 AI 搜索上每月花费 $100+/month 或构建 MCP 服务器,欢迎联系。
GitHub: @dannwaneri
Upwork: profile link
Twitter: @dannwaneri
参与
- 有问题/评论吗? 请在下方留言。
- 觉得有用吗? ⭐️ 给仓库加星: https://github.com/dannwaneri/vectorize-mcp-worker
相关阅读
- 在 Cloudflare Workers 上进行 MCP 采样 – 如何在不管理大型语言模型的情况下构建智能 MCP 工具
- 为何边缘计算迫使我写出更好的代码 – 该架构背后的经济驱动因素
灵感来源: 超越基础 MCP:为何企业 AI 需要可组合架构以及为企业 MCP 设计可组合工具