我用每月 5 美元构建了生产级 RAG 系统(大多数替代方案成本 100‑200 美元以上)

发布: (2025年12月24日 GMT+8 21:55)
12 min read
原文: Dev.to

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,具备以下功能:

  1. 嵌入生成 – Workers AI (bge-small-en-v1.5)
  2. 向量搜索 – Cloudflare Vectorize(HNSW 索引)
  3. 结果格式化 – 在 Worker 内部完成
  4. 身份验证 – 内置

所有代码均在 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可观测性能每个响应都包含时间信息(embeddingTimesearchTimetotalTime)。
7自然语言对齐工具名称与用户表述相匹配(semantic_search)。
8防御性组合/populate 端点是幂等的——可安全重复调用。
9版本化契约通过稳定的 API 版本化进行处理。

基准

指标典型企业 MCP(Workato)我们的边缘工作者
响应时间2‑4 秒365 毫秒(快 6‑10 倍)
成功率94 %≈100 %(确定性)
所需工具122(最小化)
每任务调用次数1.81(一次性)

边缘部署 + 合适的抽象产生了差异。

劳动分工(LLM 与后端)

职责LLM(非确定性)后端(确定性)
理解用户意图
选择 semantic_searchintelligent_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‑10Cloudflare 公布的费率
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/月

关键要点

  1. Edge‑first architecture is transformative – 将所有内容部署在边缘,消除网络跳转;性能提升立竿见影且可量化。
  2. Composable tool design beats API wrappers – 提供高级技能而非底层 API,使系统更快更可靠;大语言模型专注于意图,而非编排。
  3. Serverless pricing changes everything – 没有空闲服务器费用 → 可以自由实验。周五上线,使用量激增?没问题。自动弹性伸缩。
  4. Simple HTTP beats fancy SDKs – 没有版本冲突,也没有依赖地狱。只需 curlfetch。在 Python、Node、Go 等环境均可使用。

当前限制与权衡

  1. 本地开发不便Vectorizewrangler dev 中无法使用;必须部署后才能测试搜索。
    权衡: 其他方面可以快速迭代,完整测试需要部署。

  2. 知识库更新需要重新部署 – 目前需要编辑代码并重新部署。
    未来: 动态上传 API。
    权衡: 安全性 vs. 便利性。

  3. 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

参与

相关阅读

  • 在 Cloudflare Workers 上进行 MCP 采样 – 如何在不管理大型语言模型的情况下构建智能 MCP 工具
  • 为何边缘计算迫使我写出更好的代码 – 该架构背后的经济驱动因素

灵感来源: 超越基础 MCP:为何企业 AI 需要可组合架构以及为企业 MCP 设计可组合工具

Back to Blog

相关文章

阅读更多 »