Migrate google search to use DDGS.text function (#4383)

pull/3748/head^2
Kinance 2023-05-25 01:36:23 +09:00 committed by GitHub
parent 438d3e489b
commit 5168cb5219
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 5 deletions

View File

@ -2,8 +2,9 @@
from __future__ import annotations
import json
from itertools import islice
from duckduckgo_search import ddg
from duckduckgo_search import DDGS
from autogpt.commands.command import command
from autogpt.config import Config
@ -26,12 +27,12 @@ def google_search(query: str, num_results: int = 8) -> str:
if not query:
return json.dumps(search_results)
results = ddg(query, max_results=num_results)
results = DDGS().text(query)
if not results:
return json.dumps(search_results)
for j in results:
search_results.append(j)
for item in islice(results, num_results):
search_results.append(item)
results = json.dumps(search_results, ensure_ascii=False, indent=4)
return safe_google_results(results)

View File

@ -42,7 +42,7 @@ def test_google_search(query, num_results, expected_output, return_value, mocker
mock_ddg = mocker.Mock()
mock_ddg.return_value = return_value
mocker.patch("autogpt.commands.google_search.ddg", mock_ddg)
mocker.patch("autogpt.commands.google_search.DDGS.text", mock_ddg)
actual_output = google_search(query, num_results=num_results)
expected_output = safe_google_results(expected_output)
assert actual_output == expected_output