关注「索引目录」公众号,获取更多干货。
问题:人工智能搜索成本高昂
上个月,我研究了典型的人工智能基础设施成本,并意识到为什么这么多初创公司难以添加语义搜索功能。
传统 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架构实践
最近企业 MCP 的讨论(Workato 的优秀系列)强调,大多数实现失败的原因是暴露了原始 API 而不是可组合的技能。
简单MCP实现的问题
许多团队通过封装现有 API 来构建 MCP 服务器:
get_guest_by_emailget_booking_by_guestcreate_payment_intentcharge_payment_methodsend_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处理意图,让后端处理执行。”
法学硕士职责(非确定性):
-
了解用户查询 -
选择语义搜索还是智能搜索 -
为用户解读结果
后端职责(确定性):
-
可靠地生成嵌入 -
原子地查询向量 -
优雅地处理错误 -
确保性能稳定 -
管理身份验证
这种分离创造了可靠、快速、用户友好的 MCP 工具,而不是脆弱的 API 封装器。
结果:更好更便宜
性能(实际生产数据)
我于2024 年 12 月 23 日从尼日利亚哈科特港到 Cloudflare 的边缘服务器进行了测试:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
注:性能会因地区和负载而异。这些是生产部署的实际测量结果。
成本分析(实际使用情况)
每天搜索量达到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 查询
大多数副业项目和小企业都不会升级到免费套餐。
产品特性(因为这不仅仅是一个演示版)
1. 身份验证
// Optional API key for production
if (env.API_KEY && !isAuthorized(request)) {
return new Response("Unauthorized", { status: 401 });
}
开发模式无需身份验证,生产环境则需要。就这么简单。
2. 性能监控
每个回复都包含时间信息:
{
"query": "edge computing",
"results": [...],
"performance": {
"embeddingTime": "142ms",
"searchTime": "223ms",
"totalTime": "365ms"
}
}
无需单独的APM工具,它已内置。
3. 自文档化 API
点击GET /查看完整 API 文档:
{
"name": "Vectorize MCP Worker",
"endpoints": {
"POST /search": "Search the index",
"POST /populate": "Add documents",
"GET /stats": "Index statistics"
}
}
4. CORS 支持
已预先配置好,适用于 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 维向量进行估算。
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
价格截至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 服务器构建器:将其用作遵循企业最佳实践的可组合工具设计的参考实现。
从经济角度来看,这很合理。过去需要专门预算的项目,现在比你团队每天的咖啡预算还要便宜。
接下来会发生什么?
我正在做:
-
[ ] 动态文档上传 API(无需修改代码) -
[ ] 长文档的语义分块 -
[ ] 多模态支持(图像、表格) -
[ ] 综合测试套件
关注「索引目录」公众号,获取更多干货。

