📘 **TELUS Agriculture & Consumer Goods** 如何通过 **Haystack Agents** 转变促销交易

集成:DuckDuckGo

使用 DuckDuckGo API 进行网络搜索

作者
Giovanni Alzetta

实现了 WebSearch 类型的组件,但通过免费的 DuckDuckGo API。

目录

概述

DuckduckgoApiWebSearch 使用 DuckDuckGo 搜索引擎执行网络搜索。

此存储库提供了一个与 SearchApiWebSearchSerperDevWebSearch 类似的 Python 模块,但使用了免费的 DuckDuckGo API。

当您将查询传递给 DuckduckgoWebSearch 时,它会返回与您的搜索最相关的 URL 列表。结果基于页面摘要(搜索结果中页面标题下显示的简短文本),而不是整个页面的内容。

虽然功能与上述 API 相当,但有两个重要的考虑因素:

  • 速率限制:API 可能对允许的查询数量施加一些限制。
  • 结果质量:搜索结果的质量可能会有所不同。

安装

pip install duckduckgo-api-haystack

使用

DuckduckgoApiWebSearch 类允许您使用 DuckDuckGo 搜索引擎执行网络搜索。使用方法如下:

  1. 导入并初始化 DuckduckgoApiWebSearch
from duckduckgo_api_haystack import DuckduckgoApiWebSearch

websearch = DuckduckgoApiWebSearch(top_k=10)
  1. 执行搜索
results = websearch.run(query="What is frico?")

# Access the search results
documents = results["documents"]
links = results["links"]

配置选项

您可以通过将参数传递给 DuckduckgoApiWebSearch 构造函数来定制搜索行为。

websearch = DuckduckgoApiWebSearch(
    top_k=10,                 # Maximum number of documents to return
    max_results=10,           # Maximum number of documents to consider in the search
    region="wt-wt",           # Region for search results (default: no region)
    safesearch="moderate",    # SafeSearch setting ("on", "moderate", or "off")
    timelimit=None,           # Time limit for results (e.g., "d" for day, "w" for week, "m" for month)
    backend="auto",           # Search backend ("auto", "html", or "lite")
    allowed_domain="",        # Restrict search to a specific domain
    timeout=10,               # Timeout for each search request (in seconds)
    use_answers=False,        # Include DuckDuckGo's answer box in results
    proxy=None                # Web address of proxy server (if needed)
)

有关配置选项的更多详细信息,请参阅 duckduckgo_search 文档

许可证

Apache 2.0