Skip to content

caozuohua/EggSearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EggSearch

EggSearch 是一个面向 Agent 的搜索聚合 API,统一封装 Tavily、Jina 和 DuckDuckGo 三个搜索通道,并支持 Tavily 双 key 轮询分流。

特性

  • FastAPI 统一入口,适合部署到 Vercel 或普通 VPS
  • Tavily key1 / key2 自动轮询
  • 失败降级:Tavily -> Jina -> DuckDuckGo
  • /health 健康检查接口
  • 可选 API Key 鉴权

环境变量

变量 说明
TAVILY_API_KEY Tavily 主 key
TAVILY_API_KEY_2 Tavily 备用 key
API_SECRET_KEY 可选,请求鉴权 key

本地运行

pip install -r requirements.txt
uvicorn main:app --reload

接口

GET /

返回运行状态和 provider 配置概览。

GET /health

返回健康检查信息和各 provider 的配置状态。

GET /search?q=...

搜索接口。

请求头可选:

  • X-API-Key: <API_SECRET_KEY>
  • Authorization: Bearer <API_SECRET_KEY>

返回示例:

{
  "query": "openai",
  "provider": "tavily",
  "result": "[Source: Tavily]..."
}

部署说明

Vercel

  • 保留 main:app 作为 ASGI 入口
  • 在 Vercel 环境变量中配置 TAVILY_API_KEYTAVILY_API_KEY_2API_SECRET_KEY
  • 确保构建环境可以安装 duckduckgo-searchhttpx

Google Cloud VPS

  • 推荐使用 uvicorn main:app --host 0.0.0.0 --port 8000
  • 通过反向代理暴露 HTTPS
  • 生产环境建议设置 API_SECRET_KEY

行为说明

  • 如果 Tavily 没有配置,服务会自动降级到 Jina / DuckDuckGo。
  • 如果某个 Tavily key 在请求中失败,下一次请求会继续轮询另一个 key。
  • 如果所有 provider 都失败,API 会返回对应的 HTTP 错误码,而不是静默返回空结果。

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages