mirror of
https://github.com/hwchase17/langchain
synced 2024-11-06 03:20:49 +00:00
## Description Support search params in GoogleSearchApiWrapper's result call, for the extra filtering on search, to support extra query parameters that google cse provides: https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list?hl=ko ## Issue #6810
This commit is contained in:
parent
052c797429
commit
e5f6f0ffc4
@ -100,12 +100,18 @@ class GoogleSearchAPIWrapper(BaseModel):
|
|||||||
|
|
||||||
return " ".join(snippets)
|
return " ".join(snippets)
|
||||||
|
|
||||||
def results(self, query: str, num_results: int) -> List[Dict]:
|
def results(
|
||||||
|
self,
|
||||||
|
query: str,
|
||||||
|
num_results: int,
|
||||||
|
search_params: Optional[Dict[str, str]] = None,
|
||||||
|
) -> List[Dict]:
|
||||||
"""Run query through GoogleSearch and return metadata.
|
"""Run query through GoogleSearch and return metadata.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
query: The query to search for.
|
query: The query to search for.
|
||||||
num_results: The number of results to return.
|
num_results: The number of results to return.
|
||||||
|
search_params: Parameters to be passed on search
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
A list of dictionaries with the following keys:
|
A list of dictionaries with the following keys:
|
||||||
@ -114,7 +120,9 @@ class GoogleSearchAPIWrapper(BaseModel):
|
|||||||
link - The link to the result.
|
link - The link to the result.
|
||||||
"""
|
"""
|
||||||
metadata_results = []
|
metadata_results = []
|
||||||
results = self._google_search_results(query, num=num_results)
|
results = self._google_search_results(
|
||||||
|
query, num=num_results, **(search_params or {})
|
||||||
|
)
|
||||||
if len(results) == 0:
|
if len(results) == 0:
|
||||||
return [{"Result": "No good Google Search Result was found"}]
|
return [{"Result": "No good Google Search Result was found"}]
|
||||||
for result in results:
|
for result in results:
|
||||||
|
@ -17,3 +17,14 @@ def test_no_result_call() -> None:
|
|||||||
)
|
)
|
||||||
print(type(output))
|
print(type(output))
|
||||||
assert "No good Google Search Result was found" == output
|
assert "No good Google Search Result was found" == output
|
||||||
|
|
||||||
|
|
||||||
|
def test_result_with_params_call() -> None:
|
||||||
|
"""Test that call gives the correct answer with extra params."""
|
||||||
|
search = GoogleSearchAPIWrapper()
|
||||||
|
output = search.results(
|
||||||
|
query="What was Obama's first name?",
|
||||||
|
num_results=5,
|
||||||
|
search_params={"cr": "us", "safe": "active"},
|
||||||
|
)
|
||||||
|
assert len(output)
|
||||||
|
Loading…
Reference in New Issue
Block a user