karust/openserp

Self-hosted web search for AI agents and SEO. Google, Bing, Yandex, Baidu, DuckDuckGo & Ecosia, rendered in a real browser: ranked results and clean page Markdown. API, CLI, MCP 🎉

OpenSERP – 开源搜索引擎结果 API 和 CLI

是什么

  • 一个免费、可自托管的服务,抓取 Google、Bing、Yandex、Baidu、DuckDuckGo、Ecosia 的公共网页搜索结果,并以整洁、统一的 JSON(或 markdown/text/NDJSON)格式返回结果。
  • 提供 REST API和命令行客户端,你可以从代码、脚本或终端直接调用。
  • 无需 API 密钥,也无需按搜索计费——你在本地(或自己的服务器上)运行,它就像一个私有的 SERP 端点。

为什么对 AI/LLM 工作流很重要

  • LLM 经常需要最新的网络信息。OpenSERP 允许你一次请求获取实时搜索结果,甚至提取的页面内容,并将其提供给提示或检索增强生成(RAG)流水线。
  • 所有六个受支持的引擎都使用相同的 JSON 架构,简化了多引擎聚合和回退策略。
  • 还提供托管云版本,因此你无需更改代码即可在自托管和 SaaS 之间切换。

主要功能

  • 为每个引擎提供专用端点(/google/search、/bing/image 等),并具有通用响应架构。
  • Megasearch – 一次查询多个引擎,合并结果,对 URL 去重,并获得聚类信息。
  • URL 提取 – 可选地拉取目标页面,将其清理为 markdown,并嵌入到搜索结果中。
  • 支持 SERP 附加功能,如 AI 摘要、答案框、“其他人还问”、相关搜索和图像搜索。
  • 输出格式:JSON、markdown、纯文本、NDJSON。
  • 代理支持(HTTP 和 SOCKS5)、缓存、弹性模式和预构建的 Docker 镜像。
  • 官方 JavaScript/TypeScript、Python SDK,用于 AI 代理的 MCP 服务器,以及 n8n 节点。

典型用例

  • LLM 接地 – 检索新鲜的网页片段或完整页面以增强模型响应。
  • SEO / 排名跟踪 – 运行自动化查询并存储结构化结果以供分析。
  • 多引擎研究 – 在单次调用中组合 Google、Bing 等以改进覆盖范围。
  • 自动化 – 集成到需要搜索数据的 CI 流水线、机器人或无代码工具(n8n)中。

入门

  1. Docker(最快)
    docker run --rm -p 127.0.0.1:7000:7000 karust/openserp:latest serve -a 0.0.0.0 -p 7000
    
  2. Go 安装
    go install github.com/karust/openserp@latest
    openserp search duckduckgo "open source serp api" --format markdown
    
  3. 源码构建
    git clone https://github.com/karust/openserp.git
    cd openserp
    go build -o openserp .
    ./openserp serve
    
  4. 首次 API 调用 (megasearch,快速回退模式):
    curl "http://127.0.0.1:7000/mega/search?engines=bing,google&text=golang+vs+rust&extract=1&mode=any"
    

响应示例(已截断)显示查询元数据、结果数组,包含 title、url、snippet 等字段,以及页面内容的可选 extracted markdown 块。

SDK 用法(Python 示例)

import openserp
client = openserp.OpenSERP(base_url="http://localhost:7000")
resp = client.search(engine="google", text="openserp", limit=5)
print(resp["results"])

文档和 API 资源管理器

许可证

  • MIT 许可证 – 你可以自由修改、重新分发或嵌入该软件。

社区

  • 在 GitHub 上提交问题和功能请求。
  • 通过电子邮件或 Telegram 频道反馈。
  • 欢迎通过 CONTRIBUTING.md 指南贡献代码。

OpenSERP 为开发者提供了一种保护隐私、免费的方式,将实时网络搜索添加到 AI 代理、机器人和数据流水线中。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目