项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 1287
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Node.js 运行环境(需能执行 npm / npx 命令)
- 至少一个搜索服务的 API Key,如 SEARCH1API_KEY、TAVILY_KEY
- 若走 MCP 方式,需要 Claude Desktop / Cursor / Claude Code 等支持 MCP 的客户端
安装与启动步骤
-
1安装 search2ai 库
以库方式接入,零部署成本。在项目目录执行安装,之后可从 search2ai/core 导入。
npm i search2ai -
2配置搜索服务密钥
自带 key(BYO key)。只配置你要用的 provider,用环境变量传入密钥。
export SEARCH1API_KEY=your_key export TAVILY_KEY=your_key -
3编写搜索调用代码
用 createGateway 初始化网关,调用 search 获取结果,返回体含 provider 与 warnings。
import { createGateway } from 'search2ai/core'; const gateway = createGateway({ providers: { search1api: { apiKey: process.env.SEARCH1API_KEY! }, tavily: { apiKey: process.env.TAVILY_KEY! }, }, }); const { provider, results, warnings } = await gateway.search({ query: 'hono cloudflare workers', max_results: 5 }); -
4本地启动 MCP 服务
MCP 方式同样零部署,通过 npx 直接拉起,对外提供 search、news、crawl 三个工具。
npx -y search2ai mcp -
5接入 MCP 客户端
把配置写入 Claude Desktop / Cursor / Claude Code 的 MCP 配置,密钥放在 env 里。
{ "mcpServers": { "search2ai": { "command": "npx", "args": ["-y", "search2ai", "mcp"], "env": { "SEARCH1API_KEY": "your_key" } } } } -
6查看完整配置模板
项目根目录的 .env.template 列出了所有可用环境变量,按需补充 provider 与缓存等配置。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
SEARCH1API_KEY | 否 | Search1API 密钥,默认排在 fallback 链第一位;可换成其他 provider 的 key | your_key |
SEARCH_SERVICE | 否 | 逗号分隔的 provider 顺序,决定 fallback 链;NEWS_SERVICE / CRAWL_SERVICE 可单独覆盖 | search1api,tavily,serper |
MAX_RESULTS | 否 | 搜索结果默认返回条数;同类还有 CRAWL_RESULTS 控制抓取正文条数 | 5 |
FALLBACK_ON_EMPTY | 否 | 设为 true 时空结果也切下一家,默认只在报错、限流、超时时切换 | true |
PROVIDER_TIMEOUT_MS | 否 | 单个 provider 的超时时间,默认 15000 毫秒 | 15000 |
AUTH_KEYS | 否 | 逗号分隔的 Bearer key,配置后 /v1/* 与 /mcp 都需鉴权 | sk-xxxxxxxx |
如何确认成功
调用 gateway.search 能返回 provider 与 results 即接入成功;MCP 方式则在客户端工具列表看到 search、news、crawl。
常见问题
Q:某家搜索服务限流或报错了怎么办?
A:无需改代码,网关会按 fallback 链自动切到下一家,响应里通过 provider 告诉你这次是谁答的,warnings 记录跳过了谁及原因。
Q:必须自己申请 API Key 吗?
A:是的,项目为自带 key(BYO key)模式,不做免 key 爬虫,至少要配置一个 provider 的密钥才能真正搜到结果。
Q:不想自己部署托管服务怎么办?
A:可直接用配套的 Search1API 托管搜索服务,一个 key 聚合 Google / Bing / DuckDuckGo 等引擎,注册免费送 100 积分。
Q:Google provider 有什么额外限制?
A:使用 Google 需要同时配置 GOOGLE_KEY 与 GOOGLE_CX,并且单次查询最多返回 10 条结果。
Q:旧版客户端怎么继续用?
A:0.2.x 的「换 base URL 让客户端联网」代理仍然保留,配置 APIBASE 后即会挂载。
注意事项
- 只配置你实际要用的 provider;未指定 SEARCH_SERVICE 时,已配置的 provider 按默认优先级组成 fallback 链。
- 以上 *_KEY 变量也接受 *_API_KEY 写法,例如 TAVILY_KEY 可写成 TAVILY_API_KEY。
- SearXNG 需要自行开启 JSON 输出格式,并配置 SEARXNG_BASE_URL。
- 完整环境变量与模板参见仓库根目录的 .env.template。
核心亮点
- 支持 OpenAI、Gemini、Groq、Llama、Mistral 多家模型,切换成本低
- 基于 Function Calling 实现,不绑定特定厂商的联网插件,兼容性好
- TypeScript 编写,类型友好,方便集成到 Node.js 后端或 Serverless 环境
不足之处
- 搜索质量依赖外部搜索源,项目本身未内置搜索索引
- 文档和示例相对精简,新手接入需要一定调试成本
适用场景
- 给客服机器人加上实时产品价格和库存查询
- 让 AI 助手回答最新新闻、赛事比分等时效性问题
- 在低代码平台中快速为聊天应用接入联网检索能力
替代项目
langchain、llamaindex
上一篇:rank_llm
同类项目推荐
awesome-OpenPrice
开源
查遍全网AI订阅价,一眼挑出最划算渠道
开源的 AI 订阅价格聚合与比价平台,收录 ChatGPT、Claude、Gemini、Grok、Cursor 等产品的···
awesome-generative-engine-optimi···
开源
让内容在AI搜索中脱颖而出,系统性GEO资源导航。
A curated guide to Generative Engine Optimization (GEO) resources: guides, tools & r···
OneRAG
开源
一行配置切换多种向量库和模型,快速搭建生产级 RAG 应用
Production-ready RAG Framework (Python/FastAPI). 1-line config swaps: 6 Vector DBs (···
langextract
开源
从杂乱文本中精准抽取结构化数据,并可视化追溯来源
A Python library for extracting structured information from unstructured text using ···
awesome-context-engineering
开源
给 AI Agent 配好上下文,让模型少犯错、少烧钱
A curated collection of resources, papers, tools, and best practices for Context Eng···
eGEOagents
开源
让内容被ChatGPT和Perplexity优先引用,提升AI搜索曝光
Open-source Generative Engine Optimization (GEO) & Answer Engine Optimization (AEO) ···
llmgraph
开源
输入文本,自动生成可视化知识图谱
Create knowledge graphs with LLMs
ragbuilder
开源
自动评估并调优 RAG 配置,快速上线生产级问答系统
A toolkit to create optimal Production-readyRetrieval Augmented Generation(RAG) setu···
gemini-obsidian
开源
在终端里用 Gemini 问答你的 Obsidian 笔记库
A Gemini CLI extension for interfacing with an Obsidian vault with local first RAG c···
