Skip to content

feat: Durable web search golem:web-search API across multiple providers in Rust #60

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 36 commits into from
Jul 23, 2025

Conversation

SaikiranSurapalli17
Copy link
Contributor

Introduction

This pull request introduces a robust and extensible durable web search API for the Golem platform, implemented in Rust. This web-search component provides a unified interface for performing web searches across multiple providers—including Brave, Google, Serper, and Tavily—enabling users to leverage the strengths of each search engine through a single, consistent API.

Key features include support for durable, replayable search sessions, advanced filtering (such as domain inclusion/exclusion and safe search levels), multilingual and regional queries, and the ability to retrieve both standard and enriched content (like images and HTML snippets). The API is designed for reliability and flexibility, making it suitable for a wide range of use cases, from simple information retrieval to advanced, policy-driven or content-sensitive searches.


Tests Added

A comprehensive suite of tests has been included to validate the new web search API, including:

  1. Basic Search Test:
    Verifies simple search queries return expected results.

  2. Session Pagination Test:
    Ensures multiple pages of results can be fetched in a session.

  3. Error Handling Test:
    Confirms graceful handling of invalid queries and provider errors.

  4. Domain Filtering Test:
    Tests inclusion and exclusion of specific domains in search results.

  5. Image and HTML Content Test:
    Checks correct handling of image results and HTML snippets.

  6. Multilingual and Regional Search Test:
    Validates search with different languages and regions.

  7. Advanced Search Test:
    Demonstrates advanced search with high safe search and content chunks.
    This test ensures the API can perform advanced queries with strict safe search settings and return results in content chunks, supporting use cases like child safety and trusted content discovery.

    /closes Implement Durable Web Search golem:web-search API Across Different Providers in Rust #34
    /claim Implement Durable Web Search golem:web-search API Across Different Providers in Rust #34

@SaikiranSurapalli17
Copy link
Contributor Author

Google

google.mp4

@SaikiranSurapalli17
Copy link
Contributor Author

Brave

brave.mp4

@SaikiranSurapalli17
Copy link
Contributor Author

serper

serper.mp4

@SaikiranSurapalli17
Copy link
Contributor Author

tavily

tavily.mp4

@SaikiranSurapalli17
Copy link
Contributor Author

cc
@jdegoes @vigoo

@SaikiranSurapalli17
Copy link
Contributor Author

Hi @mschuwalow,
I’ve fixed all Clippy errors and the Ollama build is now working. Could you please rerun the CI workflow when you have a moment? Thanks!

@mschuwalow
Copy link
Contributor

Some more clippy issues. You should be able to just run cargo make fix to get these fixed. Please also remove all commited .DS_STORE files

Co-authored-by: Maxim Schuwalow <maxim.schuwalow@gmail.com>
Copy link
Contributor

@mschuwalow mschuwalow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks promising! A few minor changes left

@SaikiranSurapalli17
Copy link
Contributor Author

@mschuwalow I'd like to clarify the scope for the web search providers. Are the existing providers sufficient for this task, or is there an expectation to implement any new ones beyond those detailed in the issue?

@Rutik7066
Copy link
Contributor

Rutik7066 commented Jul 21, 2025

@mschuwalow I'd like to clarify the scope for the web search providers. Are the existing providers sufficient for this task, or is there an expectation to implement any new ones beyond those detailed in the issue?

I was using exa in my personal side hustle project. I found it more usefull. So thought why not add it to golem.

They have this https://docs.exa.ai/reference/search#body-type feature that lets you decide to get search results like google which will be seo ranked or more relevant result where seo does not matter.

@mschuwalow
Copy link
Contributor

@mschuwalow I'd like to clarify the scope for the web search providers. Are the existing providers sufficient for this task, or is there an expectation to implement any new ones beyond those detailed in the issue?

I was using exa in my personal side hustle project. I found it more usefull. So thought why not add it to golem.

They have this https://docs.exa.ai/reference/search#body-type feature that lets you decide to get search results like google which will be seo ranked or more relevant result where seo does not matter.

Adding more is of course appreciated, but the current set is enough for me to merge when all comments are addressed.

Copy link
Contributor

@mschuwalow mschuwalow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some cleanup left

@Rutik7066
Copy link
Contributor

@mschuwalow This is really wrong.

@mschuwalow mschuwalow merged commit 9ff327a into golemcloud:main Jul 23, 2025
5 checks passed
@SaikiranSurapalli17 SaikiranSurapalli17 deleted the websearch branch July 23, 2025 16:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Durable Web Search golem:web-search API Across Different Providers in Rust
4 participants