集成:DuckDuckGo
使用 DuckDuckGo API 进行网络搜索
实现了 WebSearch 类型的组件,但通过免费的 DuckDuckGo API。
目录
概述
DuckduckgoApiWebSearch 使用 DuckDuckGo 搜索引擎执行网络搜索。
此存储库提供了一个与 SearchApiWebSearch 和 SerperDevWebSearch 类似的 Python 模块,但使用了免费的 DuckDuckGo API。
当您将查询传递给 DuckduckgoWebSearch 时,它会返回与您的搜索最相关的 URL 列表。结果基于页面摘要(搜索结果中页面标题下显示的简短文本),而不是整个页面的内容。
虽然功能与上述 API 相当,但有两个重要的考虑因素:
- 速率限制:API 可能对允许的查询数量施加一些限制。
- 结果质量:搜索结果的质量可能会有所不同。
安装
pip install duckduckgo-api-haystack
使用
DuckduckgoApiWebSearch 类允许您使用 DuckDuckGo 搜索引擎执行网络搜索。使用方法如下:
- 导入并初始化
DuckduckgoApiWebSearch类
from duckduckgo_api_haystack import DuckduckgoApiWebSearch
websearch = DuckduckgoApiWebSearch(top_k=10)
- 执行搜索
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
