diff --git a/langchain/utilities/searx_search.py b/langchain/utilities/searx_search.py index e7cf88e7..c901ccb4 100644 --- a/langchain/utilities/searx_search.py +++ b/langchain/utilities/searx_search.py @@ -144,8 +144,11 @@ class SearxSearchWrapper(BaseModel): headers=self.headers, params=params, verify=not self.unsecure, - ).text - res = SearxResults(raw_result) + ) + # test if http result is ok + if not raw_result.ok: + raise ValueError("Searx API returned an error: ", raw_result.text) + res = SearxResults(raw_result.text) self._result = res return res @@ -184,7 +187,7 @@ class SearxSearchWrapper(BaseModel): # only return the content of the results list elif len(res.results) > 0: toret = "\n\n".join( - [r.get("content", "no result found") for r in res.results[: self.k]] + [r.get("content", "") for r in res.results[: self.k]] ) else: toret = "No good search result found" @@ -220,9 +223,11 @@ class SearxSearchWrapper(BaseModel): return [{"Result": "No good Search Result was found"}] for result in results: metadata_result = { - "snippet": result["content"], + "snippet": result.get("content", ""), "title": result["title"], "link": result["url"], + "engines": result["engines"], + "category": result["category"], } metadata_results.append(metadata_result)