Haystack 的网络搜索引擎。
模块 serper_dev
SerperDevWebSearch
使用 Serper 搜索网络以查找相关文档。
有关更多详细信息,请参阅 Serper Dev 网站。
使用示例
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"]
# Example with domain filtering - exclude subdomains
websearch_filtered = SerperDevWebSearch(
top_k=10,
allowed_domains=["example.com"],
exclude_subdomains=True, # Only results from example.com, not blog.example.com
api_key=Secret.from_token("test-api-key")
)
results_filtered = websearch_filtered.run(query="search query")
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,
*,
exclude_subdomains: bool = False)
初始化 SerperDevWebSearch 组件。
参数:
api_key:Serper API 的 API 密钥。top_k:要返回的文档数量。allowed_domains:限制搜索的域名列表。exclude_subdomains:在按 allowed_domains 过滤时是否排除子域名。如果为 True,则只返回 allowed_domains 中确切域名的结果。如果为 False,则也包括子域名的结果。默认为 False。search_params:传递给 Serper API 的其他参数。例如,您可以将“num”设置为 20 以增加搜索结果的数量。有关更多详细信息,请参阅 Serper 网站。
SerperDevWebSearch.to_dict
def to_dict() -> dict[str, Any]
将组件序列化为字典。
返回值:
包含序列化数据的字典。
SerperDevWebSearch.from_dict
@classmethod
def from_dict(cls, data: dict[str, Any]) -> "SerperDevWebSearch"
将组件序列化为字典。
返回值:
包含序列化数据的字典。
SerperDevWebSearch.run
@component.output_types(documents=list[Document], links=list[str])
def run(query: str) -> dict[str, Union[list[Document], list[str]]]
使用 Serper 搜索网络。
参数:
query:搜索查询。
引发:
SerperDevError:如果查询 SerperDev API 时发生错误。TimeoutError:如果请求 SerperDev API 超时。
返回值:
包含以下键的字典
- "documents":搜索引擎返回的文档列表。
- "links":搜索引擎返回的链接列表。
模块 searchapi
SearchApiWebSearch
使用 SearchApi 搜索网络以查找相关文档。
使用示例
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)
初始化 SearchApiWebSearch 组件。
参数:
api_key:SearchApi API 的 API 密钥top_k:要返回的文档数量。allowed_domains:限制搜索的域名列表。search_params:传递给 SearchApi API 的其他参数。例如,您可以将“num”设置为 100 以增加搜索结果的数量。有关更多详细信息,请参阅 SearchApi 网站。
默认搜索引擎是 Google,但用户可以通过设置engine 参数来更改它。search_params.
SearchApiWebSearch.to_dict
def to_dict() -> dict[str, Any]
将组件序列化为字典。
返回值:
包含序列化数据的字典。
SearchApiWebSearch.from_dict
@classmethod
def from_dict(cls, data: dict[str, Any]) -> "SearchApiWebSearch"
从字典反序列化组件。
参数:
data: 要反序列化的字典。
返回值:
反序列化后的组件。
SearchApiWebSearch.run
@component.output_types(documents=list[Document], links=list[str])
def run(query: str) -> dict[str, Union[list[Document], list[str]]]
使用 SearchApi 搜索网络。
参数:
query:搜索查询。
引发:
TimeoutError:如果请求 SearchApi API 超时。SearchApiError:如果查询 SearchApi API 时发生错误。
返回值:
包含以下键的字典
- "documents":搜索引擎返回的文档列表。
- "links":搜索引擎返回的链接列表。
