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)中。
入门
- Docker(最快)
docker run --rm -p 127.0.0.1:7000:7000 karust/openserp:latest serve -a 0.0.0.0 -p 7000 - Go 安装
go install github.com/karust/openserp@latest openserp search duckduckgo "open source serp api" --format markdown - 源码构建
git clone https://github.com/karust/openserp.git cd openserp go build -o openserp . ./openserp serve - 首次 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 资源管理器
- Swagger UI:
http://127.0.0.1:7000/docs - OpenAPI 规范:
http://127.0.0.1:7000/openapi.yaml - 架构概述: https://openserp.org/docs/architecture/
许可证
- MIT 许可证 – 你可以自由修改、重新分发或嵌入该软件。
社区
- 在 GitHub 上提交问题和功能请求。
- 通过电子邮件或 Telegram 频道反馈。
- 欢迎通过
CONTRIBUTING.md指南贡献代码。
OpenSERP 为开发者提供了一种保护隐私、免费的方式,将实时网络搜索添加到 AI 代理、机器人和数据流水线中。
相关
- 项目
- 项目
- 项目
- 项目
- 项目