Skip to content

feat: add GroundRoute web search integration#3479

Open
jp0xz wants to merge 2 commits into
deepset-ai:mainfrom
jp0xz:groundroute-websearch
Open

feat: add GroundRoute web search integration#3479
jp0xz wants to merge 2 commits into
deepset-ai:mainfrom
jp0xz:groundroute-websearch

Conversation

@jp0xz

@jp0xz jp0xz commented Jun 21, 2026

Copy link
Copy Markdown

What

Adds a groundroute-haystack integration: a GroundRouteWebSearch component (Web Search type, mirroring the Tavily / SerperDev pattern). GroundRoute is a meta search layer, one API in front of six engines (Serper, Brave, Exa, Tavily, Firecrawl, Perplexity), routing each query to the cheapest engine that clears a quality bar and failing over if one is down.

Why

A drop-in, opt-in multi-engine web-search option for Haystack pipelines, useful for high-volume retrieval where single-engine cost, rate limits, or outages are a pain. It's selected like any other websearch component.

Details

  • Package groundroute-haystack under integrations/groundroute/, namespace haystack_integrations.components.websearch.groundroute.
  • httpx only, no other new dependencies.
  • to_dict/from_dict serialization; Secret.from_env_var("GROUNDROUTE_API_KEY").
  • 18 unit tests; ruff + mypy clean.
  • CI workflow, labeler, coverage registration, and the root README row added per the repo's integration conventions (mirrors integrations/tavily).

Notes

  • Fully opt-in; no change for existing users.
  • Disclosure: this integration was developed with substantial AI assistance, with human review before submission.
  • "Allow edits by maintainers" is enabled.

@jp0xz jp0xz requested a review from a team as a code owner June 21, 2026 21:51
@jp0xz jp0xz requested review from julian-risch and removed request for a team June 21, 2026 21:51
@CLAassistant

CLAassistant commented Jun 21, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@github-actions github-actions Bot added topic:CI type:documentation Improvements or additions to documentation labels Jun 21, 2026
Add the groundroute-haystack package (scaffolded via scripts/create_new_integration.py):
GroundRouteWebSearch, a web-search component for GroundRoute, a meta search layer
over six engines (Serper, Brave, Exa, Tavily, Firecrawl, Perplexity) with
price-based routing and failover. Component lives under the namespace package
haystack_integrations.components.websearch.groundroute, with run + run_async,
to_dict/from_dict, and httpx-only dependencies. Includes the scaffold-generated
CI workflow, labeler, coverage, and root README registrations.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jp0xz jp0xz force-pushed the groundroute-websearch branch from 90eb63d to c3bbaa7 Compare June 21, 2026 21:53
Add @pytest.mark.integration tests (sync + async) that hit the live GroundRoute
API, skipped when GROUNDROUTE_API_KEY is absent (mirroring tavily). This lets the
integration CI step collect at least one test and exit 0 instead of exit 5
(no tests collected) when no key is configured.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

topic:CI type:documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants