我在 Cloudflare 的邊緣部署了一個語義搜尋系統,每月成本僅為 5-10 美元,而通常需要 100-200 美元甚至更多。它速度更快,遵循企業級 MCP 可組合架構模式,並且能夠處理生產環境流量。以下是具體實作方法。
上個月,我研究了典型的人工智慧基礎設施成本,並意識到為什麼這麼多新創公司難以加入語義搜尋功能。
傳統 RAG 演算法堆疊(適用於每月約 10,000 次搜尋):
松果向量圖庫:每月 50-70 美元(標準套餐最低價格)
OpenAI 嵌入 API:每月 30-50 美元(按使用量計費)
AWS EC2 伺服器(t3.medium):每月 35-50 美元
監控/日誌記錄:每月 15-20 美元
總價:每月 130-190 美元,而這本應是基本功能。
對於一家自籌資金的新創公司來說,如果想在文件中加入「人工智慧搜尋」功能,那麼在從該功能中賺到一分錢之前,每年就要花費 1560 到 2280 美元。
必須做出改變。
我一直在 Cloudflare Workers 上建立 MCP 伺服器(我在這裡寫過相關文章),我一直在想:為什麼 RAG 不能完全在邊緣執行?
傳統設定步驟太多了:
User → App Server → OpenAI (embeddings) → Pinecone (search) → User
每次網路躍點都會增加延遲。每項服務都會增加成本。
如果我們改用這種方法呢:
User → Cloudflare Edge (embeddings + search + response) → User
所有功能都集中在一個地方。無需往返傳輸資料。沒有閒置伺服器白白浪費資金。
這是我搭建的:
向量化 MCP 工作進程- 一個處理以下任務的 Cloudflare 工作進程:
嵌入生成(Workers AI)
向量搜尋(向量化)
結果格式化(內部員工)
身份驗證(內建)
整個技術堆疊執行在 Cloudflare 在全球 300 多個城市的邊緣伺服器上。
Workers AI : bge-small-en-v1.5模型(384 維嵌入)
Vectorize :Cloudflare 的託管向量資料庫(HNSW 索引)
TypeScript :完全類型安全
HTTP API :可從任何地方使用
搜尋端點:
async function searchIndex(query: string, topK: number, env: Env) {
const startTime = Date.now();
// Generate embedding (runs on-edge)
const embeddingStart = Date.now();
const embedding = await env.AI.run("@cf/baai/bge-small-en-v1.5", {
text: query,
});
const embeddingTime = Date.now() - embeddingStart;
// Search vectors (also on-edge)
const searchStart = Date.now();
const results = await env.VECTORIZE.query(embedding, {
topK,
returnMetadata: true,
});
const searchTime = Date.now() - searchStart;
return {
query,
results: results.matches,
performance: {
embeddingTime: `${embeddingTime}ms`,
searchTime: `${searchTime}ms`,
totalTime: `${Date.now() - startTime}ms`
}
};
}
就是這樣。無需複雜的編排,無需服務網格,只需 Workers AI + Vectorize。
最近關於企業 MCP 的討論( Workato 的優秀系列)強調,大多數實作失敗的原因是暴露了原始 API 而不是可組合的技能。
許多團隊透過封裝現有 API 來建置 MCP 伺服器:
get_guest_by_email
get_booking_by_guest
create_payment_intent
charge_payment_method
send_receipt_email
總共47種工具
LLM 每個任務必須協調 6 次以上的 API 呼叫。結果:速度慢、容易出錯、使用者體驗不佳。
相反,這位員工展現了與使用者意圖相符的高水準技能:
semantic_search - 尋找相關資訊
intelligent_search - 基於人工智慧合成的搜尋
一次工具呼叫,即可獲得完整結果。後端處理所有複雜操作。
此實作遵循了 9 種建議的企業 MCP 模式中的 8 種:
1. 業務辨識碼優先於系統 ID
// Users search with natural language
{ "query": "How does edge computing work?" }
// Not with database IDs
{ "vector_id": "a0I8d000001pRmXEAU" }
2. 原子能操作
一次工具呼叫即可處理整個工作流程:
生成嵌入(Workers AI)
搜尋向量(向量化)
格式化結果
回報績效指標
無需多步驟編排。
3. 智慧預設設定
{
"query": "required",
"topK": "defaults to 5" // Reduce cognitive load
}
4. 內建授權
// Production mode requires API key
// Dev mode allows testing without auth
// Tools are automatically scoped
if (env.API_KEY && !isAuthorized(request)) {
return new Response("Unauthorized", { status: 401 });
}
5. 錯誤文件
每個錯誤都包含可操作的提示:
{
"error": "topK must be between 1 and 20",
"hint": "Adjust your topK parameter to a value between 1-20"
}
6. 可觀察的性能
每個請求都內建了計時功能:
{
"performance": {
"embeddingTime": "142ms",
"searchTime": "223ms",
"totalTime": "365ms"
}
}
7. 自然語言對齊
工具名稱與人們實際說話的方式相符:
搜尋 X → semantic_search
不是“query_vector_database_with_cosine_similarity”
8. 防禦性組成
/populate端點是冪等的-可以安全地多次呼叫。
企業級可組合設計(來自 Workato 的基準測試):
反應時間:2-4秒
成功率:94%
所需工具:12件
每個任務的呼叫次數:1.8
此實作方式:
反應時間: 365毫秒(速度提升6-10倍)
成功率: ~100% (確定性)
所需工具: 2 件(最少)
每個任務的呼叫次數: 1 (一次性)
差別在於:邊緣部署 + 適當的抽象。
遵循 Workato 的指導:
“讓LLM處理意圖,讓後端處理執行。”
LLMs職責(非確定性):
了解使用者查詢
選擇語義搜尋還是智慧搜尋
為使用者解讀結果
後端職責(確定性):
可靠地產生嵌入
原子地查詢向量
優雅地處理錯誤
確保性能穩定
管理身份驗證
這種分離創造了可靠、快速、使用者友好的 MCP 工具,而不是脆弱的 API 封裝器。
我於2024 年 12 月 23 日從尼日利亞哈科特港到 Cloudflare 的邊緣伺服器進行了測試:
| 操作 | 時間 |
|-----------|------|
| 嵌入生成 | 142毫秒 |
| 向量搜尋 | 223毫秒 |
| 回應格式 | <5毫秒 |
|總計| 365毫秒|
注意:效能會因地區和負載而異。這些是生產部署的實際測量結果。
每天搜尋量達到 10,000 次(每月 300,000 次):
我的解決方案:
工人:約 3 美元/月(以 CPU 使用時間計費)
Workers AI:每月約 3-5 美元(以每 1000 個神經元 0.011 美元計算)
向量化:約 2 美元/月(查詢維度)
總計:每月 8-10 美元
傳統替代方案(以相同容量估算):
松果標準套餐:每月 50-70 美元(最低消費 + 使用費)
Weaviate Cloud:每月 25-40 美元(取決於儲存空間)
自架 pgvector:每月 40-60 美元(伺服器 + 維護)
節省金額:依所選方案的不同,節省金額可達 85-95% 。
Cloudflare 的免費方案涵蓋以下內容:
每天 10 萬個工人請求
每天 10,000 個 AI 神經元
每月 3000 萬次 Vectorize 查詢
大多數副業專案和小型企業都不會升級到免費套餐。
// Optional API key for production
if (env.API_KEY && !isAuthorized(request)) {
return new Response("Unauthorized", { status: 401 });
}
開發模式無需身份驗證,生產環境則需要。就這麼簡單。
每個回應都包含時間資訊:
{
"query": "edge computing",
"results": [...],
"performance": {
"embeddingTime": "142ms",
"searchTime": "223ms",
"totalTime": "365ms"
}
}
無需單獨的APM工具,它已內建。
點選GET /取得完整 API 文件:
{
"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 產品。
之前:關鍵字搜尋遺漏了相關文章。
之後:人工智慧搜尋推薦完美匹配。
費用:每月 10 美元(相較之下,企業級解決方案每月費用超過 200 美元)
學術論文,包含 1000 個 PDF 檔案。
之前:使用 Ctrl+F 逐一文件尋找。
之後:對整個庫進行語義查詢。
費用:每月 8 美元
1. 邊緣優先架構具有變革性
將所有資源集中部署在網路邊緣,消除了網路躍點。性能提升立竿見影,且可衡量。
2. 可組合工具設計優於 API 封裝器
暴露高級技能而非原始 API 使系統速度更快、可靠性更高。 LLM 關注的是意圖,而非編排。
3. 無伺服器定價模式改變了一切
當您無需為閒置伺服器付費時,您可以自由地進行各種實驗。週五上線,使用量激增?沒問題。它會自動擴展。
4. 簡單的HTTP勝過花俏的SDK
沒有版本衝突,沒有依賴地獄,只需curl或fetch即可。支援 Python、Node、Go 等多種程式語言。
1. 本地開發很不方便
Vectorize 在wrangler dev中不起作用。您必須部署才能測試搜尋功能。權衡之處在於:其他所有功能迭代速度快,但需要部署才能進行完整測試。
2. 知識庫更新需要重新部署
目前,您需要編輯程式碼並重新部署。未來計畫:動態上傳 API。權衡:安全性與便利性。
3. 384 個維度可能不足以滿足特定領域的需求。
bge-small-en-v1.5模型非常適合一般文字。醫療或法律領域可能需要更大的模型。需要權衡的是:速度與精度。
方法:所有成本均以每天 10,000 次搜尋(每月 300,000 次)和儲存 10,000 個 384 維向量的情況估算。
| 解決方案 | 月費 | 備註 |
|----------|-------------|-------|
|此工人| 8-10 美元| Cloudflare 公佈的價格 |
松果標準款 | 50-70 美元 | 最低消費 50 美元 + 使用費 |
| Weaviate Serverless | 25-40 美元 | 按使用量計費 |
| 自架 + pgvector | $40-60 | 伺服器 + 維護 |
價格截至2024年12月。您的實際費用可能會因使用情況而異。
它是開源的: https://github.com/dannwaneri/vectorize-mcp-worker
5分鐘即可完成設定:
# Clone
git clone https://github.com/dannwaneri/vectorize-mcp-worker
cd vectorize-mcp-worker
npm install
# Create vector index
wrangler vectorize create mcp-knowledge-base --dimensions=384 --metric=cosine
# Deploy
wrangler deploy
# Set API key for production
openssl rand -base64 32 | wrangler secret put API_KEY
# Populate with your data
curl -X POST https://your-worker.workers.dev/populate \
-H "Authorization: Bearer YOUR_KEY"
# 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
如果你是:
創業者:別再為人工智慧基礎設施支付過高的費用了。只需每月 5 美元即可部署,將預算集中在能讓你脫穎而出的功能上。
顧問公司/代理商:現在您可以將人工智慧搜尋功能以固定價格專案的形式獲利地整合到專案中。無需持續管理基礎設施,省時省力。
企業團隊:無需獲得預算批准即可部署按部門搜尋功能,每個團隊每年費用超過 1,500 美元。
MCP 伺服器建構器:將其用作遵循企業最佳實踐的可組合工具設計的參考實作。
從經濟角度來看,這很合理。過去需要專門預算的專案,現在比你團隊每天的咖啡預算還要便宜。
何時使用:需要在保持效能的前提下降低 90% 以上的成本
何時使用它們:需要命名空間、基於角色的存取控制 (RBAC) 等企業級功能。
何時使用:需要基礎設施控制、資料主權和開源
何時使用:需要零運維託管服務和網域優化
何時使用此功能:需要在 5 分鐘內獲得可用於生產的 MCP 模式
何時使用:有特殊需求需要客製化架構
不同的工具解決不同的問題。此工作台針對以下方面進行了最佳化:
自託管基礎設施
透明、可預測的成本
企業 MCP 可組合模式
完全可自訂(開源)
我正在做:
[ ] 動態文件上傳 API(無需修改程式碼)
[ ] 長文件的語意分塊
[ ] 多模態支援(圖像、表格)
[ ] 綜合測試套件
我正在幫助幾家公司將這項技術部署到他們的實際應用中。如果您每月在人工智慧搜尋或建立 MCP 伺服器方面花費超過 100 美元,那麼我們來聊聊吧。
GitHub: @dannwaneri
Upwork:個人資料
推特: @dannwaneri
有問題?有評論?也想建構可組合的 MCP 工具?請在下方留言。
如果您覺得這個程式碼有用,請給這個倉庫點個星標:https://github.com/dannwaneri/vectorize-mcp-worker
*相關內容: Cloudflare Workers 上的 MCP 採樣- 如何在不管理 LLM 的情況下建立智慧 MCP 工具
邊緣運算為何迫使我編寫更好的程式碼—這種架構背後的經濟驅動因素*
靈感來源: 超越基礎 MCP:為什麼企業 AI 需要可組合架構以及如何為企業 MCP 設計可組合工具