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 APItop_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.