用 CloudBase 云函数代理 Tavily AI 搜索
一句话定义:用
@tavily/core在 CloudBase 云函数里调 Tavily Search API,拿到带answer/results[]/score的 LLM-friendly 搜索结果,前端通过 HTTP 调用,Tavily key 留在云端不暴露。预计耗时:25 分钟 | 难度:进阶
适用场景
- 适用:给 LLM agent 加实时联网检索能力,结果直接喂给模型做 search-augmented generation
- 适用:不想让前端 / 小程序直接持有 Tavily API key,需要一层后端代理
- 适用:跟 add-rag-with-pgvector-cloudbase 互补——RAG 答私域,Tavily 答外部公开网页
- 不适用:纯私域知识检索(用 RAG + 向量库更合适,Tavily 不会爬你的内网)
- 不适用:用户问 LLM 自身参数化记忆里就有的内容(比如经典算法解释),多此一举
环境要求
| 依赖 | 版本 |
|---|---|
@tavily/core | latest(npm view @tavily/core version 查最新版) |
| Node.js(云函数运行时) | ≥ 18 |
@cloudbase/cli | latest |
| 云函数类型 | Web 云函数(HTTP 触发) —— 前端要直接 fetch |
| 公网出口 | 云函数默认能访问公网;配过 VPC 的环境需要确认 NAT 已挂 |
需要准备:
- 一个 Tavily API key(tavily.com 注册后免费额度可以跑通,超过免费额度按调用计费,单价以官方 pricing 页面 为准)
- 一个用于校验前端调用方的 token(最简单就是 32 字节的随机串,下文叫
PROXY_ACCESS_TOKEN)
关于包名:Tavily 的官方 JS SDK npm 包名叫
@tavily/core,而不是 GitHub 仓库名tavily-js,装错包是首踩坑。