Skip to content

Duckduckgo

DuckDuckGoSearchToolSpec #

Bases: BaseToolSpec

DuckDuckGoSearch工具规范。

Source code in llama_index/tools/duckduckgo/base.py
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class DuckDuckGoSearchToolSpec(BaseToolSpec):
    """DuckDuckGoSearch工具规范。"""

    spec_functions = ["duckduckgo_instant_search", "duckduckgo_full_search"]

    def __init__(self) -> None:
        if not importlib.util.find_spec("duckduckgo_search"):
            raise ImportError(
                "DuckDuckGoSearchToolSpec requires the duckduckgo_search package to be installed."
            )
        super().__init__()

    def duckduckgo_instant_search(self, query: str) -> List[Dict]:
        """向DuckDuckGo api发出查询以接收即时答案。

Args:
    query (str): 要传递给DuckDuckGo的查询。
"""
        from duckduckgo_search import DDGS

        with DDGS() as ddg:
            return list(ddg.answers(query))

    def duckduckgo_full_search(
        self,
        query: str,
        region: Optional[str] = "wt-wt",
        max_results: Optional[int] = 10,
    ) -> List[Dict]:
        """向DuckDuckGo搜索发出查询以接收完整的搜索结果。

Args:
    query(str):要传递给DuckDuckGo的查询。
    region(可选[str]):用于搜索的地区,采用[国家-语言]约定,例如us-en, uk-en, ru-ru等...
    max_results(可选[int]):要返回的最大结果数。
"""
        from duckduckgo_search import DDGS

        params = {
            "keywords": query,
            "region": region,
            "max_results": max_results,
        }

        with DDGS() as ddg:
            return list(ddg.text(**params))
duckduckgo_instant_search(query: str) -> List[Dict]

向DuckDuckGo api发出查询以接收即时答案。

Parameters:

Name Type Description Default
query str

要传递给DuckDuckGo的查询。

required
Source code in llama_index/tools/duckduckgo/base.py
18
19
20
21
22
23
24
25
26
27
    def duckduckgo_instant_search(self, query: str) -> List[Dict]:
        """向DuckDuckGo api发出查询以接收即时答案。

Args:
    query (str): 要传递给DuckDuckGo的查询。
"""
        from duckduckgo_search import DDGS

        with DDGS() as ddg:
            return list(ddg.answers(query))
duckduckgo_full_search(
    query: str,
    region: Optional[str] = "wt-wt",
    max_results: Optional[int] = 10,
) -> List[Dict]

向DuckDuckGo搜索发出查询以接收完整的搜索结果。

Source code in llama_index/tools/duckduckgo/base.py
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
    def duckduckgo_full_search(
        self,
        query: str,
        region: Optional[str] = "wt-wt",
        max_results: Optional[int] = 10,
    ) -> List[Dict]:
        """向DuckDuckGo搜索发出查询以接收完整的搜索结果。

Args:
    query(str):要传递给DuckDuckGo的查询。
    region(可选[str]):用于搜索的地区,采用[国家-语言]约定,例如us-en, uk-en, ru-ru等...
    max_results(可选[int]):要返回的最大结果数。
"""
        from duckduckgo_search import DDGS

        params = {
            "keywords": query,
            "region": region,
            "max_results": max_results,
        }

        with DDGS() as ddg:
            return list(ddg.text(**params))