DocumentationAPI Reference📓 Tutorials🧑‍🍳 Cookbook🤝 Integrations💜 Discord🎨 Studio (Waitlist)
API Reference

Web search engine for Haystack.

Module serper_dev

SerperDevWebSearch

@component
class SerperDevWebSearch()

Uses Serper to search the web for relevant documents.

See the Serper Dev website for more details.

Usage example:

from haystack.components.websearch import SerperDevWebSearch
from haystack.utils import Secret

websearch = SerperDevWebSearch(top_k=10, api_key=Secret.from_token("test-api-key"))
results = websearch.run(query="Who is the boyfriend of Olivia Wilde?")

assert results["documents"]
assert results["links"]

SerperDevWebSearch.__init__

def __init__(api_key: Secret = Secret.from_env_var("SERPERDEV_API_KEY"),
             top_k: Optional[int] = 10,
             allowed_domains: Optional[List[str]] = None,
             search_params: Optional[Dict[str, Any]] = None)

Arguments:

  • api_key: API key for the Serper API.
  • top_k: Number of documents to return.
  • allowed_domains: List of domains to limit the search to.
  • search_params: Additional parameters passed to the Serper API. For example, you can set 'num' to 20 to increase the number of search results. See the Serper website for more details.

SerperDevWebSearch.to_dict

def to_dict() -> Dict[str, Any]

Serializes the component to a dictionary.

Returns:

Dictionary with serialized data.

SerperDevWebSearch.from_dict

@classmethod
def from_dict(cls, data: Dict[str, Any]) -> "SerperDevWebSearch"

Serializes the component to a dictionary.

Returns:

Dictionary with serialized data.

SerperDevWebSearch.run

@component.output_types(documents=List[Document], links=List[str])
def run(query: str) -> Dict[str, Union[List[Document], List[str]]]

Use Serper to search the web.

Arguments:

  • query: Search query.

Raises:

  • SerperDevError: If an error occurs while querying the SerperDev API.
  • TimeoutError: If the request to the SerperDev API times out.

Returns:

A dictionary with the following keys:

  • "documents": List of documents returned by the search engine.
  • "links": List of links returned by the search engine.

Module searchapi

SearchApiWebSearch

@component
class SearchApiWebSearch()

Uses SearchApi to search the web for relevant documents.

See the SearchApi website for more details.

Usage example:

from haystack.components.websearch import SearchApiWebSearch
from haystack.utils import Secret

websearch = SearchApiWebSearch(top_k=10, api_key=Secret.from_token("test-api-key"))
results = websearch.run(query="Who is the boyfriend of Olivia Wilde?")

assert results["documents"]
assert results["links"]

SearchApiWebSearch.__init__

def __init__(api_key: Secret = Secret.from_env_var("SEARCHAPI_API_KEY"),
             top_k: Optional[int] = 10,
             allowed_domains: Optional[List[str]] = None,
             search_params: Optional[Dict[str, Any]] = None)

Arguments:

  • api_key: API key for the SearchApi API
  • top_k: Number of documents to return.
  • allowed_domains: List of domains to limit the search to.
  • search_params: Additional parameters passed to the SearchApi API. For example, you can set 'num' to 100 to increase the number of search results. See the SearchApi website for more details.

SearchApiWebSearch.to_dict

def to_dict() -> Dict[str, Any]

Serializes the component to a dictionary.

Returns:

Dictionary with serialized data.

SearchApiWebSearch.from_dict

@classmethod
def from_dict(cls, data: Dict[str, Any]) -> "SearchApiWebSearch"

Deserializes the component from a dictionary.

Arguments:

  • data: The dictionary to deserialize from.

Returns:

The deserialized component.

SearchApiWebSearch.run

@component.output_types(documents=List[Document], links=List[str])
def run(query: str) -> Dict[str, Union[List[Document], List[str]]]

Uses SearchApi to search the web.

Arguments:

  • query: Search query.

Raises:

  • TimeoutError: If the request to the SearchApi API times out.
  • SearchApiError: If an error occurs while querying the SearchApi API.

Returns:

A dictionary with the following keys:

  • "documents": List of documents returned by the search engine.
  • "links": List of links returned by the search engine.